Gettoni di progettazione OEM

I token di progettazione OEM sono un'implementazione del sistema operativo Android Automotive (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 di progettazione. I token di progettazione rappresentano le piccole e ripetute decisioni di progettazione che costituiscono lo stile visivo di un sistema di progettazione e sostituiscono i valori statici con nomi autoesplicativi. I token sono analoghi a quelli definiti dal sistema Material Design.

Libreria di token OEM

Si fa riferimento ai token di progettazione OEM tramite la libreria di token OEM, costituita 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 facilita l'accesso ai valori dei token come segue.

  • Fornisce API per accedere ai valori OEM per i token.
  • Abilita l'attivazione esplicita dell'override dei riferimenti ai token nel tema con valori OEM.

Biblioteca condivisa

Il componente della libreria condivisa è responsabile della definizione di quanto segue:

  • Nome della libreria.
  • Attivazione booleana per l'abilitazione dei valori dei token OEM.
  • Stile che fornisce valori token OEM.

Per garantire la proprietà OEM di questo componente della libreria condivisa, incluso un nome di pacchetto definito dall'OEM, gli OEM possono creare una sostituzione dell'implementazione della libreria condivisa.

Figura 2. Sostituisci l'implementazione di una libreria condivisa.

Libreria condivisa OEM

Le sostituzioni OEM del componente della libreria condivisa consentono la proprietà OEM della libreria mantenendo la compatibilità con altri componenti nella libreria di token OEM fornendo un mezzo per impostare il nome e la firma del pacchetto da parte degli OEM lasciando al tempo stesso 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, consulta Specificare i valori dei token OEM .

Personalizzazioni della libreria condivisa OEM

Per supportare vari schemi per i valori dei token (ad esempio, differenziazione del modello o della modalità di guida), gli OEM possono fornire valori dinamici per i token prendendo di mira la libreria condivisa OEM con Runtime Resource Overlays (RRO). Per ulteriori informazioni, consulta Modificare il valore delle risorse di un'app in fase di esecuzione .

Per impostare i valori dei token, consulta Specificare i valori dei token OEM .

Specificare i valori del token OEM

Per specificare i valori del token, impostare 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>

Attiva i valori OEM

Affinché le app possano accedere ai valori dei token forniti dagli OEM, gli OEM devono prima acconsentire esplicitamente all'override dei valori dei token predefiniti configurando il valore booleano enable_oem_tokens su true .

Valori dei token RRO

Analogamente a come vengono impostati i valori dei token in OemStyle , è possibile utilizzare le RRO per modificare lo stile per fornire valori dei 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 dovrebbero impostare gli attributi della libreria condivisa sullo stile specificando il nome della libreria condivisa.

Configura il 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. A tale scopo, includere il nome della libreria ( com.android.oem.tokens ) nella configurazione config_sharedLibrariesLoadedAfterApp sul sistema. Se hai accesso a Google Automotive Services (GAS), questo viene applicato come requisito.

<!-- 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>

Migliori pratiche

Le migliori pratiche per la libreria di token OEM sono descritte di seguito.

Abilita una strategia di aggiornamento flessibile

Consulta le strategie di seguito per assicurarti di aumentare la flessibilità rispetto agli aggiornamenti.

Libreria condivisa OEM

Poiché le librerie condivise del sistema devono essere preinstallate sulle immagini di sistema, i dispositivi devono essere forniti con la libreria oppure la libreria deve essere aggiunta come parte di un aggiornamento Over-the-Air (OTA) (per ulteriori informazioni, vedere Aggiornamenti OTA ). Tuttavia, l'inclusione di un'implementazione stub di un override OEM di una libreria condivisa di token OEM su un'immagine di sistema consente di inviare ai dispositivi un aggiornamento a un'implementazione completamente funzionante in un secondo momento senza la necessità di un OTA.

RRO della libreria condivisa

Sebbene non sia necessario installare le RRO come app di sistema, in questo modo si fornisce un comportamento di aggiornamento che potrebbe essere desiderato.

  • Aggiornamenti automatici delle app quando gli utenti non hanno effettuato l'accesso.
  • Non può essere disinstallato dall'utente (gli utenti possono solo disinstallare gli aggiornamenti ).