Token desain OEM

Token desain OEM adalah implementasi Android Automotive OS (AAOS) dari Desain Material sistem file. Tidak seperti pendekatan pemilihan pengguna atau algoritma untuk nilai token di perangkat seluler, OEM menetapkan nilai token desain. Token desain mewakili keputusan desain kecil dan berulang yang membentuk gaya visual sistem desain dan mengganti nilai-nilai statis dengan nama yang mudah dipahami. Token adalah analog dengan yang ditentukan oleh sistem Desain Material.

Library token OEM

Token desain OEM dirujuk melalui library token OEM, yang terdiri dari tiga komponen yang diilustrasikan pada Gambar 1.

Gambar 1. Komponen library token OEM.

Library statis

Komponen library statis pada library token OEM memfasilitasi akses ke nilai token mengikuti.

  • Menyediakan API untuk mengakses nilai OEM untuk token.
  • Mengaktifkan penggantian referensi token dalam tema dengan nilai OEM.

Pustaka bersama

Komponen library bersama bertanggung jawab untuk menentukan hal-hal berikut:

  • Nama library.
  • Keikutsertaan Boolean untuk pengaktifan nilai token OEM.
  • Gaya yang memberikan nilai token OEM.

Untuk mengakomodasi kepemilikan OEM komponen library bersama ini, termasuk paket yang ditentukan OEM OEM dapat membuat penggantian implementasi library bersama.

Gambar 2. Mengganti penerapan library bersama.

Library bersama OEM

Penggantian OEM komponen library bersama memungkinkan kepemilikan OEM library sekaligus mempertahankan kompatibilitas dengan komponen lain dalam library token OEM dengan menyediakan nama paket dan tanda tangan yang akan ditetapkan oleh OEM sambil membiarkan implementasi paket jika tidak diubah.

Penggantian untuk pustaka 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

Guna mendukung beragam skema untuk nilai token (misalnya, diferensiasi model atau mode drive), OEM dapat memberikan nilai dinamis untuk token dengan menargetkan library bersama OEM dengan Runtime Overlay Resource (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 dibutuhkan.

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

Memilih ikut serta dalam nilai OEM

Agar aplikasi dapat mengakses nilai token yang disediakan OEM, OEM harus terlebih dahulu memilih untuk mengabaikan penggantian default nilai token dengan mengonfigurasi boolean enable_oem_tokens menjadi true.

Nilai token RRO

Serupa dengan cara nilai token ditetapkan di OemStyle, RRO dapat digunakan untuk mengubah untuk 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 menyetel atribut pustaka bersama pada gaya dengan menentukan pustaka bersama nama.

Konfigurasi pemuatan terakhir

Sistem yang menyertakan implementasi OEM pada library bersama token harus mengonfigurasi sistem untuk memuat library bersama setelah class aplikasi. Untuk melakukannya, sertakan nama library (com.android.oem.tokens) di config_sharedLibrariesLoadedAfterApp konfigurasi pada 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 fleksibel

Lihat strategi di bawah ini untuk memastikan Anda membangun aplikasi secara fleksibel sehubungan dengan update.

Library bersama OEM

Karena library bersama sistem harus diinstal lebih dulu pada image sistem, perangkat harus mengirim dengan library atau library harus ditambahkan sebagai bagian dari update Over-the-Air (OTA) (untuk mempelajari selengkapnya, lihat Update OTA). Namun, termasuk implementasi stub penggantian OEM dari library bersama token OEM di image sistem memungkinkan update ke implementasi yang berfungsi penuh untuk didorong ke perangkat pada tanggal yang akan datang tanpa memerlukan OTA.

RRO pustaka bersama

Meskipun tidak ada persyaratan bagi RRO untuk diinstal sebagai aplikasi sistem, melakukan hal ini akan menyediakan beberapa perilaku pembaruan yang mungkin diinginkan.

  • Update aplikasi secara otomatis saat pengguna tidak login.
  • Tidak dapat di-uninstal oleh pengguna (pengguna hanya dapat meng-uninstal update).