Token desain OEM adalah penerapan Android Automotive OS (AAOS) dari sistem Desain Material. Tidak seperti pendekatan pemilihan algoritma atau pengguna untuk nilai token di perangkat seluler, OEM menetapkan nilai token desain. Token desain mewakili keputusan desain kecil yang berulang dan membentuk gaya visual sistem desain serta mengganti nilai statis dengan nama yang cukup jelas. Token analog dengan token yang ditentukan oleh sistem Desain Material.
Library token OEM
Token desain OEM direferensikan melalui library token OEM, yang terdiri dari tiga komponen yang diilustrasikan dalam Gambar 1.
Gambar 1. Komponen library token OEM.
Library statis
Komponen library statis dari library token OEM memfasilitasi akses ke nilai token sebagai berikut.
- Memberikan API untuk mengakses nilai OEM untuk token.
- Mengaktifkan penggantian keikutsertaan referensi token dalam tema dengan nilai OEM.
Pustaka bersama
Komponen library bersama bertanggung jawab untuk menentukan hal berikut:
- Nama library.
- Keikutsertaan boolean untuk mengaktifkan nilai token OEM.
- Gaya yang memberikan nilai token OEM.
Untuk mengakomodasi kepemilikan OEM atas komponen library bersama ini, termasuk nama paket yang ditentukan OEM, OEM dapat membuat penggantian implementasi library bersama.
Gambar 2. Ganti penerapan library bersama.
Library bersama OEM
Penggantian OEM pada komponen library bersama memungkinkan kepemilikan OEM atas library sekaligus mempertahankan kompatibilitas dengan komponen lain di library token OEM dengan menyediakan cara agar nama paket dan tanda tangan ditetapkan oleh OEM, sementara implementasi library bersama tidak diubah.
Penggantian untuk library bersama dapat ditentukan seperti yang ditunjukkan di bawah ini:
override_android_app { name: "[OEM]-token-shared-lib", base: "token-shared-lib", package_name: "com.[OEM].sharedlib", rename_resources_package: false, certificate: … }
Untuk menetapkan nilai token, lihat Menentukan nilai token OEM.
Penyesuaian library bersama OEM
Untuk mendukung berbagai skema untuk nilai token (misalnya, diferensiasi model atau mode berkendara), OEM dapat memberikan nilai dinamis untuk token dengan menargetkan library bersama OEM dengan Runtime Resource Overlay (RRO). Untuk mempelajari lebih lanjut, lihat Mengubah nilai resource aplikasi saat runtime.
Untuk menetapkan nilai token, lihat Menentukan nilai token OEM.
Menentukan nilai token OEM
Untuk menentukan nilai token, tetapkan atribut yang sesuai dalam gaya OemStyle
ke
nilai yang diperlukan.
<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>
Mengaktifkan nilai OEM
Agar aplikasi dapat mengakses nilai token yang disediakan OEM, OEM harus memilih ikut serta terlebih dahulu untuk mengganti nilai token default dengan mengonfigurasi boolean enable_oem_tokens
menjadi true
.
Nilai token RRO
Serupa dengan cara nilai token ditetapkan di OemStyle
, RRO dapat digunakan untuk mengubah
gaya guna memberikan nilai token alternatif.
<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 harus menetapkan atribut library bersama pada gaya dengan menentukan nama library bersama.
Mengonfigurasi muat terakhir
Sistem yang menyertakan implementasi OEM dari library bersama token harus mengonfigurasi sistem
untuk memuat library bersama setelah class aplikasi. Untuk melakukannya, sertakan nama library
(com.android.oem.tokens
) dalam konfigurasi
config_sharedLibrariesLoadedAfterApp
di sistem. Jika Anda memiliki akses ke Layanan Otomotif Google (GAS), hal ini diberlakukan sebagai
persyaratan.
<!-- 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>
Praktik terbaik
Praktik terbaik untuk library token OEM dijelaskan di bawah.
Mengaktifkan strategi update yang fleksibel
Lihat strategi di bawah untuk memastikan Anda membangun fleksibilitas sehubungan dengan update.
Library bersama OEM
Karena library bersama sistem harus diprainstal di image sistem, perangkat harus dikirimkan dengan library atau library harus ditambahkan sebagai bagian dari update Over-the-Air (OTA) (untuk mempelajari lebih lanjut, lihat Update OTA). Namun, menyertakan implementasi stub penggantian OEM dari library bersama token OEM pada image sistem memungkinkan update ke implementasi yang berfungsi penuh untuk didorong ke perangkat pada kemudian hari tanpa memerlukan OTA.
RRO library bersama
Meskipun tidak ada persyaratan agar RRO diinstal sebagai aplikasi sistem, tindakan ini memberikan beberapa perilaku update yang mungkin diinginkan.
- Update otomatis aplikasi saat pengguna tidak login.
- Tidak dapat di-uninstal oleh pengguna (pengguna hanya dapat meng-uninstal update).