Il toolkit Car User Interface (UI) fornisce un framework di sviluppo dell'interfaccia utente che puoi utilizzare per garantire che le app presenti nelle auto (app Google e app di sistema e del fornitore) possano raggiungere:
Autocoerenza UI/UX dell'infotainment. L'autocoerenza è la capacità di un utente di prevedere come interagire con un sistema di infotainment sulla base delle precedenti esperienze di interazione con lo stesso sistema.
Personalizzazione. Gli OEM possono modificare l'aspetto del sistema per integrare al meglio la funzionalità con gli interni e l'hardware del veicolo.
Per ulteriori informazioni sull'integrazione della libreria dell'interfaccia utente dell'auto, consulta queste pagine:
- Integra la libreria dell'interfaccia utente dell'auto nelle app
- Personalizza le app
- Aggiungi caratteri personalizzati
- Personalizza le preferenze dell'interfaccia utente dell'auto
- CarUiListItem
- Personalizza CarUiRecyclerView
- Risolvere i problemi relativi agli overlay delle risorse di runtime
- Note di rilascio
- Appendice A, lavorare con le RRO
- Appendice B, linee guida per la personalizzazione
Informazioni sulla libreria dell'interfaccia utente dell'auto
La libreria Car UI è una libreria collegata staticamente, che fornisce una serie di componenti e risorse che puoi utilizzare per implementare:
- App di sistema e OEM (Gerrit)
- App Android Automotive (AAOS).
Questa libreria funge da:
API di personalizzazione tramite:
- Definire quali risorse possono essere personalizzate inclusi colori, dimensioni e disegni.
- Trattare le risorse come un'API con garanzie di compatibilità con le versioni precedenti.
- Livello di compatibilità tra la soluzione a breve termine fornita in Android 9 e Android 10 e la soluzione a lungo termine attualmente in fase di sviluppo.
Sovrapposizioni di risorse
Android offre attualmente diversi modi per applicare le personalizzazioni senza ulteriore lavoro necessario ai sottosistemi e alle app interessati:
Sovrapposizioni in fase di compilazione. Questa personalizzazione viene applicata al momento della creazione dell'immagine del sistema Android. Durante la compilazione, tutte le app nel sistema ricevono risorse dalla propria cartella
res
e dalle cartelleoverlay
definite nei makefile di destinazione.Sovrapposizioni di runtime dinamiche (RRO dinamico). Questi APK speciali contengono solo risorse e un file manifest per indicare quale APK di destinazione influenzeranno. Le RRO dinamiche vengono compilate e distribuite indipendentemente dall'immagine del sistema e possono essere attivate e disattivate. Quando il sistema esegue una ricerca di risorse per un'app specifica, controlla anche eventuali RRO destinati ad essa e se l'RRO contiene una risorsa con lo stesso nome.
Sovrapposizioni di runtime statiche (RRO statico). Simili nella struttura alle RRO dinamiche, queste sono sempre attive , il che significa che non possono essere disinstallate o aggiornate senza eseguire un aggiornamento completo dell'immagine del sistema. Gli RRO statici fungono da intermediario tra gli overlay di build-time e runtime dinamici.
Oltre ai componenti dell'interfaccia utente, la libreria Car UI fornisce un meccanismo per sovrapporre direttamente le risorse (collegate staticamente in ciascuna app) con le risorse OEM, utilizzando un set di RRO statici . Gli OEM devono fornire una cartella contenente le sovrapposizioni di risorse e un elenco di app mirate. Durante una compilazione, l'infrastruttura della libreria dell'interfaccia utente dell'auto utilizzerebbe queste informazioni per generare un RRO statico per ciascuna app di destinazione.
Nell'immagine sopra:
Verde . Personalizzazione fornita dall'OEM, un mix di risorse overlay di build-time e run-time.
Giallo. Supporto fornito dalla libreria Car UI, incluse risorse sovrapponibili , componenti (codice Java) e supporto di creazione per generare le RRO necessarie.
Blu. Obiettivi personalizzabili tra cui framework, app di sistema, app del fornitore e app GAS che utilizzano la libreria dell'interfaccia utente dell'auto per personalizzare gli elementi dell'interfaccia utente.