Panoramica dell'HMI

Android Automotive è una soluzione di piattaforma di infotainment per auto fornita con Android Open Source Project (AOSP). Gli articoli in questo argomento introducono i concetti chiave e i componenti forniti dall'interfaccia utente del sistema Android Automotive e dalle app principali necessarie per creare un sistema HMI (interfaccia uomo-macchina) efficace per OEM, sviluppatori di terze parti e utenti finali.

  • Guida all'integrazione dell'host AOSP . L'host app consente alle app per auto di terze parti di eseguire il rendering dei componenti dell'interfaccia utente (UI) in stile OEM per suo conto.
  • Struttura delle impostazioni dell'auto . Impostazioni auto fornisce un'interfaccia utente visiva incentrata sull'auto, ottimizzazioni di base per la distrazione del conducente e ulteriori punti di ingresso per la personalizzazione per gli OEM.
  • Guida all'integrazione della libreria dell'interfaccia utente dell'auto . La libreria dell'interfaccia utente dell'auto fornisce un framework di sviluppo dell'interfaccia utente per consentire a tutte le app presenti nell'auto di ottenere coerenza e personalizzazione.
  • Personalizza le icone di sistema della barra di stato . La barra di stato è un componente dell'interfaccia utente del sistema Android utilizzato per visualizzare in modo persistente informazioni importanti agli utenti. Scopri come personalizzare le icone di sistema della barra di stato.
  • Notifiche avvisate . Scopri come personalizzare le notifiche avvisate.
  • Dialer . Utilizza questa app di sistema Android per implementare un'esperienza ottimizzata per le distrazioni (DO) per le chiamate Bluetooth, la navigazione dei contatti e la gestione delle chiamate.
  • mezzi . Con solo poche impostazioni e un servizio, gli sviluppatori possono estendere le app multimediali esistenti. Sebbene le app debbano aderire al modello Automotive Media, gli sviluppatori possono personalizzare i colori, i caratteri, le icone e altro del modello per creare un'esperienza brandizzata.
  • Notifiche . Scopri come modificare l'aspetto e le configurazioni delle notifiche.

Terminologia

Questi termini vengono utilizzati nell'HMI e negli articoli correlati:

Termine Definizione
App principali L'insieme di applicazioni fondamentali per la funzionalità del sistema, tra cui Impostazioni, Radio, HVAC, Multimedia, Dialer e Tastiera.
Documento di definizione della compatibilità (CDD) Enumera i requisiti che devono essere soddisfatti affinché i dispositivi siano compatibili con la versione più recente di Android.
Suite di test di compatibilità (CTS) Suite di test gratuita di livello commerciale, disponibile per il download nella sezione Download di Compatibility Test Suite .
Personalizzazione L'esercizio di modifica di un'implementazione AOSP per soddisfare i requisiti di un OEM. In genere, ciò comporta l'uso di sovrapposizioni di risorse per applicare modifiche estetiche garantendo al tempo stesso la conformità con CDD, CTS e tutte le linee guida pertinenti sull'esperienza utente.
App eroiche Un insieme di app chiave fondamentali per tutti gli aspetti di Android, tra cui funzionalità, aggiornabilità, ecosistema di sviluppatori di terze parti e utenti finali. Le app Hero includono Notifiche, Impostazioni, Media e Centro comunicazioni/Dialer. Le implementazioni AOSP corrispondenti dovrebbero essere di qualità produttiva.
Sovrapposizioni di risorse Per influenzare il rendering dell'interfaccia utente, utilizzare questo meccanismo per sostituire i colori, modificare le dimensioni, abilitare il disegno e applicare le risorse di layout in fase di compilazione (più comune) o in fase di esecuzione (Runtime Resource Overlays (RRO)).
Interfaccia utente del sistema L'interfaccia utente esterna a un'applicazione che appartiene al sistema, come la barra di navigazione, la barra di stato, la schermata di blocco e la finestra di dialogo del volume.
Tema Una raccolta di colori e stili utilizzati per determinare l'aspetto dei componenti e delle app che ereditano il tema.
Esperienza utente (UX) Il campo della progettazione dell'interfaccia utente (UI) e la sua usabilità.

Personalizzazione

