Panoramica di Android Automotive OS

Interfaccia utente di Android Automotive OS
Figura 1: sistema operativo Android Automotive

Android Automotive OS è una versione di Android ottimizzata per l'utilizzo in auto che si basa sulla piattaforma Android di base. Le auto con Google integrato funzionano con il sistema operativo Android Automotive e sono dotate di app e servizi Google, tra cui Google Play, l'Assistente Google e Google Maps.

Informazioni sull'hardware di Android Automotive OS

Per scoprire di più sulle specifiche hardware minime per i dispositivi con sistema operativo Android Automotive, consulta la sezione Requisiti per i veicoli del Documento di definizione della compatibilità Android (CDD) per le versioni di Android supportate dalla tua app.

Ritagli del display

Come per altri fattori di forma Android, i ritagli del display sono supportati dai dispositivi con sistema operativo Android Automotive con display non rettangolari. Tuttavia, le dimensioni e la forma degli ritagli trovati nelle auto possono essere molto diverse da quelle di altri fattori di forma. Per indicazioni dettagliate, consulta Utilizzare gli inserti delle finestre e i ritagli del display.

Audio

I dispositivi con sistema operativo Android Automotive sono generalmente dispositivi con volume fisso. Per scoprire di più su come questo potrebbe influire sulla tua app, consulta Lavorare con dispositivi con volume fisso.

Informazioni sul software Android Automotive OS

Sebbene Android Automotive OS sia basato sullo stesso sistema operativo di base utilizzato da altri fattori di forma, esistono alcune funzionalità aggiuntive uniche che possono influire sul modo in cui le app possono essere sviluppate e utilizzate.

UI di sistema

Devi tenere presente alcune differenze nel funzionamento di questi elementi dell'interfaccia utente di sistema nelle auto.

A differenza di altri fattori di forma, non è necessario che i dispositivi con sistema operativo Android Automotive abbiano un'affordance per il tasto Indietro hardware o software. Quando non vengono eseguite in modalità di compatibilità, le attività implementate dall'app devono includere funzionalità UI per consentire la navigazione in-app in modo da soddisfare le linee guida sulla qualità di AN-1.

Layout della barra di sistema

Come per altri fattori di forma, Android Automotive OS include bar di sistema come le barre di stato e di navigazione. Nelle auto, queste barre possono avere dimensioni e posizionamento diversi rispetto ad altri fattori di forma. Ad esempio, le barre di navigazione possono essere posizionate a sinistra, a destra o nella parte inferiore dello schermo. Anche se c'è una barra di stato in alto e una barra di navigazione in basso (come accade per la maggior parte di smartphone e tablet), le dimensioni di questi elementi saranno probabilmente molto maggiori nelle auto.

Inoltre, mentre i ritagli del display sui dispositivi mobili sono generalmente contenuti nei limiti delle barre di sistema, non è così nelle auto.

Per indicazioni dettagliate, consulta Utilizzare gli inserti della finestra e i ritagli del display.

Modalità immersiva

Il sistema operativo Android Automotive consente agli OEM di controllare se le app possono mostrare o nascondere le barre di sistema per entrare ed uscire dalla modalità immersiva. Impedendo alle app di nascondere le barre di sistema, gli OEM possono assicurarsi che i controlli del veicolo, come quelli climatici, siano sempre accessibili sullo schermo.

Restrizioni relative all'esperienza utente

Le limitazioni dell'esperienza utente (UX) sono la funzionalità integrata nel sistema operativo Android Automotive per gestire le considerazioni sulla distrazione del conducente. Le limitazioni UX impediscono automaticamente l'utilizzo di app che non sono state ottimizzate per l'utilizzo durante la guida.

L'attività di blocco dell'attività visualizzata su un'app non contrassegnata come ottimizzata per le distrazioni.
Figura 2: un'app bloccata dalle limitazioni dell'esperienza utente

L'insieme esatto di regole che determinano come e quando le limitazioni dell'esperienza utente sono attive è determinato dai produttori di veicoli. Queste regole possono variare in base alla località. Ad esempio, lo stesso veicolo venduto in Europa potrebbe avere regole diverse rispetto a quelle per i veicoli venduti negli Stati Uniti.

Le regole di limitazione dell'esperienza utente possono variare anche in base al display all'interno di un veicolo. Ad esempio, è possibile che un display centrale nel campo visivo del conducente sia limitato quando il veicolo è in movimento, mentre un display per i passeggeri rimane illimitato.

Se la tua app deve adattarsi alle restrizioni dell'esperienza utente, fai riferimento direttamente a queste ultime e non tentare di eseguire il reverse engineering della loro implementazione. Ad esempio, se supponi che le limitazioni dell'esperienza utente siano attive quando la leva non è in posizione P, potresti limitare inutilmente un'app in esecuzione sul display del passeggero.

Ottimizzazione per la riduzione della distrazione

Per impostazione predefinita, le attività non possono essere eseguite mentre le limitazioni UX sono attive per limitare le distrazioni del conducente. Per indicare al sistema che un'attività deve continuare a essere eseguita mentre il veicolo è in movimento, è possibile aggiungere il seguente elemento <meta-data> all'interno dell'elemento <activity> corrispondente.

