Android Automotive menyediakan UI Sistem baru yang dikembangkan khusus untuk kendaraan. Sebagian besar komponen UI Sistem terikat erat dengan layanan framework. UI Sistem mengacu pada elemen apa pun yang ditampilkan di layar yang bukan bagian dari aplikasi. UI Sistem Otomotif (dalam paket elemen CarSystemUI) adalah ekstensi dari UI Sistem Android (dalam paket UI Sistem), yang telah disesuaikan secara khusus untuk kendaraan.
Apa yang dimaksud dengan UI Sistem?
Komponen khusus untuk UI Sistem Otomotif mencakup:
Komponen | Deskripsi |
---|---|
UI layar kunci | Layar tempat pengguna diautentikasi ke akun pengguna tertentu. |
Menu navigasi | Panel sistem yang dapat diposisikan di kiri, bawah, atau kanan layar dan dapat menyertakan tombol aspek untuk navigasi ke berbagai aplikasi, mengalihkan panel notifikasi, dan memberikan kontrol kendaraan (seperti HVAC). Hal ini berbeda dengan implementasi UI Sistem Android, yang menyediakan tombol Kembali, Beranda, dan kelompok aplikasi. |
Status bar | Kolom sistem yang diposisikan di sepanjang layar dan berfungsi sebagai menu navigasi. Status bar
juga menyediakan fungsi untuk mendukung:
|
UI Sistem | Mengacu pada elemen apa pun yang ditampilkan di layar yang bukan bagian dari aplikasi. |
UI Pengalih Pengguna | Layar tempat pengguna dapat memilih pengguna lain. |
UI Volume | Dialog yang ditampilkan saat pengemudi menggunakan tombol volume fisik untuk mengubah volume di perangkat. |
Bagaimana cara kerja UI Sistem?
UI Sistem adalah aplikasi Android yang berjalan saat perangkat dinyalakan. Aplikasi dimulai melalui refleksi oleh SystemServer. Titik entri yang paling relevan untuk aspek UI Sistem yang terlihat pengguna tercantum di bawah. Gunakan komponen ini untuk menyesuaikan UI Sistem Android untuk kemampuan khusus Otomotif.
config_statusBarComponent
config_systemUIFactoryComponent
CarSystemUI adalah ekstensi dari paket UI Sistem, yang berarti class dan resource dalam paket UI Sistem dapat digunakan dan diganti oleh paket CarSystemUI.
Menyesuaikan UI Sistem
Overlay
Meskipun Anda dapat mengubah kode sumber Android untuk menyesuaikan UI Sistem, tindakan tersebut akan mempersulit dan memperumit penerapan update Android mendatang. Sebagai gantinya, Android mendukung penggunaan direktori overlay, yang memungkinkan Anda mengganti file resource tanpa mengubah kode sumber. Dalam sistem build Android, sistem overlay mengganti file dengan cara yang terkontrol. Semua file yang diubah diidentifikasi dengan jelas tanpa menelusuri seluruh hierarki kode sumber AOSP.
File overlay harus ditempatkan di direktori PRODUCT_PACKAGE_OVERLAYS
dan harus memiliki
subfolder yang sama persis dengan struktur root AOSP asli. Untuk Android
10 atau yang lebih tinggi, PRODUCT_PACKAGE_OVERLAYS
disetel ke:
PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay
UI Sistem Otomotif menggunakan resource dari UI Sistem dan paket CarSystemUI, yang berarti resource dari setiap lokasi dapat diganti dengan overlay untuk memengaruhi tampilan dan nuansa UI Sistem Otomotif.
Untuk mengganti file, replikasi struktur direktori file yang diganti di
direktori /overlay
yang Anda tentukan, lalu sertakan penggantian di direktori
tersebut. Misalnya, untuk mengganti:
frameworks/base/packages/CarSystemUI/res/layout/super_status_bar.xml
Tambahkan file super_status_bar.xml
pengganti yang terletak di:
packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/
Untuk mengganti frameworks/base/packages/SystemUI/res/values/config.xml
,
(di UI Sistem, bukan CarSystemUI), tambahkan file config.xml
pengganti ke:
packages/services/Car/car_product/overlay/frameworks/base/packages/SystemUI/res/layout/
atau
packages/services/Car/car_product/overlay/frameworks/base/packages/CarSystemUI/res/layout/
Deskripsi dua titik entri penyesuaian utama diberikan di bawah.
Menu navigasi
UI Sistem Otomotif dapat memiliki tiga menu navigasi di sebelah kiri, bawah, dan kanan layar. Visibilitas setiap panel sistem diaktifkan dengan konfigurasi berikut:
config_enableLeftSystemBar
config_enableBottomSystemBar
config_enableRightSystemBar
Setiap panel memiliki status yang disediakan dan tidak disediakan, yang dapat disesuaikan dengan menempatkan file tata letak masing-masing:
car_left_system_bar.xml
car_left_system_bar_unprovisioned.xml
car_system_bar.xml
(tata letak untuk menu navigasi bawah)car_system_bar_unprovisioned.xml
car_right_system_bar.xml
car_right_system_bar_unprovisioned.xml
Tata letak ini harus berisi
com.android.systemui.car.systembar.CarSystemBarView
di tingkat teratas, yang dapat
menyertakan tampilan lain yang diperlukan. Tombol di dalam menu navigasi dapat disertakan menggunakan
com.android.systemui.car.systembar.CarSystemBarButton
.
Tampilan ini di-inflate di CarSystemBar#createSystemBar
,
jika perangkat disediakan dengan benar untuk pengguna tertentu.
Status bar
Pertimbangkan status bar sebagai menu navigasi dengan fungsi tambahan. Tidak seperti menu navigasi, status bar tidak memiliki tanda untuk menonaktifkannya. Anda dapat mengubah status bar dengan:
car_top_navigation_bar.xml
car_top_navigation_bar_unprovisioned.xml
Tata letak ini harus berisi com.android.systemui.statusbar.car.CarNavigationBarView
di tingkat teratas. Status bar berisi ikon status. Untuk mengubah ukuran ikon, skalakan
ikon secara merata dengan faktor skala, bukan menentukan ukuran tertentu. Misalnya, dalam file
overlay /overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml
, tambahkan
dimensi berikut untuk melipatgandakan ukuran ikon:
<resources> <!-- The amount by which to scale up the status bar icons.--> <item name="status_bar_icon_scale_factor" format="float" type="dimen">2</item> </resources>
Status bar berada di lapisan jendela khusus yang juga mencakup
panel notifikasi, pengalih pengguna, notifikasi peringatan (HUN), dan
pelindung kunci. Berbagai tata letak untuk ini disertakan dalam
super_status_bar.xml
.
Perubahan kode sumber UI Sistem
Overlay mungkin tidak memberikan fleksibilitas yang diperlukan untuk menyesuaikan perilaku UI Sistem secara memadai.
Peringatan. Perubahan yang dilakukan pada kode sumber Android sulit diperbarui dalam rilis Android berikutnya. Sebaiknya Anda memperluas kode UI Sistem Otomotif bukan langsung memodifikasi kode. Dengan cara ini, kode sumber UI Sistem Otomotif yang mendasarinya dapat diupgrade dengan konflik penggabungan minimal karena semua penyesuaian diterapkan melalui platform API yang diketahui.
Sebagian besar aspek UI Sistem dapat disesuaikan melalui dua titik entri ini:
config_statusBarComponent
config_systemUIFactoryComponent
Misalnya, jika Anda membuat class bernama
com.android.systemui.statusbar.car.custom.CustomCarStatusBar
, yang
memperluas CarStatusBar
, perbarui config_statusBarComponent
untuk mengarah
ke komponen baru ini. Memperluas class ini memungkinkan penyesuaian sebagian besar elemen yang berkaitan
dengan panel sistem dan logika notifikasi.
Demikian pula, Anda dapat membuat CustomCarSystemUIFactory
dan menempatkannya di
config_systemUIFactoryComponent
. Gunakan class ini untuk mengupdate fungsi
VolumeUI dan layar kunci.
Menyesuaikan peralihan dan pembukaan kunci pengguna
Materi berikut menjelaskan cara menyesuaikan pengalaman pengalihan pengguna.
Istilah | Deskripsi |
---|---|
Keyguard | Dialog layar penuh untuk mencegah interaksi yang tidak disengaja dengan aplikasi latar depan. Melindungi privasi setiap pengguna saat beberapa pengguna disiapkan. |
Memuat dialog | Layar pemuatan ditampilkan saat beralih antar-Pengguna. |
Layar kunci, bouncer | Layar yang mengharuskan pengguna memasukkan PIN, pola, atau sandi. |
Pengguna | Pengguna Android. |
Pemilih pengguna | Layar pemilih pengguna yang ditampilkan saat perangkat di-booting. |
Pengalih pengguna | Pengalih pengguna ditampilkan saat beralih layar dari SetelanCepat. |
Menyesuaikan pengalihan pengguna
Keyguard dan bouncer
Di Android Automotive OS, layar Keyguard dengan pemilih pengguna hanya ditampilkan saat pengguna mengklik tombol Batal di layar kunci. Layar Pelindung Kunci ditampilkan di bawah.
Gambar 1. Layar pelindung kunci
Lockscreen dengan bouncer ditampilkan saat pengguna telah memilih jenis privasi untuk membuka kunci perangkat, seperti yang ditunjukkan di bawah.
Gambar 2. Layar kunci.
Jika kunci disetel untuk memicu daya secara manual, gunakan petunjuk berikut:
adb shell input keyevent 26
Pemilih pengguna
Layar pemilih pengguna ditampilkan saat perangkat yang terintegrasi dengan status bar UI Sistem
dan Maps mobil dimulai ulang. Untuk mempelajari lebih lanjut, lihat
FullscreenUserSwitcher
.
Gambar 3. Layar pemilih pengguna
Tata letak layar ini dapat disesuaikan di
car_fullscreen_user_switcher.xml
.
Layar pemuatan
Layar pemuatan ditampilkan setiap kali pengguna beralih, terlepas dari titik entri. Misalnya, melalui pemilih pengguna atau layar Setelan. Layar pemuatan merupakan bagian integral dari
UI Sistem framework dan dipetakan ke class publik berjudul
CarUserSwitchingDialog
.
Lihat Gambar 3 di atas untuk mengetahui contohnya.
Tema dapat disesuaikan dengan
Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog
.
Untuk menyiapkan pengguna Android, alur Wizard Penyiapan awal memungkinkan pengemudi menyiapkan nama pengguna untuk dirinya sendiri. Jika pengemudi kemudian mengaitkan pengguna Android dengan Akun Google, nama pengguna akan dipilih dari akun tersebut. Namun, jika pengemudi menentukan nama, misalnya DriverB, lalu kemudian mengaitkan nama pengguna tersebut ke Akun Google-nya dengan nama Maddy, nama yang awalnya ditetapkan (DriverB) tidak akan berubah karena nama tersebut ditetapkan secara eksplisit. Pengemudi hanya dapat mengubah nama di menu Setelan.
Tata letak dapat disesuaikan di car_user_switching_dialog.xml.
OEM dapat menyembunyikan status dan menu navigasi menggunakan tema bernama
NoActionBar.Fullscreen
.
(Ini adalah UI Sistem asli, yang diperbarui untuk UI referensi mobil.) Untuk informasi selengkapnya, lihat
Penyesuaian.
Meskipun OEM dapat menyediakan titik entri antarmuka pengguna untuk beralih pengguna, hasilnya terkadang tidak diinginkan. Jika hal ini terjadi:
- OEM membuat dan menampilkan layar pemuatan (atau dialog) kustom.
- Khusus untuk UX, OEM meluncurkan layar pemuatan kustom saat pengguna memilih cara untuk beralih, yang dapat disembunyikan saat pengalihan pengguna selesai.
- OEM harus menetapkan periode prioritas sesuai dengan preferensi mereka. Misalnya, jenis jendela dengan prioritas lebih tinggi. Prioritas prioritas tidak boleh melebihi Keyguard.
- OEM menetapkan
config_customUserSwitchUi=true
dalamconfig.xml
framework inti seperti yang dijelaskan dalamconfig_customuserswitchui
. Akibatnya, framework tidak menampilkanCarUserSwitchingDialog
.
Menyesuaikan layar kunci
Lockscreen adalah bagian tak terpisahkan dari UI Sistem, yang dapat disesuaikan oleh OEM.
Untuk menyesuaikan alur, mulai dengan frameworks/base/packages/CarSystemUI/
.
Menyesuaikan penyiapan pengguna pertama kali
Wizard Penyiapan melakukan penyiapan pengguna pertama kali. Hal ini juga dapat disesuaikan. Anda dapat menggunakan UserManager API untuk membuat pengguna. Dalam beberapa kasus, hal ini dapat diterapkan di latar belakang, sehingga menyederhanakan proses Wizard Penyiapan.