Tokeny projektowe OEM to implementacja systemu Material Design w systemie operacyjnym Android Automotive (AAOS). W odróżnieniu od podejścia opartego na algorytmach lub wyborze użytkownika w przypadku wartości tokenów na urządzeniach mobilnych, producenci urządzeń mobilnych sami określają wartości tokenów projektowych. Tokeny projektowe reprezentują małe, powtarzające się decyzje projektowe, które tworzą styl wizualny systemu projektowego. Zastępują one wartości statyczne nazwami, które są samoobjaśniające. Elementy te są analogiczne do tych zdefiniowanych przez system Material Design.
Biblioteka tokenów OEM
Odwołania do tokenów projektu OEM są dostępne w bibliotece tokenów OEM, która składa się z 3 komponentów przedstawionych na rysunku 1.
Rysunek 1. Komponenty biblioteki tokenów OEM.
Biblioteka statyczna
Komponent biblioteki statycznej w bibliotece tokenów OEM umożliwia dostęp do wartości tokenów w następujący sposób.
- Zapewnia interfejsy API umożliwiające dostęp do wartości OEM dla tokenów.
- Umożliwia zastąpienie odwołań do tokenów w motywie wartościami OEM.
Zasoby wspólne
Komponent biblioteki udostępnionej odpowiada za definiowanie tych elementów:
- Nazwa biblioteki.
- Wartość logiczna umożliwiająca włączenie wartości tokenów OEM.
- Styl, który udostępnia wartości tokenów OEM.
Aby umożliwić OEM-om posiadanie tego komponentu biblioteki współdzielonej, w tym nazwy pakietu zdefiniowanej przez OEM-a, OEM-y mogą utworzyć zastąpienie implementacji biblioteki współdzielonej.
Rysunek 2. zastąpić implementację biblioteki udostępnionej,
Zasoby wspólne OEM
Zastąpienia OEM komponentu biblioteki współdzielonej umożliwiają OEM-om posiadanie biblioteki przy jednoczesnym zachowaniu zgodności z innymi komponentami w bibliotece tokenów OEM. OEM-y mogą ustawiać nazwę pakietu i jego sygnaturę, nie zmieniając implementacji biblioteki współdzielonej.
Zastąpienia dla biblioteki udostępnionej można zdefiniować w ten sposób:
override_android_app { name: "[OEM]-token-shared-lib", base: "token-shared-lib", package_name: "com.[OEM].sharedlib", rename_resources_package: false, certificate: … }
Aby ustawić wartości tokenów, zapoznaj się z artykułem Określanie wartości tokenów OEM.
Dostosowania OEM biblioteki udostępnionej
Aby obsługiwać różne schematy wartości tokenów (np. zróżnicowanie według modelu lub trybu jazdy), producenci OEM mogą podawać dynamiczne wartości tokenów, kierując reklamy na komponenty wspólne OEM za pomocą nakładek zasobów w czasie wykonywania (RRO). Więcej informacji znajdziesz w artykule Zmienianie wartości zasobów aplikacji w czasie wykonywania.
Aby ustawić wartości tokenów, zapoznaj się z artykułem Określanie wartości tokenów OEM.
Określanie wartości tokenów OEM
Aby określić wartości tokenów, ustaw odpowiedni atrybut w stylu OemStyle
na wymaganą wartość.
<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>
Włączanie wartości OEM
Aby aplikacje mogły uzyskiwać dostęp do wartości tokenów udostępnianych przez producenta OEM, producenci OEM muszą najpierw wyrazić zgodę na zastąpienie domyślnych wartości tokenów przez skonfigurowanie wartości logicznej enable_oem_tokens
na true
.
Wartości tokenów RRO
Podobnie jak w przypadku wartości tokenów w sekcji OemStyle
, można używać RRO do modyfikowania stylu w celu podawania alternatywnych wartości tokenów.
<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>
RRO powinny ustawić atrybuty biblioteki udostępnionej w stylu, podając nazwę biblioteki udostępnionej.
Konfigurowanie wczytywania na końcu
Systemy, które zawierają implementację biblioteki udostępnionej tokenów przez OEM, muszą być skonfigurowane tak, aby wczytywać bibliotekę udostępnioną po klasach aplikacji. Aby to zrobić, dodaj nazwę biblioteki (com.android.oem.tokens
) do pliku konfiguracyjnego config_sharedLibrariesLoadedAfterApp
w systemie. Jeśli masz dostęp do usług motoryzacyjnych Google (GAS), jest to wymagane.
<!-- 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>
Sprawdzone metody
Poniżej znajdziesz sprawdzone metody dotyczące biblioteki tokenów OEM.
Włączanie elastycznej strategii aktualizacji
Zapoznaj się z podanymi niżej strategiami, aby zapewnić sobie elastyczność w zakresie aktualizacji.
Zasoby wspólne OEM
Biblioteki udostępniane przez system muszą być wstępnie zainstalowane w obrazach systemowych, dlatego urządzenia muszą być dostarczane z biblioteką lub biblioteka musi zostać dodana w ramach aktualizacji bezprzewodowej (OTA). Więcej informacji znajdziesz w artykule Aktualizacje OTA. Jednak uwzględnienie w systemie w pliku obrazu implementacji zastępczej biblioteki współdzielonej tokenów OEM umożliwia późniejsze przesłanie na urządzenia aktualizacji do pełnej implementacji, bez konieczności korzystania z aktualizacji OTA.
Zasoby wspólne RRO
Chociaż nie ma wymogu, aby RRO były instalowane jako aplikacje systemowe, ich zainstalowanie w ten sposób zapewnia pewne zachowania podczas aktualizacji, które mogą być pożądane.
- automatyczne aktualizowanie aplikacji, gdy użytkownicy nie są zalogowani.
- Użytkownik nie może odinstalować aplikacji (użytkownicy mogą tylko odinstalować aktualizacje).