Les jetons de conception OEM sont une implémentation d'Android Automotive OS (AAOS) Material Design du système d'exploitation. Contrairement à l'approche algorithmique ou de sélection de l'utilisateur pour les valeurs de jeton sur mobile, les OEM désignent les valeurs des jetons de conception. Les jetons de conception représentent les petites décisions de conception répétées qui constituent une le style visuel du système de conception et remplacer les valeurs statiques par des noms explicites. Les jetons sont analogues à celles définies par le système Material Design.
Bibliothèque de jetons OEM
Les jetons de conception OEM sont référencés via la bibliothèque de jetons OEM, qui se compose des trois illustrés dans la figure 1.
Figure 1 : Composants de la bibliothèque de jetons OEM.
Bibliothèque statique
Le composant de bibliothèque statique de la bibliothèque de jetons OEM facilite l'accès aux valeurs de jeton suit.
- Fournit des API permettant d'accéder aux valeurs OEM des jetons.
- Permet de remplacer les références de jetons dans le thème par les valeurs OEM (avec option d'acceptation).
Bibliothèque partagée
Le composant de bibliothèque partagée est chargé de définir les éléments suivants:
- Nom de la bibliothèque.
- Option booléenne pour l'activation des valeurs de jetons OEM.
- Style qui fournit des valeurs de jeton OEM.
Pour tenir compte de la propriété par l'OEM de ce composant de bibliothèque partagée, y compris d'un package défini par l'OEM les OEM peuvent créer un remplacement de l'implémentation de la bibliothèque partagée.
Figure 2. Ignorer l'implémentation d'une bibliothèque partagée
Bibliothèque partagée OEM
Les forçages OEM du composant de bibliothèque partagée permettent à l'OEM de devenir propriétaire de la bibliothèque maintenir la compatibilité avec d'autres composants de la bibliothèque de jetons OEM en fournissant un moyen le nom du package et la signature doivent être définis par les OEM tout en laissant la mise en œuvre autrement non modifiée.
Les remplacements pour une bibliothèque partagée peuvent être définis comme suit:
override_android_app { name: "[OEM]-token-shared-lib", base: "token-shared-lib", package_name: "com.[OEM].sharedlib", rename_resources_package: false, certificate: … }
Pour définir des valeurs de jeton, consultez Spécifier les valeurs de jeton OEM.
<ph type="x-smartling-placeholder">Personnalisation de la bibliothèque partagée OEM
Pour permettre des schémas variés pour les valeurs de jeton (par exemple, différenciation du modèle ou du mode d'entraînement), Les OEM peuvent fournir des valeurs dynamiques pour les jetons en ciblant la bibliothèque partagée OEM avec Runtime Superpositions de ressources (RRO). Pour en savoir plus, consultez Modifiez la valeur des ressources d'une application au moment de l'exécution.
Pour définir des valeurs de jeton, consultez Spécifier les valeurs de jeton OEM.
Spécifier les valeurs des jetons OEM
Pour spécifier des valeurs de jeton, définissez l'attribut correspondant dans le style OemStyle
sur
la valeur requise.
<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>
Activer les valeurs OEM
Pour que les applications puissent accéder aux valeurs de jeton fournies par les OEM, les OEM doivent d'abord activer le remplacement des valeurs par défaut
en configurant la valeur booléenne enable_oem_tokens
sur true
.
Valeurs du jeton RRO
De la même manière que les valeurs de jeton sont définies dans OemStyle
, les RRO peuvent être utilisées pour modifier le
pour fournir d'autres valeurs de jeton.
<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>
Les RRO doivent définir les attributs de la bibliothèque partagée sur le style en spécifiant la bibliothèque partagée son nom.
Configurer le dernier chargement
Les systèmes qui incluent une implémentation OEM d'une bibliothèque partagée de jetons doivent configurer le système
pour charger la bibliothèque partagée après les classes de l'application. Pour ce faire, indiquez le nom de la bibliothèque
(com.android.oem.tokens
) dans le config_sharedLibrariesLoadedAfterApp
sur le système. Si vous avez accès à Google Automotive Services (GAS), il s'agit d'un
cette exigence.
<!-- 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>
Bonnes pratiques
Les bonnes pratiques concernant la bibliothèque de jetons OEM sont décrites ci-dessous.
Mise en place d'une stratégie de mise à jour flexible
Consultez les stratégies ci-dessous pour bénéficier d'une certaine flexibilité concernant les mises à jour.
Bibliothèque partagée OEM
Comme les bibliothèques partagées par le système doivent être préinstallées sur les images système, les appareils doivent : avec la bibliothèque. Sinon, celle-ci doit être ajoutée dans le cadre d'une mise à jour Over The Air (OTA) consultez la section Mises à jour OTA). Toutefois, l'implémentation bouchon d'un remplacement OEM d'une bibliothèque partagée de jetons OEM sur une l’image système permet de mettre à jour une implémentation complète et fonctionnelle d’être transmise aux appareils à un sans passer par une agence de voyages en ligne.
RRO de la bibliothèque partagée
Bien qu'il n'y ait aucune obligation d'installer les RRO en tant qu'applications système, cela offre une le comportement de mise à jour souhaité.
- Mises à jour automatiques des applications lorsque les utilisateurs ne sont pas connectés.
- ne peuvent pas être désinstallées par l'utilisateur (les utilisateurs peuvent uniquement désinstaller les mises à jour) ;