L'implementazione AOSP dell'interfaccia utente del sistema e di altre applicazioni di sistema principali costituisce una solida base per l'avvio del processo di sviluppo dell'HMI. L'esercizio di modifica dell'implementazione AOSP (principalmente attraverso l'uso di sovrapposizioni di risorse) per soddisfare i requisiti legali, aziendali e di marchio di un OEM viene definito personalizzazione .

Sebbene il sistema complessivo sia progettato e costruito per essere flessibile, si prevede che i diversi componenti possano essere personalizzati a diversi livelli:

  • Interfaccia utente del sistema. L'OEM può personalizzare o sostituire l'implementazione AOSP entro i limiti consentiti da CDD e CTS e da qualsiasi altra linea guida UX applicabile.

  • App di sistema non hero (note anche come riferimento ) . Gli OEM possono personalizzare o sostituire l'implementazione AOSP.

  • App eroiche . Ogni app viene fornita con una serie di linee guida dettagliate per la personalizzazione. Gli OEM sono fortemente incoraggiati a utilizzare l'implementazione AOSP e quindi a personalizzarla entro i limiti consentiti da tali linee guida.

Configurazione della densità

Per garantire che gli elementi dell'interfaccia utente vengano visualizzati correttamente in base alla configurazione del display fisico, la proprietà di densità deve essere impostata sul bucket ( Display Metrics ) che corrisponde più da vicino alla densità fisica, come questa voce nel file di build:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Motore di restrizioni UX

CarUxRestrictionsManager fornisce un hook affinché le applicazioni possano ascoltare le modifiche relative allo stato di guida per modificare l'esperienza dell'utente in modo appropriato. Gli OEM possono sovrapporre il file di configurazione in packages/services/Car/service/res/xml/car_ux_restrictions_map.xml per influenzare il comportamento del sistema.

Tema del sistema

Il tema che prescrive l'insieme predefinito di elementi a livello di sistema come colori e stili di testo è DeviceDefault . Gli OEM sono incoraggiati ad avviare il processo di personalizzazione generale modificando il tema DeviceDefault. Per impostazione predefinita, l'interfaccia utente del sistema e tutte le app di sistema in AOSP ereditano da questo tema. Si consiglia inoltre alle app di sistema sviluppate da OEM di ereditare DeviceDefault. Non è previsto che le app sviluppate da terze parti ereditino DeviceDefault ma utilizzino invece Theme.Car fornito nella libreria androidx.car . I file si trovano come segue:

  • Nucleo . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Colori . /frameworks/base/core/res/res/values/colors_car.xml
  • Stili . /frameworks/base/core/res/res/values/styles_car.xml
  • Sovrapposizione dell'auto.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Si prevede che gli OEM dispongano di una struttura di sovrapposizione parallela alla directory car_product nella directory dei fornitori che estende ulteriormente la sovrapposizione car_product .

Applicazione Parco giochi a tema

Questa app semplifica il processo di personalizzazione del tema DeviceDefault visualizzando tutti gli attributi del tema in un unico posto. Inoltre, confrontando il modo in cui determinati stili vengono visualizzati in questa app rispetto ad altre app di sistema, gli sviluppatori possono eseguire rapidamente il debug dei problemi del tema. Questa app è disponibile su:

  /packages/services/Car/tests/ThemePlayground

Interfaccia utente del sistema

L'interfaccia utente del sistema include tutta l'interfaccia utente in /frameworks/base , principalmente in /frameworks/base/packages/CarSystemUI . Ciò include la barra di navigazione, la barra di stato, la schermata di blocco, la finestra di dialogo del volume, i toast, il selettore utente e le finestre di dialogo delle autorizzazioni. Gli OEM possono personalizzare ampiamente i componenti dell'interfaccia utente del sistema tramite sovrapposizioni di risorse e temi, a condizione che ciascuno rispetti i requisiti di CDD, CTS e altre linee guida UX applicabili.

Applicazioni di sistema

Android Automotive include una serie di applicazioni di sistema fondamentali fondamentali per la funzionalità complessiva del sistema. Di queste, Communication Center, Media, Notifiche e Impostazioni sono considerate applicazioni hero .

  • Centro di comunicazione
  • HVAC
  • IME (tastiera)
  • Avvio applicazioni (schermata iniziale)
  • Lettore multimediale locale
  • Media
  • Messaggero
  • Notifiche
  • Radio
  • Impostazioni

Schermo di casa

La schermata Home, nota come Car Launcher , è la pagina di destinazione dell'esperienza HMI. L'implementazione AOSP funge solo da riferimento e ci si aspetta che gli OEM sostituiscano l'implementazione con la propria, che spesso combina navigazione, riproduzione multimediale, comunicazione e altri stati del sistema, secondo necessità. Spesso, l'app Car Launcher mostra le applicazioni disponibili nel sistema. Per informazioni su come gestire eventi quali recenti, modifiche ai pacchetti e app headless (nessuna attività di avvio), vedere l'implementazione di riferimento.

Notifiche

Le notifiche sono parte integrante del sistema operativo Android e gli stessi costrutti (inclusi notifica heads-up, elenco/centro notifiche, API di notifica, classificazione e azioni in linea) sono stati inclusi in Android Automotive. Per i dettagli, vedere la Panoramica delle notifiche del palmare. Per ottimizzare i casi d'uso automobilistici, sono state apportate le seguenti modifiche (rispetto allo stack di notifiche del palmare):

  • Riduzione del contenuto complessivo delle notifiche visibile agli utenti. Rimozione della riproduzione multimediale in corso, della navigazione in corso e delle notifiche di servizio in primo piano "non importanti" (importanza BASSA e inferiore) delle app di sistema dall'elenco/centro notifiche, con la consapevolezza che queste notifiche vengono rese ridondanti (ad es. cluster che mostra lo stato dei media ) o non sono utili.

  • Rimozione di controlli contestuali complessi (come la pressione prolungata e i controlli basati sulla lunghezza dello scorrimento).

  • Rispettando la configurazione del motore Restrizioni UX.

    • L'anteprima del contenuto delle notifiche dei messaggi potrebbe essere nascosta in base allo stato dell'unità.
    • Tutte le stringhe sono limitate alla lunghezza massima.
  • Aggiunta di nuove categorie di notifiche specifiche per le auto in Android 9, disponibili solo per le app di sistema in bundle che eseguono come android.uid.system .

  • CATEGORY_CAR_EMERGENCY . Classificato in cima all'elenco delle notifiche. Ignora i controlli Non disturbare (DND).

  • CATEGORY_CAR_WARNING . Classificato sotto l'emergenza e sopra gli altri (aggira DND).
  • CATEGORY_CAR_INFORMATION . Classificate con il resto delle notifiche in base a "importanza" e attualità.

L'implementazione end-to-end dello stack di notifiche, dalle API di notifica all'interfaccia utente, è considerata un'app eroe . Per garantire un'interoperabilità API coerente tra tutte le HU e massimizzare l'aggiornabilità, gli OEM sono fortemente incoraggiati a prendere l'implementazione AOSP e quindi personalizzarla leggermente.

Personalizzazione

Si applicano i temi DeviceDefault standard e le sovrapposizioni di risorse. Un numero molto limitato di manopole di personalizzazione comportamentale è disponibile su:

packages/apps/Car/Notification/res/values/config.xml

Impostazioni

L'applicazione Impostazioni ( Impostazioni auto ) è una delle app eroiche che espone le manopole, che l'utente può utilizzare per configurare aspetti del sistema operativo Android e del resto dell'auto. L'applicazione Impostazioni espone più di 200 funzionalità nel sistema operativo, strettamente collegate a ciascuna delle principali versioni di Android. Per consentire l'aggiornabilità ed evitare la frammentazione, gli OEM sono fortemente incoraggiati a prendere l'implementazione AOSP e quindi a personalizzarla (invece di biforcare l'implementazione).

Personalizzazione

L'applicazione Impostazioni tiene conto della personalizzazione ed espone diverse strade per la personalizzazione.

  • Tematizzazione. Abilita la personalizzazione visiva del modo in cui deve essere eseguito il rendering di ciascun tipo di oggetto Preferenza, tra cui:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Personalizzazione della gerarchia. Per abilitare:

    • Avviare in un frammento root arbitrario, sovrapporre il valore di config_settings_hierarchy_root_fragment nel file intitolato Settings/res/values/config.xml

    • Personalizzazione di elementi quali ordine, raggruppamento, testo e icone, sovrapposizione Settings/res/xml/*.xml

  • Iniezione statica. Durante l'impostazione di un progetto overlay, gli OEM possono aggiungere schermate proprietarie definendo e quindi aggiungendo le classi Fragment e Controller aggiuntive alla gerarchia.

  • Iniezione dinamica . Se un'applicazione separata ( apk ) ospita una schermata Impostazioni che deve essere collegata dall'app Impostazioni principale, l'applicazione separata può essere inserita dinamicamente. Per ulteriori informazioni, consulta Preferenze dinamiche .

Media

Media è un'app hero che fornisce l'esperienza utente front-end per conto di applicazioni multimediali che implementano le API MediaSession e MediaBrowser . Le applicazioni multimediali possono essere app di terze parti (come Spotify e Pandora) nonché altre fonti multimediali, come streaming Bluetooth (BT) e contenuti multimediali locali.

Centinaia di app multimediali sono disponibili in Android Auto ( Proiezione ), tutte implementano queste API multimediali come descritto in Fornire la riproduzione audio per Auto . Le API multimediali si evolvono con ogni versione principale di Android e con le versioni della libreria Androidx . Per garantire l'interoperabilità delle API tra tutte le app multimediali e le future versioni di Android, gli OEM sono fortemente incoraggiati a prendere l'implementazione AOSP e quindi a personalizzarla.

Personalizzazione

La tematica standard tramite il tema DeviceDefault si applica anche a Media. Inoltre, è possibile un'ulteriore personalizzazione dell'aspetto grafico con le sovrapposizioni di risorse, a condizione che la personalizzazione rientri nei limiti delle linee guida UX.

Altre app multimediali

Supporti USB e sorgenti multimediali

Per quanto possibile, si consiglia vivamente di collegare queste fonti multimediali a Media tramite un'implementazione delle API MediaSession e MediaBrowser (questo vale per qualsiasi app multimediale di terze parti). Vedi l'app LocalMediaPlayer nell'AOSP. Questa app mostra file multimediali locali e viene visualizzata come fonte in Media.