Panoramica HMI

Android Automotive è una piattaforma di infotainment per auto fornita con Android un progetto open source (AOSP). Gli articoli di questo argomento introducono i concetti e i componenti principali fornita dall'UI di Android Automotive System e dalle app principali necessarie per creare sistema di interfaccia per computer (HMI) per OEM, sviluppatori di terze parti e utenti finali.

  • Guida all'integrazione degli host AOSP. App Host consente alle app per auto di terze parti di eseguire il rendering di componenti dell'interfaccia utente (UI) in stile OEM sul suo per conto tuo.
  • Struttura delle impostazioni dell'auto. Impostazioni auto offre un'interfaccia utente visiva incentrata sull'auto, distrazioni di base del conducente ottimizzazioni e ulteriori punti di contatto 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 attivare tutte le app presenti nel per ottenere coerenza e personalizzazione.
  • Personalizzare le icone di sistema nella barra di stato. La barra di stato è un componente dell'interfaccia utente di sistema Android utilizzato per visualizzare in modo permanente importanti per gli utenti. Scopri come personalizzare le icone di sistema nella barra di stato.
  • Notifiche. Scopri come personalizzare le notifiche Notifiche.
  • Telefono. Utilizza questa app di sistema Android per implementare un'esperienza ottimizzata per le distrazioni per il Bluetooth chiamate, navigazione dei contatti e gestione delle chiamate.
  • Contenuti multimediali. Con poche impostazioni e un servizio, gli sviluppatori possono estendere le app multimediali esistenti. Sebbene le app debbano rispettare Automotive Media, gli sviluppatori possono personalizzare i colori, i caratteri, le icone e altri elementi dei modelli per 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 chiave di app essenziali per la funzionalità di sistema, tra cui Impostazioni, Radio Climatizzazione, Media, Telefono e Tastiera.
