OEM-Design-Tokens sind eine Android Automotive OS (AAOS)-Implementierung des Material Design- Systems. Im Gegensatz zum Algorithmus- oder Benutzerauswahlansatz für Tokenwerte auf Mobilgeräten legen OEMs Design-Tokenwerte fest. Design-Token stellen kleine, wiederholte Designentscheidungen dar, die den visuellen Stil eines Designsystems ausmachen und statische Werte durch selbsterklärende Namen ersetzen. Token entsprechen denen, die vom Material Design-System definiert werden.
OEM-Token-Bibliothek
Auf OEM-Design-Tokens wird über die OEM-Token-Bibliothek verwiesen, die aus den drei unten dargestellten Komponenten besteht.
Statische Bibliothek
Die statische Bibliothekskomponente der OEM-Token-Bibliothek erleichtert den Zugriff auf Token-Werte wie folgt.
- Stellt APIs für den Zugriff auf OEM-Werte für Token bereit.
- Ermöglicht das Opt-In-Überschreiben von Token-Referenzen im Design mit OEM-Werten.
Gemeinsame Bibliothek
Die gemeinsam genutzte Bibliothekskomponente ist für die Definition von Folgendem verantwortlich:
- Bibliotheksname.
- Boolesches Opt-in zur Aktivierung für OEM-Tokenwerte.
- Stil, der OEM-Tokenwerte bereitstellt.
Um den OEM-Eigentum an dieser gemeinsam genutzten Bibliothekskomponente, einschließlich eines OEM-definierten Paketnamens, zu berücksichtigen, können OEMs eine Überschreibung der gemeinsam genutzten Bibliotheksimplementierung erstellen.

Gemeinsam genutzte OEM-Bibliothek
OEM-Überschreibungen der gemeinsam genutzten Bibliothekskomponente ermöglichen das OEM-Eigentum an der Bibliothek und wahren gleichzeitig die Kompatibilität mit anderen Komponenten in der OEM-Token-Bibliothek, indem sie eine Möglichkeit bieten, den Paketnamen und die Signatur durch OEMs festzulegen, während die Implementierung der gemeinsam genutzten Bibliothek ansonsten unverändert bleibt.
Überschreibungen für eine gemeinsam genutzte Bibliothek können wie folgt definiert werden:
override_android_app { name: "[OEM]-token-shared-lib", base: "token-shared-lib", package_name: "com.[OEM].sharedlib", rename_resources_package: false, certificate: … }
Informationen zum Festlegen von Tokenwerten finden Sie unter Angeben von OEM-Tokenwerten .
Anpassungen der gemeinsam genutzten OEM-Bibliothek
Um unterschiedliche Schemata für Token-Werte zu unterstützen (z. B. Modell- oder Antriebsmodusdifferenzierung), können OEMs dynamische Werte für Token bereitstellen, indem sie mit Runtime Resource Overlays (RROs) auf die gemeinsam genutzte OEM-Bibliothek abzielen. Weitere Informationen finden Sie unter Ändern des Werts der Ressourcen einer App zur Laufzeit .
Informationen zum Festlegen von Tokenwerten finden Sie unter Angeben von OEM-Tokenwerten .
Geben Sie OEM-Token-Werte an
Um Tokenwerte anzugeben, legen Sie das entsprechende Attribut im Stil OemStyle
auf den erforderlichen Wert fest.
<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>
Opt-in für OEM-Werte
Damit Apps auf vom OEM bereitgestellte Token-Werte zugreifen können, müssen OEMs zunächst das Überschreiben von Standard-Token-Werten aktivieren, indem sie den booleschen Wert enable_oem_tokens
“ auf „ true
konfigurieren.
RRO-Token-Werte
Ähnlich wie Tokenwerte in OemStyle
festgelegt werden, können RROs verwendet werden, um den Stil zu ändern, um alternative Tokenwerte bereitzustellen.
<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>
RROs sollten die Attribute der gemeinsam genutzten Bibliothek für den Stil festlegen, indem sie den Namen der gemeinsam genutzten Bibliothek angeben.
Last zuletzt konfigurieren
Systeme, die eine OEM-Implementierung einer gemeinsam genutzten Token-Bibliothek enthalten, müssen das System so konfigurieren, dass die gemeinsam genutzte Bibliothek nach den App-Klassen geladen wird. Fügen Sie dazu den Bibliotheksnamen ( com.android.oem.tokens
) in die Konfiguration config_sharedLibrariesLoadedAfterApp
auf dem System ein. Wenn Sie Zugriff auf Google Automotive Services (GAS) haben, ist dies eine Voraussetzung.
<!-- 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>
Empfohlene Vorgehensweise
Im Folgenden werden Best Practices für die OEM-Token-Bibliothek beschrieben.
Ermöglichen Sie eine flexible Update-Strategie
Sehen Sie sich die folgenden Strategien an, um sicherzustellen, dass Sie Flexibilität in Bezug auf Aktualisierungen einbauen.
Gemeinsam genutzte OEM-Bibliothek
Da vom System gemeinsam genutzte Bibliotheken auf Systemabbildern vorinstalliert werden müssen, müssen Geräte entweder mit der Bibliothek ausgeliefert werden oder die Bibliothek muss als Teil eines Over-the-Air-Updates (OTA) hinzugefügt werden (weitere Informationen finden Sie unter OTA-Updates ). Allerdings ermöglicht das Einfügen einer Stub-Implementierung einer OEM-Überschreibung einer gemeinsam genutzten OEM-Token-Bibliothek in ein System-Image, dass ein Update auf eine voll funktionsfähige Implementierung zu einem späteren Zeitpunkt auf Geräte übertragen werden kann, ohne dass ein OTA erforderlich ist.
Gemeinsam genutzte Bibliotheks-RROs
Obwohl es nicht erforderlich ist, dass RROs als System-Apps installiert werden, sorgt dies für ein gewisses Update-Verhalten, das möglicherweise gewünscht ist.
- Automatische Updates von Apps, wenn Benutzer nicht angemeldet sind.
- Kann vom Benutzer nicht deinstalliert werden (Benutzer können nur Updates deinstallieren ).