Utilizza l'UI scalabile per creare esperienze utente sofisticate, dinamiche e multi-pannello nelle auto. UI scalabile:
Fornisce un sistema di finestre flessibile.
Riduce al minimo i rischi, i costi e le complessità di ingegneria presentati dalla Compatibility Test Suite (CTS) per le implementazioni dell'interfaccia utente.
La UI scalabile supporta un'ampia gamma di design moderni per l'In-Vehicle Infotainment (IVI) che richiedono disposizioni dinamiche delle finestre, ma può anche essere ridimensionata per supportare esperienze tradizionali con disposizioni statiche delle finestre.
Android 17 introduce le seguenti funzionalità specifiche per la gestione avanzata delle finestre:
- Implementare i pannelli di notifica heads-up
- Personalizzare le barre di sistema
- Massimizzare la conformità dei test con gli invarianti di WindowManager
- Integrare la configurazione guidata
Esperienze di esempio
L'interfaccia utente scalabile consente un'infinita varietà di configurazioni delle finestre. Ecco alcuni scenari di esempio creati per esercitare la UI scalabile:
Sfondo della mappa con app mobili
Una configurazione dello sfondo della mappa con altre applicazioni che fluttuano in primo piano.
Background app
Una configurazione dello sfondo dell'applicazione con pannelli mobili.
App bloccata in Altre app
Un'applicazione bloccata, ad esempio un contenitore di widget, con altre applicazioni che vengono avviate in primo piano.
Riquadro mobile condizionale
Un pannello 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 dello schermo diviso
Un layout a schermo diviso che mostra due applicazioni affiancate.
Schermo diviso interattivo
Un layout interattivo a schermo diviso che consente il ridimensionamento dinamico.
Layout multiancora per schermi grandi
Un layout multiancora progettato per schermi di grandi dimensioni.
Carosello delle app della schermata Home
Un layout della schermata Home con un carosello di applicazioni.
Vantaggi e conformità
I vantaggi dell'interfaccia utente scalabile includono:
Rischio di test inferiore: il framework è pre-certificato e conforme al CTS, il che elimina il rischio principale di errori di test alla fine di un ciclo di programma. L'interfaccia utente scalabile può farti risparmiare mesi di lavoro di ingegneria e accelerare la conformità.
Maggiore flessibilità di progettazione: capacità comprovata di ricreare numerosi modelli di finestre per auto complessi esistenti. L'interfaccia utente scalabile 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 finestre personalizzata.
Prestazioni migliori: l'interfaccia utente scalabile viene eseguita su una base di finestre ad alte prestazioni, completamente integrata con Android standard. Le transizioni scorrono senza problemi, consentendo l'ottimizzazione diretta.
Principi fondamentali
L'UI scalabile 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 finestre complessi in AAOS, come posizionamento preciso, conflitti di ordine Z e messa a fuoco delle app.
Scalable UI fornisce questi componenti di base.
Riquadro
Un pannello è il contenitore rettangolare fondamentale sullo schermo. Ogni pannello
corrisponde a un'attività radice dedicata per la gestione indipendente. Un pannello può ospitare
attività delle app (TaskPanel) o contenuti basati sulla visualizzazione, come i widget (DecorPanel).
Per saperne di più, consulta Configurare un pannello.
Variante
Una variante definisce uno stato visivo specifico per un pannello e include proprietà
come bounds (posizione e dimensioni), visibility, layer (ordine Z) e
raggio corner. Un singolo pannello può avere varianti, ad esempio opened, closed
o minimized. Per scoprire di più, consulta Utilizzare una variante per progettare uno stato visivo.
Transizione
Una transizione definisce il modo in cui un pannello passa dallo stato attuale fromVariant
a un nuovo stato, toVariant. Un Event attiva la transizione, che definisce
l'animazione utilizzata dal pannello durante il cambio di stato. Un pannello deve
passare dal suo 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'interfaccia utente. Un OEM o il sistema può
predefinire un trigger. Ad esempio,
_System_OnHomeEvent,_System_TaskOpenEvento la pressione di un pulsante di navigazione personalizzato.
Ad esempio, Scalable UI utilizza gli eventi per attivare le transizioni. Queste transizioni animano un pannello da una variante all'altra per mostrare le modifiche dinamiche nell'interfaccia utente. L'interfaccia utente scalabile comunica queste modifiche ad altre app di sistema per modificare i contenuti in base alle esigenze. Definendo le relazioni dell'interfaccia utente in XML, puoi:
Specifica comportamenti complessi dell'interfaccia utente:definisci interazioni complesse dell'interfaccia utente.
Organizza i sistemi di finestre:controlla il posizionamento e la stratificazione delle finestre.
Implementa temi visivi:applica un branding e un'estetica coerenti.
Riduzione della complessità del codice:riduci 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 dell'interfaccia utente scalabile 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 dell'interfaccia utente scalabile.
- Creare layout multipannello persistenti
- Implementare una scena della casa dinamica
- Applicare overlay contestuali
- Progettare interazioni complesse con i pannelli
Creare layout multipannello persistenti
Crea un'esperienza multizona in cui diverse aree dello schermo sono dedicate in modo permanente a funzioni specifiche. Ad esempio, controlli multimediali dedicati, una striscia del clima o una mappa a schermo intero.
Utilizza TaskPanels per le app principali (ad esempio la navigazione) e DecorPanels per
gli elementi dell'interfaccia utente, sotto forma di visualizzazioni, che devono essere posizionati tra TaskPanels.
Implementare una scena della casa dinamica
Implementa una scena Home composta da più riquadri delle app visibili contemporaneamente e interattivi. Ad esempio, la mappa, il media player e la griglia delle app.
Per eseguire la transizione di tutti i pannelli pertinenti alle varianti della casa opened o default,
configura _System_HomeEvent.
Applicare overlay contestuali
Posiziona elementi 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 UI basati sulla visualizzazione quando la stratificazione deve essere
sincronizzata con la stratificazione TaskPanel.
Progettare interazioni complesse con i pannelli
Progetta azioni avanzate basate sull'utente, ad esempio il ridimensionamento dinamico di un pannello dell'app o la regolazione delle visualizzazioni del quadro strumenti in base ai contenuti del display principale.
Definisci Events personalizzati per attivare Transitions specifici non standard di sistema.
Estendere i layout IVI a un Unified Digital Cockpit
L'interfaccia utente scalabile gestisce le finestre multi-pannello (TaskPanel e DecorPanel) sul
display principale dell'infotainment (display0) nella VM SDV IVI. Puoi accoppiare
l'UI scalabile con la sicurezza del display per aggiornare le visualizzazioni del quadro strumenti
quando cambia il layout del display principale:
- Azioni dell'UI scalabile (VM
SDV IVI): quando lo stato di un riquadro cambia sul display principale, l'UI scalabile può inviare un intent utilizzando un<Action>inxml/scalable_ui_actions.xmlper comunicare ai componenti del cluster le modifiche al layout o alla modalità. Per saperne di più, consulta Configurare un'azione. - DriverUI (VM
SDV IVI): viene eseguita sul display del cluster (display1) come app di sistema avviata daClusterHomeManagere creata conautomotive-design-compose.DriverUIesegue il rendering dei contenuti del cluster non di sicurezza (come mappe, contenuti multimediali e chiamate) e gestisce gli aggiornamenti di stato dal sistema IVI. - SDV Gateway su IVI (VM
SDV IVI):DriverUIutilizzaSDV Gateway Clientper connettersi al renderer ad alta affidabilità (HAR) tramite gRPC (driverui.proto).DriverUIinvia aggiornamenti dello stato del cluster (come varianti di layout, token del tema e modifiche delle impostazioni internazionali) insieme a messaggi heartbeat periodici. HARe Safety Monitor (VMSDV Media): vengono eseguiti in una VMSDV Mediaseparata per il rendering di elementi critici per la sicurezza (come velocità, marcia, spie, segnali acustici e feed della telecamera posteriore). Mentre riceve heartbeat daDriverUI,HARmantiene trasparenti le regioni del cluster Android in modo che i contenuti diDriverUIsi mescolino con le sovrapposizioni di sicurezza diHAR. SeSDV IVIè in fase di avvio o non è disponibile,HARmostra segnaposto di riserva.- Configurazione OEM:per configurare questo flusso, configura i trigger
<Event>e gli intent<Action>inxml/scalable_ui_actions.xmlsuSDV IVI, aggiorna il file di progettazione Figma e i mapping dei segnaliConfig.jsonper la toolchain di progettazione della sicurezza e implementa il livello di astrazione della piattaforma (PAL) HAR per l'hardware di destinazione.