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 teknik 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.
Android 17 memperkenalkan fitur berikut yang khusus untuk tampilan jendela lanjutan:
- Menerapkan panel notifikasi pop-up
- Menyesuaikan kolom sistem
- Memaksimalkan kepatuhan pengujian dengan invarian WindowManager
- Mengintegrasikan Wizard Penyiapan
Contoh pengalaman
UI yang dapat diskalakan memungkinkan berbagai konfigurasi windowing 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 didesain untuk perangkat layar besar.
Carousel aplikasi layar utama
Tata letak layar utama yang menampilkan carousel aplikasi.
Manfaat dan kepatuhan
Manfaat UI yang dapat diskalakan meliputi:
Risiko pengujian yang lebih rendah: Framework ini telah disertifikasi sebelumnya dan mematuhi CTS, yang menghilangkan risiko utama kegagalan pengujian di akhir siklus program. UI yang skalabel dapat menghemat upaya engineering selama berbulan-bulan dan mempercepat kepatuhan.
Fleksibilitas desain yang lebih besar: Kemampuan yang 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 oleh konfigurasi menurunkan hambatan untuk masuk ke logika penyesuaian jendela.
Performa yang lebih baik: UI yang dapat diskalakan berjalan di platform jendela berperforma tinggi, yang terintegrasi sepenuhnya dengan Android standar. Alur 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 penampilan jendela yang kompleks di Android Automotive OS (AAOS), seperti penentuan posisi yang presisi, konflik Z-order, 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 mencakup properti seperti bounds (posisi dan ukuran), visibility, layer (urutan Z), 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, Pengelola
Jendela inti menganimasikan dan mengoordinasikan semua transisi.
- Peristiwa: Pemicu untuk memulai perubahan UI. OEM atau sistem dapat
menentukan pemicu terlebih dahulu. 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 lain untuk menampilkan perubahan dinamis di UI. UI yang dapat di-scaling mengomunikasikan perubahan ini ke aplikasi sistem lain untuk menyesuaikan konten sesuai kebutuhan. Dengan menentukan hubungan UI di XML, Anda dapat:
Menentukan perilaku UI yang kompleks: Menentukan interaksi antarmuka pengguna yang rumit.
Mengatur sistem jendela: Mengontrol pemosisian dan pelapisan jendela.
Terapkan tema visual: Terapkan branding dan estetika yang konsisten.
Mengurangi kompleksitas kode: Meminimalkan kebutuhan untuk pengembangan 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
- Menerapkan adegan beranda dinamis
- Menerapkan overlay kontekstual
- Mendesain interaksi panel yang kompleks
Membuat tata letak multi-panel persisten
Buat pengalaman multi-zona di mana berbagai area layar 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 dan interaktif secara bersamaan. Misalnya, peta, pemutar media, dan petak aplikasi.
Untuk mentransisikan semua panel yang relevan ke varian beranda 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 hanya bersifat 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.