<activity ...>
  <meta-data android:name="distractionOptimized" android:value="true">
</activity>

Quando sviluppi app per il sistema operativo Android Automotive, questi metadati devono essere presenti nel file manifest solo quando dichiari l'elemento manifest <activity> per CarAppActivity di un'app creata utilizzando la raccolta di app per auto. Nessun'altra attività deve essere contrassegnata come ottimizzata per ridurre le distrazioni. Se è presente un'attività di questo tipo, la tua app verrà rifiutata quando verrà inviata al Google Play Store.

Accessibilità

Il supporto dell'accessibilità per Android Automotive OS non è così ampio come su altri fattori di forma. TalkBack, Switch Access e Voice Access non sono disponibili sui dispositivi con sistema operativo Android Automotive.

Le preferenze per i sottotitoli codificati sono supportate sui dispositivi con Android Automotive OS. Per maggiori dettagli sull'integrazione, consulta Adottare le impostazioni di sistema relative ai sottotitoli codificati.

Selezione rete

Android Automotive OS supporta la selezione della rete per applicazione (PANS), che consente agli OEM di instradare il traffico di rete mobile su reti diverse in base all'applicazione.

La maggior parte delle app utilizza solo la rete predefinita assegnata e può solo beneficiare di questa funzionalità. Ad esempio, l'OEM potrebbe pagare il traffico di rete della tua app anche se l'utente non ha un proprio piano dati. Se la tua app (o una delle sue dipendenze) si basa su reti diverse da quella predefinita, potrebbe non trarre vantaggio dalle preferenze impostate dall'OEM. Per ulteriori indicazioni sull'utilizzo di reti diverse da quella predefinita, consulta la sezione Leggi lo stato della rete.

Funzionalità di sistema

Puoi rilevare se una determinata funzionalità è disponibile utilizzando PackageManager::hasSystemFeature e modificare di conseguenza il comportamento della tua app.

Funzionalità hardware

Come per altri fattori di forma non mobili, le funzionalità hardware disponibili nelle auto potrebbero essere diverse da quelle presenti sui dispositivi mobili.

Orientamento dello schermo

Come le TV, le auto sono dispositivi con orientamento fisso. A differenza delle TV, sono disponibili sia con orientamento verticale sia con orientamento orizzontale. Per garantire che le app create per Android Automotive OS possano essere distribuite a tutti i veicoli, devono garantire di non avere requisiti di funzionalità espliciti o impliciti per le funzionalità android.hardware.screen.landscape o android.hardware.screen.portrait.

Posizione della rete

Molti dispositivi con sistema operativo Android Automotive non implementano lo stack di telefonia utilizzato per fornire la posizione di rete e, di conseguenza, non segnalano la funzionalità di sistema android.hardware.location.network. Anche se la posizione della rete potrebbe non essere disponibile, l'accesso alla posizione approssimativa è comunque supportato. Consulta Posizione approssimativa su Android Automotive OS.

Funzionalità del software

Alcune funzionalità software che si trovano comunemente su altri fattori di forma potrebbero non essere supportate sui dispositivi con Android Automotive OS. Ad esempio, le seguenti funzionalità non sono disponibili su molti veicoli con Android Automotive OS:

Soddisfare i requisiti delle funzionalità di Google Play

Per essere distribuite nelle auto tramite Google Play, le app create per il sistema operativo Android Automotive devono includere un elemento <uses-feature> nel file AndroidManifest.xml per la funzionalità android.hardware.type.automotive:

<manifest ...>
  ...
  <!--
    See Choose a track for Android Automotive OS
    for details on how to choose which value to use for the android:required attribute.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]">;
  ...
</manifest>

Inoltre, se la tua app contiene una dichiarazione di funzionalità esplicita con android:required="true" o un requisito di funzionalità implicito per una delle seguenti funzionalità, devi aggiornarle o rimuoverle in modo che i requisiti di funzionalità dell'app non ne impediscano la distribuzione a veicoli altrimenti compatibili:

Per le funzionalità dichiarate esplicitamente con android:required="true", puoi eseguire una delle seguenti operazioni:

  • Elimina l'elemento <uses-feature> se la funzionalità non è obbligatoria implicitamente.
  • Dichiara esplicitamente la funzionalità con android:required="false".

Per le funzionalità richieste in modo implicito, puoi eseguire una delle seguenti operazioni:

  • Dichiara esplicitamente la funzionalità con android:required="false".
  • Rimuovi o aggiorna i valori manifest che introducono il requisito implicito nella funzionalità.

La modifica delle dichiarazioni delle funzionalità nel file manifest non influisce sul funzionamento effettivo dell'app, quindi controlla che l'app funzioni correttamente anche senza queste funzionalità.

Domande frequenti

Quali veicoli hanno Google integrato?

Visita il sito Auto con Google integrato per un elenco di OEM che hanno modelli con Google integrato. Le specifiche hardware e altri dettagli del dispositivo possono essere ottenuti utilizzando il Catalogo dei dispositivi di Play Console.