Utilizza Scalable UI per creare esperienze utente sofisticate, dinamiche e multi-riquadro nelle auto. Scalable UI:
Fornisce un sistema di windowing flessibile.
Riduce al minimo i rischi, i costi e le complessità di progettazione presentati dal CTS (Compatibility Test Suite) per le implementazioni dell'interfaccia utente.
Scalable UI supporta un'ampia gamma di design moderni di In-Vehicle Infotainment (IVI) che richiedono disposizioni dinamiche delle finestre, riducendo al contempo la scalabilità per supportare anche le esperienze tradizionali con disposizioni statiche delle finestre.
Android 17 introduce le seguenti funzionalità specifiche per il windowing avanzato:
- Implementa i riquadri delle notifiche heads-up
- Personalizza le barre di sistema
- Massimizza la conformità ai test con gli invarianti di WindowManager
- Integra la configurazione guidata
Esperienze di esempio
Scalable UI consente un'infinità di configurazioni di windowing. Ecco alcuni scenari di esempio creati per esercitare Scalable UI:
Sfondo della mappa con app mobili
Una configurazione dello sfondo della mappa con altre applicazioni mobili in primo piano.
Sfondo dell'app
Una configurazione dello sfondo dell'applicazione con riquadri mobili.
App bloccata sotto altre app
Un'applicazione bloccata, ad esempio un contenitore di widget, con altre applicazioni che vengono avviate in primo piano.
Riquadro mobile condizionale
Un riquadro mobile condizionale che viene visualizzato solo quando vengono soddisfatte condizioni specifiche, ad esempio quando vengono riprodotti contenuti multimediali o quando viene attivato un avviso.
App bloccata vicino al conducente
Un'applicazione bloccata posizionata più vicino al conducente.
Layout a schermo diviso
Un layout a schermo diviso che mostra due applicazioni affiancate.
Schermo diviso interattivo
Un layout a schermo diviso interattivo che consente il ridimensionamento dinamico.
Layout multi-ancoraggio per schermi di grandi dimensioni
Un layout multi-ancoraggio progettato per schermi di grandi dimensioni.
Carosello di app della schermata Home
Un layout della schermata Home con un carosello di applicazioni.
Vantaggi e conformità
I vantaggi di Scalable UI includono:
Rischio di test inferiore: il framework è pre-certificato e conforme al CTS, il che elimina il rischio principale di errori di test in un ciclo di programma. Scalable UI può far risparmiare mesi di lavoro di progettazione e accelerare la conformità.
Maggiore flessibilità di progettazione: capacità comprovata di ricreare numerosi modelli di windowing automobilistici esistenti e complessi. Scalable UI supporta design ambiziosi e altamente differenziati.
Minore complessità di implementazione: l'astrazione in un modello XML di alto livello basato sulla configurazione riduce la barriera all'ingresso per la logica di windowing personalizzata.
Prestazioni migliori: Scalable UI viene eseguito su una base di windowing ad alte prestazioni, completamente integrata con Android standard. Le transizioni avvengono senza problemi, consentendo l'ottimizzazione diretta.
Principi fondamentali
Scalable UI riduce al minimo la necessità di codice specifico per l'OEM, semplifica l'aggiornabilità e riduce i rischi di lancio eliminando le insidie e riducendo i problemi di certificazione.
L'approccio basato su XML risolve le sfide comuni nella gestione di sistemi di windowing complessi in AAOS, come il posizionamento preciso, i conflitti di ordine Z e lo stato attivo dell'app.
Scalable UI fornisce questi principi fondamentali.
Riquadro
Un riquadro è il contenitore rettangolare fondamentale sullo schermo. Ogni riquadro esegue il mapping a un'attività root dedicata per la gestione indipendente. Un riquadro può ospitare
attività dell'app (TaskPanel) o contenuti basati su visualizzazioni, come i widget (DecorPanel).
Per saperne di più, consulta Configurare un riquadro.
Variante
Una variante definisce uno stato visivo specifico per un riquadro e include proprietà come bounds (posizione e dimensioni), visibility, layer (ordine Z) e raggio corner. Un singolo riquadro può avere varianti, ad esempio opened, closed o minimized. Per saperne di più, consulta Utilizzare una variante per progettare uno stato visivo.
Transizione
Una transizione definisce il modo in cui un riquadro passa dallo stato attuale fromVariant a un nuovo stato, toVariant. Un Event attiva la transizione, che definisce l'animazione utilizzata dal riquadro durante la modifica dello stato. Un riquadro deve passare dallo stato attuale a toVariant. Per la sincronizzazione, il Window Manager principale anima e coordina tutte le transizioni.
- Evento: un trigger per avviare una modifica dell'UI. Un OEM o il sistema possono predefinire un trigger. Ad esempio,
_System_OnHomeEvent,_System_TaskOpenEvento la pressione di un pulsante di navigazione personalizzato.
Ad esempio, Scalable UI utilizza eventi per attivare transizioni. Queste transizioni animano un riquadro da una variante all'altra per visualizzare le modifiche dinamiche nell'UI. Scalable UI comunica queste modifiche ad altre app di sistema per regolare i contenuti in base alle esigenze. Definendo le relazioni dell'UI in XML, puoi:
Specificare comportamenti complessi dell'UI: definire interazioni complesse dell'interfaccia utente.
Organizzare i sistemi di windowing: controllare il posizionamento e la stratificazione delle finestre.
Implementare temi visivi: applicare branding ed estetica coerenti.
Ridurre la complessità del codice: ridurre al minimo la necessità di sviluppare codice personalizzato esteso.
Per saperne di più, consulta Configurare una transizione.
Pulsanti dell'UI di sistema
Oltre ad attivare intent, CarSystemBarButtons può attivare un
evento Scalable UI quando viene toccato utilizzando gli attributi event, selectedEvent e
unselectedEvent.
event descrive l'evento da attivare quando viene toccato il pulsante. Se
è necessario un controllo più granulare di un evento, utilizza gli attributi selectedEvent
e unselectedEvent per specificare l'evento da attivare quando il pulsante
è selezionato o deselezionato, rispettivamente.
Quando implementare l'UI di sistema
Questa sezione descrive gli utilizzi ottimali di Scalable UI.
- Creare layout multi-riquadro persistenti
- Implementare una scena Home dinamica
- Applicare overlay contestuali
- Progettare interazioni complesse tra i riquadri
Creare layout multi-riquadro persistenti
Crea un'esperienza multi-zona in cui diverse aree dello schermo sono dedicate in modo permanente a funzioni specifiche. Ad esempio, controlli multimediali dedicati, una striscia climatica o una mappa a schermo intero.
Utilizza TaskPanels per le app principali (ad esempio la navigazione) e DecorPanels per gli elementi dell'UI, sotto forma di visualizzazioni, che devono essere posizionati tra TaskPanels.
Implementare una scena Home dinamica
Implementa una scena Home composta da più riquadri dell'app visibili e interattivi contemporaneamente. Ad esempio, mappa, lettore multimediale e griglia delle app.
Per eseguire la transizione di tutti i riquadri pertinenti alle varianti Home opened o default, configura _System_HomeEvent.
Applicare overlay contestuali
Posiziona elementi dell'UI non app, come widget contestuali, branding personalizzato e barre di trascinamento che possono essere animate in coordinamento con le attività dell'app.
Utilizza DecorPanels per tutti gli elementi puramente decorativi o di hosting dei widget. Se un
widget ospita un'app completamente funzionante e avviabile, un Panel > TaskPanel è
ottimale. Utilizza DecorPanels per gli elementi dell'UI basati su visualizzazioni quando la stratificazione deve essere sincronizzata con la stratificazione TaskPanel.
Progettare interazioni complesse tra i riquadri
Progetta azioni avanzate guidate dall'utente, ad esempio il ridimensionamento dinamico di un riquadro dell'app o la regolazione delle visualizzazioni del quadro strumenti in base ai contenuti del display principale.
Definisci Events personalizzati per attivare Transitions specifici e non standard di sistema.