Ringkasan UI yang dapat diskalakan

Gunakan UI yang Dapat Diskalakan untuk membangun pengalaman pengguna yang canggih, dinamis, dan multi-panel di mobil. UI yang dapat diskalakan:

  • Menyediakan sistem windowing yang fleksibel.

  • Meminimalkan risiko, biaya, dan kompleksitas engineering yang ditimbulkan oleh Compatibility Test Suite (CTS) untuk penerapan antarmuka pengguna.

UI yang dapat diskalakan mendukung berbagai desain Infotainment Dalam Kendaraan (IVI) modern yang memerlukan pengaturan jendela dinamis, sekaligus menurunkan skala untuk mendukung pengalaman tradisional dengan pengaturan jendela statis.

Android 17 memperkenalkan fitur berikut yang khusus untuk tampilan jendela lanjutan:

Contoh pengalaman

UI yang dapat diskalakan memungkinkan berbagai konfigurasi jendela yang tak terbatas. Berikut beberapa contoh skenario yang dibuat untuk melatih UI yang Dapat Diskalakan:

Latar belakang peta dengan aplikasi mengambang

Konfigurasi latar belakang peta dengan aplikasi lain yang mengambang di atasnya.

Latar belakang aplikasi

Konfigurasi latar belakang aplikasi dengan panel mengambang.

Aplikasi yang disematkan di bawah aplikasi lain

Aplikasi yang disematkan, seperti penampung widget, dengan aplikasi lain yang diluncurkan di atasnya.

Panel mengambang bersyarat

Panel mengambang bersyarat yang muncul hanya saat kondisi tertentu terpenuhi, seperti saat media diputar atau saat pemberitahuan dipicu.

Aplikasi yang disematkan dekat dengan pengemudi

Aplikasi yang disematkan diposisikan lebih dekat dengan pengemudi.

Tata letak layar terpisah

Tata letak layar terpisah yang menampilkan dua aplikasi secara berdampingan.

Layar terpisah interaktif

Tata letak layar terpisah interaktif yang memungkinkan pengubahan ukuran dinamis.

Tata letak multi-anchor untuk perangkat layar besar

Tata letak multi-anchor yang dirancang untuk perangkat layar besar.

Tata letak layar utama yang menampilkan carousel aplikasi.

Manfaat dan kepatuhan

Manfaat UI yang dapat diskalakan meliputi:

  • Risiko pengujian yang lebih rendah: Framework telah disertifikasi sebelumnya dan mematuhi CTS, yang menghilangkan risiko utama kegagalan pengujian di akhir siklus program. UI yang dapat diskalakan dapat menghemat upaya engineering selama berbulan-bulan dan mempercepat kepatuhan.

  • Fleksibilitas desain yang lebih besar: Kemampuan yang telah terbukti untuk membuat ulang berbagai model windowing otomotif yang kompleks. UI yang skalabel mendukung desain yang ambisius dan sangat berbeda.

  • Kompleksitas penerapan yang lebih rendah: Abstraksi ke dalam model XML tingkat tinggi yang didorong konfigurasi menurunkan hambatan untuk masuk ke logika penyesuaian jendela.

  • Performa yang lebih baik: UI yang skalabel berjalan di platform jendela berperforma tinggi, yang terintegrasi sepenuhnya dengan Android standar. Transisi berjalan lancar, sehingga memungkinkan pengoptimalan langsung.

Blok pembangun inti

UI yang dapat diskalakan meminimalkan kebutuhan akan kode khusus OEM, mempermudah kemampuan update, dan mengurangi risiko peluncuran dengan menghilangkan potensi masalah dan mengurangi masalah sertifikasi.

Pendekatan berbasis XML mengatasi tantangan umum saat mengelola sistem tampilan yang kompleks di AAOS, seperti penentuan posisi yang presisi, konflik urutan Z, dan fokus aplikasi.

UI yang dapat diskalakan menyediakan elemen penyusun inti ini.

Panel

Panel adalah penampung persegi panjang dasar di layar. Setiap panel dipetakan ke tugas root khusus untuk pengelolaan independen. Panel dapat menghosting tugas aplikasi (TaskPanel) atau konten berbasis tampilan, seperti widget (DecorPanel). Untuk mempelajari lebih lanjut, lihat Mengonfigurasi panel.

Varian

Varian menentukan status visual tertentu untuk panel dan menyertakan properti seperti bounds (posisi dan ukuran), visibility, layer (Z-order), dan radius corner. Satu panel dapat memiliki varian, seperti opened, closed, atau minimized. Untuk mempelajari lebih lanjut, lihat Menggunakan varian untuk mendesain status visual.

Transisi

Transisi menentukan cara panel berpindah dari status saat ini fromVariant ke status baru, toVariant. Event memicu transisi, yang menentukan animasi yang digunakan panel selama perubahan status. Panel harus berpindah dari statusnya saat ini ke toVariant. Untuk sinkronisasi, Window Manager inti menganimasikan dan mengoordinasikan semua transisi.

  • Peristiwa: Pemicu untuk memulai perubahan UI. OEM atau sistem dapat telah menentukan pemicu. Misalnya, _System_OnHomeEvent, _System_TaskOpenEvent, atau penekanan tombol navigasi kustom.

