UI cluster biasanya ditempatkan di belakang kemudi pada layar terpisah. OEM secara bertahap menggabungkan cluster dan IVI ke dalam satu tampilan. UI gabungan ini adalah DriverUI.
Gambar 1. DriverUI.
DriverUI adalah aplikasi sistem Android yang merender seluruh tampilan panel instrumen, tidak termasuk elemen peraturan atau yang relevan dengan keselamatan yang dirender oleh perender ketersediaan tinggi (HAR). DriverUI menampilkan informasi terkait pemutaran media, panggilan telepon, peta, navigasi, dan lainnya, serta menerapkan Desain Otomotif untuk Compose.
DriverUI sebagai aktivitas cluster default
DriverUI berjalan sebagai aplikasi cluster yang memiliki hak istimewa di Android dan AAOS akan memulainya secara otomatis.
AAOS menggunakan class ClusterHomeManager, yang juga disebut sebagai
Cluster2, untuk membuat cluster instrumen. Class ini menentukan
konfigurasi yang diperlukan untuk mengidentifikasi penerapan panel instrumen dan cara
AAOS berinteraksi dengannya. Google menyediakan implementasi referensi Cluster2 API.
Platform
Anda dapat membuat dan menjalankan Display Safety di SDV. Platform kendaraan software-defined (SDV):
- Memerlukan dua VM tamu.
- Menjalankan HAR di Media SDV (juga dikenal sebagai VM booting cepat) di VM tamu.
- Menjalankan DriverUI di VM IVI SDV tamu lain.
- Menjalankan Pemantau Keamanan di VM Media SDV.

Gambar 2. Arsitektur platform SDV.
Menggabungkan output HAR dan DriverUI
HAR dan DriverUI menggunakan tampilan terpisah untuk merender UI-nya. Kedua output digabungkan dan muncul sebagai satu gambar ke DriverUI.
Untuk mencapai hal ini, HAR mengontrol transparansi area tempat output Android muncul berdasarkan pesan detak jantung dari DriverUI. Jika DriverUI tidak tersedia, HAR akan mendeteksi kurangnya detak jantung dan membuat area DriverUI menjadi buram serta menampilkan placeholder. Saat detak jantung diterima, placeholder akan dihapus dan area DriverUI akan disetel menjadi transparan.

Gambar 3. Komposisi HAR dan DriverUI.
DriverUI dan komunikasi HAR
DriverUI dan HAR berkomunikasi satu sama lain menggunakan remote procedure call (RPC). Pesan detak jantung adalah contoh data yang dikirim melalui saluran RPC dan terdiri dari stempel waktu sebagai salah satu kolomnya.
gRPC digunakan untuk RPC. Di SDV, komunikasi SDV menyediakan Klien Gateway SDV untuk menemukan dan membuat channel dari DriverUI ke HAR. Layanan gRPC menentukan file protocol buffer:
// Heartbeat.
rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse) {}
// Document switched in the DriverUI.
rpc DocumentSwitched(DocumentSwitchedRequest) returns (DocumentSwitchedResponse) {}
// Document updated in the DriverUI. Unary RPC.
rpc DocumentUpdated(DocumentUpdatedRequest) returns (DocumentUpdatedResponse) {}
// Document updated in the DriverUI. Requests are streamed with each request
// containing a part of the document and the entire document is assembled from these
// chunks by the server.
rpc DocumentUpdatedStreaming(stream DocumentUpdatedRequest) returns (DocumentUpdatedResponse) {}
/// Request for HAR to change design tokens.
rpc DesignTokenUpdate(DesignTokenUpdateRequest) returns (DesignTokenUpdateResponse) {}
// Request to change the current locale used in HAR.
rpc LocaleUpdate(LocaleUpdateRequest) returns (LocaleUpdateResponse) {}
// Requests to swap a certain variant at a Figma node.
rpc ChangeVariant(ChangeVariantRequest) returns (ChangeVariantResponse) {}
// Requests to change the container (display/root node) configuration (dpi, size) in HAR.
rpc ChangeContainerConfiguration(ChangeContainerConfigurationRequest) returns (ChangeContainerConfigurationResponse) {}
Detail permintaan dan respons ada di sumber Keamanan Tampilan di
packages/apps/Car/DriverUI/proto/driverui.proto di repositori kode sumber ub-automotive.
Di platform SDV, komunikasi SDV menyediakan SDV Gateway Client untuk menemukan dan membuat saluran gRPC dari DriverUI ke HAR.
Menjalankan perintah ini menggunakan terminal IVI akan mengirimkan komunikasi ke SDV Media, yang memicu pembaruan tema di seluruh cluster.
adb shell cmd car_service inject-key -d 1 9 # Purple Theme
adb shell cmd car_service inject-key -d 1 8 # Blue Theme