Compatibilità Definition Document (CDD) Indica i requisiti che devono essere soddisfatti affinché i dispositivi siano compatibili con le versioni di Android.
Suite di test di compatibilità (Compatibility Test Suite, CTS) Suite di test senza costi di livello commerciale, disponibile per il download all'indirizzo Download della suite di test di compatibilità.
Personalizzazione Esercizio di modifica di un'implementazione AOSP per soddisfare i requisiti di un OEM. In genere, ciò comporta l'uso di overlay di risorse per applicare modifiche estetiche e al contempo assicurando la conformità a CDD, CTS e a tutte le linee guida pertinenti sull'esperienza utente.
App Hero 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, contenuti multimediali e Centro comunicazione/Telefono. AOSP corrispondente le implementazioni devono essere di qualità produttiva.
Overlay di risorse Per modificare il rendering dell'interfaccia utente, utilizza questo meccanismo per sostituire i colori, modificare le dimensioni, abilitare il disegno e applicare le risorse di layout tempo di compilazione (più comune) o in fase di runtime (RRO (Runtime Resource Overlays)).
UI di sistema L'interfaccia utente esterna a un'app appartenente al sistema, ad esempio barra di navigazione, barra di stato, schermata di blocco e finestra di dialogo del volume.
Tema Una raccolta di colori e stili utilizzati per determinare l'aspetto dei componenti e le 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 di sistema e di altre app di sistema principali funge da le basi per iniziare il processo di sviluppo dell'HMI. Esercizio di modifica dell'AOSP dell'implementazione (principalmente tramite l'uso di overlay di risorse) per soddisfare le esigenze di branding, attività, e requisiti legali è definita personalizzazione.

Sebbene il sistema complessivo sia progettato e realizzato per essere flessibile, sono previsti componenti diversi per essere personalizzati in base a gradi diversi:

  • UI di sistema. L'OEM può personalizzare o sostituire l'implementazione AOSP all'interno limiti previsti da CDD e CTS e da tutte le altre linee guida vigenti per l'esperienza utente.

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

  • App hero. Ogni app è dotata di una serie di linee guida dettagliate per la personalizzazione. Gli OEM sono vivamente invitati a utilizzare l'implementazione AOSP e a personalizzarla all'interno del limiti previsti da queste linee guida.

Configurazione della densità

Per garantire che gli elementi UI vengano visualizzati correttamente in base alla configurazione di visualizzazione fisica, la densità deve essere impostata sul bucket (Metriche display) che corrisponde meglio alla densità fisica, come questa voce nel file di build:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

motore limitazioni UX

CarUxRestrictionsManager consente alle app di ascoltare le modifiche relative allo stato di guida per modificare in modo appropriato l'esperienza utente. Gli OEM possono sovrapporre 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 definisce l'insieme predefinito di elementi a livello di sistema, come colori e stili di testo, è DeviceDefault. Consigliamo agli OEM di avviare la procedura generale di personalizzazione modificando il tema DeviceDefault. Per impostazione predefinita, la UI di sistema e tutte le app di sistema in AOSP ereditano questo tema. Consigliamo inoltre alle app di sistema sviluppate dall'OEM di ereditare DeviceDefault. Di terze parti non si prevede che le app sviluppate ereditino DeviceDefault ma utilizzino invece Theme.Car forniti nella libreria androidx.car. I file si trovano nel seguente modo:

  • Principale. /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
  • Overlay auto.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

Gli OEM dovrebbero avere una struttura overlay parallela alla directory car_product nella directory dei fornitori che estende ulteriormente l'overlay car_product.

App Theme Playground

Questa app semplifica la procedura di personalizzazione del tema DeviceDefault tramite visualizzare tutti gli attributi del tema in un unico posto. Confrontando il modo in cui alcuni stili vengono visualizzati rispetto ad altre app di sistema, gli sviluppatori possono eseguire rapidamente il debug dei problemi relativi ai temi. Questa app è disponibile all'indirizzo:

  /packages/services/Car/tests/ThemePlayground

UI di sistema

L'UI di sistema include tutta l'interfaccia utente in /frameworks/base, principalmente nella /frameworks/base/packages/CarSystemUI. Sono incluse la barra di navigazione, la barra di stato, schermata di blocco, finestra di dialogo del volume, toast, selettore utenti e finestre di dialogo delle autorizzazioni. Gli OEM possono personalizzare componenti UI di sistema tramite overlay e tema delle risorse, a condizione che ciascuno si trovi all'interno i requisiti di CDD, CTS e altre linee guida applicabili per l'esperienza utente.

App di sistema

Android Automotive include un insieme di app di sistema principali e fondamentali per il sistema in generale funzionalità. Di questi, Communication Center, Media, Notifications e Impostazioni sono considerate app hero.

  • Centro comunicazioni
  • Climatizzazione
  • IME (tastiera)
  • Avvio app (schermata Home)
  • Media player locale
  • Contenuti multimediali
  • Messenger
  • Notifiche
  • Radio
  • Impostazioni

Schermata Home

La schermata Home, nota come Avvio auto, è la pagina di destinazione dell'esperienza HMI. L'implementazione AOSP serve solo come riferimento e gli OEM sono tenuti a sostituire il implementazione con le proprie, che spesso combinano navigazione, riproduzione di contenuti multimediali, comunicazione in altri stati del sistema, se necessario. Spesso l'app Avvio app mostra le app disponibili sul sistema. Per imparare a gestire eventi come recenti, modifiche ai pacchetti e headless (nessuna attività di avvio applicazioni), consulta l'implementazione di riferimento.

Notifiche

Le notifiche sono parte integrante del sistema operativo Android e gli stessi costrutti (tra cui notifica di avviso, elenco/centro notifiche, API di notifica, ranking e azioni in linea) sono state incluse in Android Automotive. Per maggiori dettagli, consulta Notifiche Panoramica. Per ottimizzare i casi d'uso del settore auto e motori, sono state apportate le seguenti modifiche (rispetto alla stack di notifiche su dispositivo portatile):

  • Riduzione dei contenuti complessivi delle notifiche visibili agli utenti. Rimozione di riproduzione di contenuti multimediali in corso, navigazione continua e "non importante" (importanza LOW e inferiore) le notifiche dei servizi in primo piano delle app di sistema nell'elenco o nel centro delle notifiche, con il Comprendere che queste notifiche sono rese ridondanti (ad es. cluster che mostrano lo stato dei contenuti multimediali) o non sono utili.

  • Rimozione dei controlli contestuali complessi (ad esempio la pressione prolungata e quelli basati sulla lunghezza di scorrimento ).

  • Rispettare la configurazione del motore Limitazioni UX.

    • L'anteprima dei contenuti delle notifiche di messaggistica potrebbe essere nascosta in base allo stato di Drive.
    • Tutte le stringhe sono limitate alla lunghezza massima.
  • Aggiunta di nuove categorie di notifica specifiche per le automobili a Android 9, disponibile solo per le app di sistema in bundle eseguite come android.uid.system.

  • CATEGORY_CAR_EMERGENCY. Classificato in cima all'elenco delle notifiche. Bypass Controlli Non disturbare.

  • CATEGORY_CAR_WARNING. Classificato sotto il livello di emergenza e superiore alle altre (elude DND).
  • CATEGORY_CAR_INFORMATION. Classificato con il resto delle notifiche in base a "importanza" e recency.

L'implementazione end-to-end dello stack di notifica, dalle API di notifica alla UI, è considerata un'app hero. garantire un'interoperabilità coerente delle API in tutti gli HU e per massimizzare l'upgrade, gli OEM sono vivamente incoraggiati a implementare l'AOSP e poi personalizzarlo leggermente.

Personalizzazione

Si applicano gli overlay di risorse e i temi standard di DeviceDefault. Un numero molto limitato di manopole di personalizzazione del comportamento sono disponibili all'indirizzo:

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

Impostazioni

App Impostazioni (Impostazioni auto) è una delle app hero con le manopole, che l'utente può utilizzare per configurare aspetti del sistema operativo Android e del resto dell'auto. Le impostazioni espone più di 200 funzionalità nel sistema operativo, che sono strettamente associate a ciascuna Release di Android. Per consentire l'upgrade ed evitare la frammentazione, gli OEM sono vivamente consigliati. l'implementazione AOSP e la sua personalizzazione (anziché il fork dell'implementazione).

Personalizzazione

L'app Impostazioni tiene conto della personalizzazione e offre diverse opzioni per personalizzazione.

  • Temi. Abilita la personalizzazione visiva di come ogni tipo di oggetto Preferenza deve essere sottoposto a rendering, inclusi:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Personalizzazione della gerarchia. Per attivare:

    • Avvia un frammento radice arbitrario, sovrapponi il valore di config_settings_hierarchy_root_fragment nel file intitolato Settings/res/values/config.xml

    • Personalizzazione di elementi, ad esempio ordine, raggruppamento, testo, icone e overlay Settings/res/xml/*.xml

  • Iniezione statica. Durante la configurazione di un progetto di overlay, gli OEM possono aggiungere schermate proprietarie definendo e poi aggiungendo le altre classi Fragment e Controller alla gerarchia.

  • Inserimento dinamico. Se un'app separata (apk) ospita un Schermata Impostazioni che deve essere collegata all'app Impostazioni principale. È possibile collegare l'app separata inserite in modo dinamico. Per ulteriori informazioni, vedi Preferenze dinamiche.

Contenuti multimediali

Media è un'app hero che fornisce l'esperienza utente front-end per conto dei media che implementano MediaSession: e MediaBrowser su quelle di livello inferiore. Le app multimediali possono essere app di terze parti (come Spotify e Pandora), nonché altre come lo streaming Bluetooth (BT) e i contenuti multimediali locali.

In Android Auto (Proiezione) sono disponibili centinaia di app multimediali, tutte implementare queste API multimediali come descritto in Fornire la riproduzione audio per le auto. Le API multimediali si evolvono con ogni release principale di Android e con le release nella libreria Androidx. Per garantire l'interoperabilità delle API in tutte le app multimediali e nelle versioni future di Android, gli OEM Ti consigliamo vivamente di eseguire l'implementazione AOSP per poi personalizzarla.

Personalizzazione

I temi standard tramite il tema DeviceDefault si applicano anche ai contenuti multimediali. Inoltre, la personalizzazione dell'aspetto è possibile con gli overlay di risorse, a condizione che la personalizzazione entro i limiti delle linee guida sull'esperienza utente.

Fonti multimediali e dei contenuti multimediali USB

Per quanto possibile, consigliamo vivamente di collegare queste fonti multimediali ai contenuti multimediali tramite un'implementazione delle MediaSession e MediaBrowser API (questo vale per le app multimediali di terze parti). Visualizza l'app LocalMediaPlayer nell'AOSP. Questa app mostra file multimediali locali e viene visualizzata come fonte nei contenuti multimediali.