Android Automotive menyediakan UI Sistem baru yang dikembangkan khusus untuk kendaraan. Sebagian besar komponen UI Sistem dikaitkan erat dengan layanan framework. UI Sistem mengacu pada setiap yang ditampilkan di layar yang bukan bagian dari aplikasi. UI Sistem Otomotif (di Paket elemen CarSystemUI) adalah ekstensi UI Sistem Android (dalam paket UI Sistem), yang telah disesuaikan khusus untuk kendaraan.
Apa itu UI Sistem?
Komponen khusus untuk UI Sistem Otomotif meliputi:
Komponen | Deskripsi |
---|---|
UI layar kunci | Menyaring di mana pengguna diautentikasi ke akun pengguna tertentu. |
Menu navigasi | {i>System bar<i} yang dapat diposisikan di sebelah kiri, bawah, atau kanan layar dan dapat menyertakan tombol {i>facet<i} untuk navigasi ke berbagai aplikasi, beralih panel notifikasi, dan menyediakan kontrol kendaraan (seperti HVAC). Ini berbeda dengan UI Sistem Android , yang menyediakan tombol Kembali, Beranda, dan stack aplikasi. |
Status bar | Bilah sistem diposisikan di sepanjang layar dan berfungsi sebagai bilah navigasi. Tujuan
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 | Penyaringan yang digunakan pengguna untuk memilih pengguna yang berbeda. |
UI Volume | Dialog yang ditampilkan saat pengemudi menggunakan tombol volume fisik untuk mengubah volume pada perangkat seluler. |
Bagaimana cara kerja UI Sistem?
UI Sistem adalah aplikasi Android yang berjalan saat perangkat dinyalakan. Tujuan aplikasi dimulai melalui refleksi oleh SystemServer. Titik entri 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 Automotive.
config_statusBarComponent
config_systemUIFactoryComponent
{i>CarSystemUI<i} adalah ekstensi dari paket UI {i>System<i}, yang berarti bahwa kelas dan resource dalam paket UI Sistem dapat digunakan dan diganti oleh paket CarSystemUI.
Menyesuaikan UI Sistem
Overlay
Meskipun Anda dapat memodifikasi kode sumber Android untuk menyesuaikan UI Sistem, melakukannya akan membuat penerapan update Android mendatang menjadi lebih sulit dan rumit. Sebagai gantinya, Android mendukung penggunaan direktori overlay, yang memungkinkan Anda mengganti file sumber daya tanpa memodifikasi kode sumber. Dalam sistem build Android, sistem overlay mengganti file dalam terkendali. Semua file yang diubah diidentifikasi dengan jelas tanpa melintasi seluruh kode sumber AOSP yang baru.
File overlay harus ditempatkan dalam direktori PRODUCT_PACKAGE_OVERLAYS
dan harus memiliki
sub-folder yang sama persis dengan
struktur {i>root <i}AOSP asli. Untuk Android
10 atau lebih tinggi, PRODUCT_PACKAGE_OVERLAYS
ditetapkan ke:
PRODUCT_PACKAGE_OVERLAYS := packages/services/Car/car_product/overlay
UI Automotive System menggunakan resource dari UI Sistem dan paket CarSystemUI, yang berarti bahwa sumber daya dari setiap lokasi bisa diganti dengan overlay untuk memengaruhi tampilan dan nuansa UI Sistem Otomotif.
Untuk mengganti file, replikasikan struktur direktori dari file yang diganti di
/overlay
yang Anda tentukan, lalu sertakan pengganti di direktori tersebut
saat ini. 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 dari dua titik entri penyesuaian utama diberikan di bawah ini.
Menu navigasi
UI Sistem Otomotif dapat memiliki tiga menu navigasi di kiri, bawah, dan kanan layar. Visibilitas setiap kolom sistem dialihkan dengan konfigurasi berikut:
config_enableLeftSystemBar
config_enableBottomSystemBar
config_enableRightSystemBar
Setiap batang memiliki status disediakan dan tidak disediakan, yang dapat disesuaikan dengan 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
termasuk tampilan lain yang diperlukan. Tombol di dalam bilah navigasi dapat disertakan menggunakan
com.android.systemui.car.systembar.CarSystemBarButton
.
Tampilan ini di-inflate di CarSystemBar#createSystemBar
,
jika perangkat disediakan dengan
sesuai untuk pengguna tertentu.
Status bar
Pertimbangkan status bar sebagai menu navigasi dengan fungsi tambahan. Berbeda dengan navigasi, status bar tidak memiliki penanda 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 seragam dengan faktor skala
alih-alih menentukan ukuran tertentu. Misalnya, dalam sebuah {i>overlay<i}
file /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 menyertakan
panel notifikasi, pengalih pengguna, notifikasi peringatan dini (HUN), dan
pengaman tombol. Berbagai {i>layout<i} untuk ini termasuk dalam
super_status_bar.xml
.
Perubahan kode sumber UI sistem
Overlay mungkin tidak memberikan fleksibilitas yang diperlukan untuk menyesuaikan perilaku UI Sistem secara memadai.
Waspada. Perubahan yang dibuat pada kode sumber Android sulit untuk diupdate dalam rilis Android berikutnya. Sebaiknya Anda memperluas kode UI Automotive System alih-alih langsung memodifikasi kode. Dengan cara ini, kode sumber UI Automotive System dapat diupgrade dengan konflik penggabungan minimal karena semua penyesuaian diimplementasikan melalui platform API yang dikenal.
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
ke titik
ke komponen baru ini. Memperluas class ini memungkinkan penyesuaian sebagian besar elemen yang berhubungan
ke bilah 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.
Sesuaikan pengalihan dan pembukaan kunci pengguna
Materi berikut menjelaskan cara menyesuaikan pengalaman peralihan 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 yang ditampilkan saat beralih antar-Pengguna. |
Layar kunci, pemantul | Layar mengharuskan seseorang memasukkan PIN, pola, atau sandi. |
Pengguna | pengguna Android. |
Pemilih pengguna | Layar pemilih pengguna ditampilkan saat perangkat di-booting. |
Pengalih pengguna | Pengalih pengguna ditampilkan saat beralih layar dari QuickSettings. |
Menyesuaikan peralihan pengguna
Keyguard dan bouncer
Di Android Automotive OS, layar Keyguard dengan alat pilih pengguna hanya ditampilkan ketika pengguna mengeklik tombol {i>Cancel<i} (Pembatalan) di layar kunci. Layar Keyguard ditampilkan di bawah ini.
Gambar 1. Layar keyguard
Layar kunci dengan pantulan ditampilkan ketika pengguna memilih jenis privasi membuka kunci perangkat, seperti yang ditunjukkan di bawah ini.
Gambar 2. Layar kunci.
Jika kunci disetel untuk mengaktifkan atau menonaktifkan daya secara manual, gunakan petunjuk berikut:
adb shell input keyevent 26
Pemilih pengguna
Layar pemilih pengguna ditampilkan saat perangkat terintegrasi dengan status bar UI Sistem mobil
dan Maps 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 dialihkan, terlepas dari titik entrinya. Sebagai
misalnya, melalui pemilih pengguna
atau layar {i>Settings<i}. Layar pemuatan integral dari
UI Sistem framework dan memetakan ke class publik yang berjudul
CarUserSwitchingDialog
.
Lihat Gambar 3 di atas sebagai contoh.
Tema dapat disesuaikan dengan
Theme_DeviceDefault_Light_Dialog_Alert_UserSwitchingDialog
.
Untuk menyiapkan pengguna Android, alur Wizard Penyiapan awal memungkinkan driver menyiapkan pengguna nama untuk mereka sendiri. Jika pengemudi lalu mengaitkan pengguna Android dengan Akun Google, nama dipilih dari akun tersebut. Namun, jika {i>driver<i} menentukan nama, misalnya {i>DriverB<i}, 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 di menu Setelan saja.
Tata letak dapat disesuaikan di car_user_switching_dialog.xml.
OEM dapat menyembunyikan status dan menu navigasi dengan menggunakan tema bernama
NoActionBar.Fullscreen
.
(Ini adalah UI Sistem asli, yang diupdate untuk UI referensi mobil.) Untuk informasi selengkapnya, lihat
Penyesuaian.
Meskipun OEM dapat menyediakan titik entri antarmuka pengguna untuk beralih pengguna, terkadang hasilnya dapat berupa tidak diinginkan. Jika hal ini terjadi:
- OEM membuat dan menampilkan layar pemuatan kustom (atau dialog).
- Khusus untuk UX, OEM meluncurkan layar pemuatan kustom saat pengguna memilih cara {i>switch<i}, yang dapat disembunyikan ketika pengalihan pengguna selesai.
- OEM harus menetapkan prioritas jendela sesuai dengan preferensi mereka. Misalnya, jenis jendela dengan prioritas lebih tinggi. Prioritas prioritas tidak boleh melebihi Keyguard.
- OEM menetapkan
config_customUserSwitchUi=true
dalam framework inticonfig.xml
seperti yang dijelaskan dalamconfig_customuserswitchui
. Sebagai seorang hasilnya, kerangka kerja tidak menampilkanCarUserSwitchingDialog
.
Menyesuaikan layar kunci
Layar Kunci adalah bagian integral 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 gunakan UserManager API untuk membuat pengguna. Dalam beberapa kasus, hal ini dapat diimplementasikan di latar belakang, sehingga merampingkan proses Wizard Penyiapan.