Android Automotive menyediakan UI Sistem baru yang dikembangkan khusus untuk kendaraan. Sebagian besar komponen UI Sistem digabungkan erat dengan layanan kerangka kerja. UI Sistem mengacu pada elemen apa pun yang ditampilkan di layar yang bukan merupakan bagian dari aplikasi. UI Sistem Otomotif (dalam paket elemen CarSystemUI) adalah perpanjangan dari UI Sistem Android (dalam paket SystemUI), yang telah dikustomisasi khusus untuk kendaraan.
Apa itu UI Sistem?
Komponen khusus untuk UI Sistem Otomotif meliputi:
Komponen | Keterangan |
---|---|
UI layar kunci | Layar melalui mana pengguna diautentikasi ke akun pengguna tertentu. |
Bilah Navigasi | Bilah sistem yang dapat diposisikan di kiri, bawah, atau kanan layar dan yang dapat menyertakan tombol faset untuk navigasi ke berbagai aplikasi, mengaktifkan panel notifikasi, dan menyediakan kontrol kendaraan (seperti HVAC). Ini berbeda dengan implementasi UI Sistem Android, yang menyediakan tombol Kembali, Beranda, dan tumpukan aplikasi. |
Status bar | Bilah sistem diposisikan di sepanjang layar dan berfungsi sebagai bilah navigasi. Status Bar juga menyediakan fungsionalitas untuk mendukung:
|
Sistem UI | Mengacu pada elemen apa pun yang ditampilkan di layar yang bukan merupakan bagian dari aplikasi. |
UI Pengalih Pengguna | Layar di mana pengguna dapat memilih pengguna yang berbeda. |
Volume UI | Dialog ditampilkan saat pengemudi menggunakan tombol volume fisik untuk mengubah volume pada perangkat. |
Bagaimana cara kerja UI Sistem?
System UI adalah aplikasi Android yang berjalan saat perangkat dihidupkan. Aplikasi dimulai melalui refleksi oleh SystemServer . Titik masuk yang paling relevan untuk aspek UI Sistem yang terlihat oleh pengguna tercantum di bawah ini. Gunakan komponen ini untuk menyesuaikan UI Sistem Android untuk kemampuan khusus Otomotif.
-
config_statusBarComponent
-
config_systemUIFactoryComponent
CarSystemUI adalah perpanjangan dari paket SystemUI, yang berarti bahwa kelas dan sumber daya dalam paket SystemUI dapat digunakan dan diganti oleh paket CarSystemUI.
Menyesuaikan UI Sistem
Hamparan
Meskipun Anda dapat memodifikasi kode sumber Android untuk menyesuaikan UI Sistem, hal itu akan membuat penerapan pembaruan Android di masa mendatang menjadi lebih sulit dan rumit. Sebagai gantinya, Android mendukung penggunaan direktori overlay, yang memungkinkan Anda mengganti file sumber daya tanpa mengubah kode sumber. Dalam sistem build Android, sistem overlay menimpa file dengan cara yang terkontrol. Semua file yang dimodifikasi diidentifikasi dengan jelas tanpa melintasi seluruh pohon kode sumber AOSP.
File overlay harus ditempatkan di direktori PRODUCT_PACKAGE_OVERLAYS
dan harus memiliki sub-folder yang sama persis dengan struktur akar AOSP asli. Untuk Android 10 atau lebih tinggi, PRODUCT_PACKAGE_OVERLAYS
disetel ke:
PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay
UI Sistem Otomotif menggunakan sumber daya dari SystemUI dan paket CarSystemUI, yang berarti bahwa sumber daya dari setiap lokasi dapat diganti dengan overlay untuk memengaruhi tampilan dan nuansa UI Sistem Otomotif.
Untuk mengganti file, replika struktur direktori dari file yang diganti di direktori /overlay
yang Anda tentukan dan kemudian sertakan penggantinya di direktori itu. 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 SystemUI, 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 dari dua titik masuk kustomisasi utama disediakan di bawah ini.
Bilah navigasi
UI Sistem Otomotif dapat memiliki tiga bilah navigasi di kiri, bawah, dan kanan layar. Visibilitas setiap bilah sistem diaktifkan dengan konfigurasi berikut:
-
config_enableLeftSystemBar
-
config_enableBottomSystemBar
-
config_enableRightSystemBar
Setiap bilah memiliki status yang disediakan dan tidak disediakan, yang dapat disesuaikan dengan melapisi file tata letak masing-masing:
-
car_left_system_bar.xml
-
car_left_system_bar_unprovisioned.xml
-
car_system_bar.xml
(tata letak untuk bilah 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 atas, yang dapat menyertakan tampilan lain yang diperlukan. Tombol di dalam bilah navigasi dapat disertakan menggunakan com.android.systemui.car.systembar.CarSystemBarButton
.
Tampilan ini meningkat di CarSystemBar#createSystemBar
, jika perangkat disediakan dengan benar untuk pengguna tertentu.
Status bar
Pertimbangkan Bilah Status sebagai bilah navigasi dengan fungsionalitas tambahan. Berbeda dengan bilah navigasi, Bilah Status tidak memiliki tanda untuk menonaktifkannya. Anda dapat memodifikasi Bilah Status 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 atas. Status Bar berisi ikon status. Untuk mengubah ukuran ikon, skalakan ikon secara seragam dengan faktor skala alih-alih menentukan ukuran tertentu. Misalnya, dalam file overlay /overlay/frameworks/base/packages/CarSystemUI/res/values/dimens.xml
, tambahkan dimensi berikut untuk menggandakan 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 windowing khusus yang juga mencakup panel notifikasi, pengalih pengguna, notifikasi kepala (HUN), dan keyguard. Berbagai tata letak untuk ini termasuk dalam super_status_bar.xml
.
Perubahan kode sumber UI sistem
Hamparan mungkin tidak memberikan fleksibilitas yang diperlukan untuk menyesuaikan perilaku UI Sistem secara memadai.
Peringatan. Perubahan yang dilakukan pada kode sumber Android akan sulit diperbarui di rilis Android selanjutnya. Sangat disarankan agar Anda memperluas kode UI Sistem Otomotif daripada langsung memodifikasi kode. Dengan cara ini, kode sumber UI Sistem Otomotif yang mendasarinya dapat ditingkatkan dengan konflik penggabungan yang minimal karena semua penyesuaian diimplementasikan melalui permukaan API yang diketahui.
Sebagian besar aspek UI Sistem dapat disesuaikan melalui dua titik masuk berikut:
-
config_statusBarComponent
-
config_systemUIFactoryComponent
Misalnya, jika Anda membuat kelas bernama com.android.systemui.statusbar.car.custom.CustomCarStatusBar
, yang memperluas CarStatusBar
, perbarui config_statusBarComponent
untuk menunjuk ke komponen baru ini. Memperluas kelas ini memungkinkan penyesuaian sebagian besar elemen yang berkaitan dengan bilah sistem dan logika notifikasi.
Demikian juga, Anda dapat membuat CustomCarSystemUIFactory
dan menempatkannya di config_systemUIFactoryComponent
. Gunakan kelas ini untuk memperbarui fungsionalitas VolumeUI dan layar kunci.
Sesuaikan peralihan dan pembukaan kunci pengguna
Materi berikut menjelaskan cara menyesuaikan pengalaman peralihan pengguna.
Ketentuan | Keterangan |
---|---|
Penjaga kunci | Dialog layar penuh untuk mencegah interaksi yang tidak disengaja dengan aplikasi latar depan. Melindungi privasi setiap pengguna saat beberapa pengguna disiapkan. |
Memuat dialog | Memuat layar ditampilkan saat beralih di antara Pengguna. |
Layar kunci, penjaga | Layar yang mengharuskan seseorang memasukkan PIN, pola, atau kata sandi. |
Pengguna | pengguna Android. |
pemilih pengguna | Layar pemilih pengguna ditampilkan saat perangkat di-boot. |
Pengalih pengguna | Pengalih pengguna ditampilkan saat beralih layar dari QuickSettings. |
Sesuaikan peralihan pengguna
Penjaga kunci dan penjaga
Di Android Automotive OS, layar Keyguard dengan User Picker hanya ditampilkan saat pengguna mengklik tombol Batal di layar kunci. Layar Keyguard ditampilkan di bawah.
Gambar 1. Layar pengaman tombol
Layar kunci dengan penjaga ditampilkan saat pengguna telah memilih jenis privasi untuk membuka kunci perangkat, seperti yang ditunjukkan di bawah ini.
Gambar 2. Layar kunci.
Saat kunci diatur untuk memicu daya hidup atau mati secara manual, gunakan instruksi berikut:
adb shell input keyevent 26
pemilih pengguna
Layar User Picker ditampilkan saat perangkat terintegrasi dengan bilah Status UI Sistem mobil dan Maps di-boot ulang. Untuk mempelajari lebih lanjut, lihat FullscreenUserSwitcher
.
Gambar 3. Memuat layar
Tata letak layar ini dapat disesuaikan di car_fullscreen_user_switcher.xml
.
Memuat layar
Layar Memuat ditampilkan setiap kali Pengguna dialihkan, terlepas dari titik masuknya. Misalnya, melalui User Picker atau layar Pengaturan. Layar Memuat merupakan bagian integral dari UI Sistem kerangka kerja dan memetakan ke kelas publik yang berjudul CarUserSwitchingDialog
. Lihat Gambar 3 di atas untuk contoh.
Tema dapat disesuaikan dengan Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog
.
Untuk menyiapkan Pengguna Android, alur Wizard Penyiapan awal memungkinkan pengemudi menyetel nama Pengguna untuk dirinya sendiri. Jika pengemudi kemudian mengaitkan Pengguna Android dengan akun Google, nama Pengguna dipilih dari akun itu. Namun, jika pengemudi menentukan nama, misalnya DriverB, dan kemudian mengaitkan nama Pengguna tersebut ke Akun Google mereka dengan nama Maddy, nama yang awalnya ditetapkan (DriverB) tidak berubah karena nama tersebut ditetapkan secara eksplisit. Pengemudi dapat mengubah nama pada menu Pengaturan saja.
Tata letak dapat disesuaikan di car_user_switching_dialog.xml .
OEM dapat menyembunyikan bilah Status dan Navigasi dengan menggunakan tema bernama NoActionBar.Fullscreen
. (Ini adalah UI Sistem asli, diperbarui untuk UI referensi mobil.) Untuk informasi lebih lanjut, lihat Penyesuaian .
Meskipun OEM dapat menyediakan titik masuk antarmuka pengguna untuk beralih Pengguna, hasilnya terkadang tidak diinginkan. Jika ini terjadi:
- OEM membuat dan menampilkan layar pemuatan kustom (atau dialog).
- Khusus untuk UX, OEM meluncurkan layar pemuatan khusus saat pengguna memilih cara untuk beralih, yang dapat disembunyikan saat peralihan pengguna selesai.
- OEM harus mengatur jendela prioritas sesuai dengan preferensi mereka. Misalnya, jenis jendela dengan prioritas lebih tinggi. Prioritas prioritas tidak boleh melebihi Keyguard.
- OEM menyetel
config_customUserSwitchUi=true
dalam kerangka kerja inticonfig.xml
seperti yang dijelaskan dalamconfig_customuserswitchui
. Akibatnya, kerangka kerja tidak menampilkanCarUserSwitchingDialog
.
Sesuaikan layar kunci
Layar Kunci adalah bagian integral dari UI Sistem, yang dapat disesuaikan oleh OEM. Untuk menyesuaikan alur, mulailah dengan frameworks/base/packages/CarSystemUI/
.
Sesuaikan pengaturan pengguna pertama kali
Wizard Penyiapan melakukan penyetelan Pengguna pertama kali. Ini juga bisa disesuaikan. Anda dapat menggunakan API UserManager untuk membuat User. Dalam beberapa kasus, ini dapat diterapkan di latar belakang, sehingga menyederhanakan proses Wizard Penyiapan.