Gambar 4. Komunikasi RPC untuk mengubah tema DriverUI dan HAR.
Menampilkan informasi Media, Maps, dan Teleponi di cluster
Melalui komunikasi dengan IVI, DriverUI dapat menampilkan informasi untuk Media, Maps, dan Telepon dalam cluster referensi. Meskipun Media berfungsi sebagai status default dalam implementasi referensi, tampilan diperbarui berdasarkan layanan aktif sesuai dengan prioritas berikut:
- Maps
- Telepon
- Media
Sistem secara otomatis memprioritaskan untuk menampilkan navigasi Maps atau layanan Teleponi aktif daripada status Media default.
Berbagai status tampilan DriverUI diilustrasikan dalam gambar berikut:

Gambar 5. DriverUI menampilkan bagian Media dan Telephony dalam cluster penuh.
Integrasi Desain Otomotif untuk Compose
DriverUI menerapkan Desain Otomotif untuk Compose guna memungkinkan desain (Figma) ditampilkan dan diulang secara langsung dalam aplikasi Android. Integrasi ini menjembatani kesenjangan antara desain dan pengembangan dengan memungkinkan rendering dokumen desain di lingkungan runtime.
Mengakses aset desain
Dokumen Figma contoh untuk DriverUI adalah bagian dari codebase. Untuk mengakses dan mengubah desain ini:
- Luncurkan DriverUI dengan file desain DCF Desain Otomotif untuk Compose lokal
dari
packages/apps/Car/DriverUI/src/main/assets/figma/*.dcf. - Cari file aset
packages/apps/Car/DriverUI/src/main/assets/DriverUI.fig. - Impor file ini ke Figma untuk melihat desain sumber atau membuat perubahan.
Versi Desain Otomotif untuk Compose
- Gradle menggunakan versi Desain Otomotif untuk Compose yang ditentukan untuk
designcomposedipackages/apps/Car/libs/aaos-apps-gradle-project/gradle/libs.versions.toml. - Rilis Desain Otomotif untuk Compose tersedia di halaman rilis.
Konfigurasi update langsung
Desain Otomotif untuk Compose mendukung update langsung dalam mode pengembangan, sehingga perubahan yang dilakukan di Figma dapat langsung dirender di DriverUI. Hal ini memfasilitasi siklus pengujian cepat dan iterasi desain yang lebih cepat.
Jalankan perintah berikut untuk menyetel token Figma untuk DriverUI:
adb shell am startservice \
-n "com.android.car.driverui/com.android.designcompose.ApiKeyService" \
-a setApiKey \
-e ApiKey $FIGMA_ACCESS_TOKEN \
--user 0
Sinkronisasi dokumen desain VM ganda
Dalam penyiapan VM ganda, update desain harus diterapkan di seluruh batas untuk menjaga konsistensi.
- DriverUI mengambil dokumen desain Figma terbaru dan mengirimkannya ke HAR menggunakan saluran komunikasi gRPC yang dijelaskan di halaman ini.
- Hasilnya, cluster penuh akan diupdate dengan iterasi desain Figma terbaru, sehingga kedua VM tetap sinkron dengan sumber desain.

Gambar 6. Update langsung dokumen desain dari Figma ke DriverUI dan HAR.
Mengamankan saluran gRPC
gRPC memiliki integrasi SSL dan TLS serta mendorong penggunaan SSL dan TLS untuk mengautentikasi server dan mengenkripsi semua data yang dipertukarkan antara klien dan server. Mekanisme opsional tersedia bagi klien untuk memberikan sertifikat untuk otentikasi bersama. Untuk mengetahui informasi selengkapnya tentang autentikasi gRPC, lihat Autentikasi.