I token di progettazione OEM sono un'implementazione di Android Automotive OS (AAOS) del sistema Material Design. A differenza dell'approccio algoritmico o di selezione dell'utente per i valori dei token sui dispositivi mobili, gli OEM designano i valori dei token. I token di design rappresentano le piccole decisioni di design ripetute che costituiscono lo stile visivo di un sistema di design e sostituiscono i valori statici con nomi autoesplicativi. I token sono simili a quelli definiti dal sistema Material Design.
Libreria di token OEM
I token di design OEM vengono richiamati tramite la libreria di token OEM, composta dai tre componenti illustrati nella Figura 1.
Figura 1. Componenti della libreria di token OEM.
Libreria statica
Il componente della libreria statica della libreria di token OEM semplifica l'accesso ai valori dei token come segue.
- Fornisce API per accedere ai valori OEM per i token.
- Consente di attivare l'override dei riferimenti ai token nel tema con i valori OEM.
Libreria condivisa
Il componente della libreria condivisa è responsabile della definizione di quanto segue:
- Nome della libreria.
- Attivazione booleana per l'attivazione dei valori dei token OEM.
- Stile che fornisce i valori dei token OEM.
Per soddisfare la proprietà dell'OEM di questo componente della libreria condivisa, incluso un nome del pacchetto definito dall'OEM, gli OEM possono creare un'override dell'implementazione della libreria condivisa.
Figura 2. Sostituire un'implementazione della libreria condivisa.
Libreria condivisa OEM
Le sostituzioni OEM del componente della libreria condivisa consentono la proprietà della libreria da parte dell'OEM, mantenendo al contempo la compatibilità con gli altri componenti della libreria di token OEM, fornendo un mezzo per impostare il nome e la firma del pacchetto da parte degli OEM, lasciando invariata l'implementazione della libreria condivisa.
Le sostituzioni per una libreria condivisa possono essere definite come mostrato di seguito:
override_android_app { name: "[OEM]-token-shared-lib", base: "token-shared-lib", package_name: "com.[OEM].sharedlib", rename_resources_package: false, certificate: … }
Per impostare i valori dei token, vedi Specificare i valori dei token OEM.
Personalizzazioni della libreria condivisa OEM
Per supportare diversi schemi per i valori dei token (ad esempio, la differenziazione del modello o della modalità di guida), gli OEM possono fornire valori dinamici per i token scegliendo come target la libreria condivisa dell'OEM con gli overlay di risorse di runtime (RRO). Per scoprire di più, consulta Modificare il valore delle risorse di un'app in fase di esecuzione.
Per impostare i valori dei token, vedi Specificare i valori dei token OEM.
Specifica i valori dei token OEM
Per specificare i valori dei token, imposta l'attributo corrispondente nello stile OemStyle
sul valore richiesto.
<resources> <style name="OemStyle"> <item name="colorPrimary">#B0C5FF</item> <item name="colorOnPrimary">#002B76</item> <item name="colorPrimaryContainer">#003FA4</item> <item name="colorOnPrimaryContainer">#D9E2FF</item> … </style> </resources>
Attivare i valori OEM
Affinché le app possano accedere ai valori dei token forniti dall'OEM, gli OEM devono prima attivare l'override dei valori predefiniti dei token configurando il valore booleano enable_oem_tokens
su true
.
Valori token RRO
Analogamente alla modalità di impostazione dei valori dei token in OemStyle
, gli RRO possono essere utilizzati per modificare lo stile in modo da fornire valori token alternativi.
<resources> <style name="OemStyle"> <item name="com.android.oem.tokens:colorPrimary">#B0C5FF</item> <item name="com.android.oem.tokens:colorOnPrimary">#002B76</item> <item name="com.android.oem.tokens:colorPrimaryContainer">#003FA4</item> <item name="com.android.oem.tokens:colorOnPrimaryContainer">#D9E2FF</item> … </style> </resources>
Gli RRO devono impostare gli attributi della libreria condivisa sullo stile specificandone il nome.
Configura caricamento per ultimo
I sistemi che includono un'implementazione OEM di una libreria condivisa di token devono configurare il sistema per caricare la libreria condivisa dopo le classi dell'app. Per farlo, includi il nome della libreria
(com.android.oem.tokens
) nella configurazione config_sharedLibrariesLoadedAfterApp
sul sistema. Se hai accesso a Google Automotive Services (GAS), questo è obbligatorio.
<!-- The OEM token shared library will be loaded after app classes --> <string-array name="config_sharedLibrariesLoadedAfterApp" translatable="false"> <item>com.android.oem.tokens</item> </string-array>
Best practice
Le best practice per la libreria di token OEM sono descritte di seguito.
Attivare una strategia di aggiornamento flessibile
Consulta le strategie riportate di seguito per assicurarti di creare flessibilità in relazione agli aggiornamenti.
Libreria condivisa OEM
Poiché le librerie condivise dal sistema devono essere preinstallate nelle immagini di sistema, i dispositivi devono essere forniti con la libreria o la libreria deve essere aggiunta nell'ambito di un aggiornamento over-the-air (OTA) (per saperne di più, consulta Aggiornamenti OTA). Tuttavia, l'inclusione di un'implementazione stub di un'override OEM di una libreria condivisa del token OEM in un'immagine di sistema consente di inviare un aggiornamento a un'implementazione completamente funzionante sui dispositivi in un secondo momento senza la necessità di un aggiornamento OTA.
RRO della libreria condivisa
Sebbene non sia necessario installare le RRO come app di sistema, questa operazione offre alcuni comportamenti di aggiornamento che potrebbero essere desiderati.
- Aggiornamenti automatici delle app quando gli utenti non hanno eseguito l'accesso.
- Non può essere disinstallato dall'utente (gli utenti possono solo disinstallare gli aggiornamenti).