Misalnya, UI yang Dapat Diskalakan menggunakan peristiwa untuk memicu transisi. Transisi ini menganimasikan panel dari satu varian ke varian lainnya untuk menampilkan perubahan dinamis di UI. UI yang dapat diskalakan mengomunikasikan perubahan ini ke aplikasi sistem lainnya untuk menyesuaikan konten sesuai kebutuhan. Dengan menentukan hubungan UI dalam XML, Anda dapat:

  • Menentukan perilaku UI yang kompleks: Menentukan interaksi antarmuka pengguna yang rumit.

  • Mengatur sistem jendela: Mengontrol posisi dan lapisan jendela.

  • Terapkan tema visual: Terapkan branding dan estetika yang konsisten.

  • Mengurangi kompleksitas kode: Meminimalkan kebutuhan untuk mengembangkan kode kustom yang ekstensif.

Untuk mempelajari lebih lanjut, lihat Mengonfigurasi transisi.

Tombol UI sistem

Selain memicu intent, CarSystemBarButtons dapat memicu peristiwa UI yang Dapat Diskalakan saat diketuk menggunakan atribut event, selectedEvent, dan unselectedEvent.

event menjelaskan peristiwa yang akan dipicu saat tombol diketuk. Jika kontrol yang lebih terperinci atas suatu peristiwa diperlukan, gunakan atribut selectedEvent dan unselectedEvent untuk menentukan peristiwa yang akan dipicu saat tombol dipilih atau tidak dipilih.

Kapan harus menerapkan UI Sistem

Bagian ini menjelaskan penggunaan optimal UI yang Dapat Diskalakan.

Membuat tata letak multi-panel persisten

Buat pengalaman multi-zona di mana area layar yang berbeda-beda didedikasikan secara permanen untuk fungsi tertentu. Misalnya, kontrol media khusus, panel iklim, atau peta layar penuh.

Gunakan TaskPanels untuk aplikasi utama (seperti navigasi) dan DecorPanels untuk elemen UI, dalam bentuk tampilan, yang harus ditempatkan di antara TaskPanels.

Menerapkan suasana rumah dinamis

Terapkan adegan Beranda yang terdiri dari beberapa panel aplikasi yang terlihat secara bersamaan dan interaktif. Misalnya, peta, pemutar media, dan petak aplikasi.

Untuk mentransisikan semua panel yang relevan ke varian rumah opened atau default, konfigurasi _System_HomeEvent.

Menerapkan overlay kontekstual

Tempatkan elemen UI non-aplikasi, seperti widget kontekstual, branding kustom, dan panel tarik yang dapat dianimasikan secara terkoordinasi dengan tugas aplikasi.

Gunakan DecorPanels untuk semua elemen yang murni dekoratif atau menghosting widget. Jika widget menghosting aplikasi yang berfungsi penuh dan dapat diluncurkan, Panel > TaskPanel adalah yang paling optimal. Gunakan DecorPanels untuk elemen UI berbasis tampilan saat pelapisan harus disinkronkan dengan pelapisan TaskPanel.

Mendesain interaksi panel yang kompleks

Merancang tindakan lanjutan yang didorong pengguna, seperti mengubah ukuran panel aplikasi secara dinamis atau menyesuaikan tampilan panel instrumen berdasarkan konten layar utama.

Tentukan Events kustom untuk memicu Transitions tertentu yang tidak standar sistem.

Memperluas tata letak IVI ke Kokpit Digital Terpadu

UI yang dapat diskalakan mengelola tampilan multi-panel (TaskPanel dan DecorPanel) di layar infotainment utama (display0) di VM SDV IVI. Anda dapat memasangkan UI yang Dapat Diskalakan dengan Keselamatan Layar untuk memperbarui tampilan panel instrumen saat tata letak layar utama berubah:

  • Tindakan UI yang dapat diskalakan (VM SDV IVI): Saat status panel berubah di tampilan utama, UI yang Dapat Diskalakan dapat mengirim intent menggunakan <Action> di xml/scalable_ui_actions.xml untuk memberi tahu komponen cluster tentang perubahan tata letak atau mode. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi tindakan.
  • DriverUI (VM SDV IVI): Berjalan di layar cluster (display1) sebagai aplikasi sistem yang diluncurkan oleh ClusterHomeManager dan dibuat dengan automotive-design-compose. DriverUI merender konten cluster non-keselamatan (seperti peta, media, dan panggilan telepon) dan menangani update status dari sistem IVI.
  • Gateway SDV di IVI (VM SDV IVI): DriverUI menggunakan SDV Gateway Client untuk terhubung ke Renderer ketersediaan tinggi (HAR) melalui gRPC (driverui.proto). DriverUI mengirimkan update status cluster (seperti varian tata letak, token tema, dan perubahan lokalitas) bersama dengan pesan detak jantung berkala.
  • HAR dan Safety Monitor (VM SDV Media): Berjalan di VM SDV Media terpisah untuk merender elemen penting keselamatan (seperti kecepatan, gigi, indikator, bel, dan feed kamera belakang). Saat menerima sinyal detak jantung dari DriverUI, HAR menjaga transparansi region cluster Android sehingga konten DriverUI berpadu dengan overlay keselamatan HAR. Jika SDV IVI sedang booting atau tidak tersedia, HAR akan menampilkan placeholder penggantian.
  • Konfigurasi OEM: Untuk menyiapkan alur ini, konfigurasi pemicu <Event> dan intent <Action> di xml/scalable_ui_actions.xml pada SDV IVI, perbarui file desain Figma dan pemetaan sinyal Config.json untuk toolchain desain Safety, serta terapkan HAR Platform Abstraction Layer (PAL) untuk hardware target Anda.