Sekilas HMI

Android Automotive adalah solusi platform infotainment dalam mobil yang disediakan dengan Android Open Source Project (AOSP). Artikel dalam topik ini memperkenalkan konsep dan komponen utama yang disediakan oleh UI Sistem Otomotif Android dan aplikasi inti yang diperlukan untuk membangun sistem Antarmuka Mesin Manusia (HMI) yang efektif untuk OEM, pengembang pihak ketiga, dan pengguna akhir.

  • Panduan Integrasi Host AOSP . App Host memungkinkan aplikasi mobil 3P merender komponen antarmuka pengguna (UI) bergaya OEM atas namanya.
  • Struktur Pengaturan Mobil . Pengaturan Mobil menyediakan antarmuka pengguna visual yang berpusat pada mobil, optimalisasi gangguan pengemudi dasar, dan titik masuk penyesuaian tambahan untuk OEM.
  • Panduan Integrasi Perpustakaan UI Mobil . Perpustakaan UI Mobil menyediakan kerangka pengembangan UI yang memungkinkan semua aplikasi yang ada di mobil mencapai konsistensi dan penyesuaian.
  • Sesuaikan Ikon Sistem Bilah Status . Bilah Status adalah komponen UI Sistem Android yang digunakan untuk terus-menerus menampilkan informasi penting kepada pengguna. Pelajari cara menyesuaikan ikon sistem bilah Status.
  • Pemberitahuan Pengantar . Pelajari cara menyesuaikan Notifikasi Head-Up.
  • Pemanggil . Gunakan aplikasi sistem Android ini untuk menerapkan pengalaman yang dioptimalkan untuk gangguan (DO) untuk panggilan Bluetooth, penjelajahan kontak, dan manajemen panggilan.
  • Media . Hanya dengan beberapa pengaturan dan layanan, pengembang dapat memperluas aplikasi media yang ada. Meskipun aplikasi harus mematuhi template Media Otomotif, pengembang dapat menyesuaikan warna template, font, ikon, dan lainnya untuk menciptakan pengalaman bermerek.
  • Pemberitahuan . Pelajari cara mengubah tampilan dan konfigurasi notifikasi.

Terminologi

Istilah-istilah ini digunakan dalam HMI dan artikel terkait:

Ketentuan Definisi
Aplikasi inti Kumpulan aplikasi utama yang penting untuk fungsionalitas sistem, termasuk Pengaturan, Radio, HVAC, Media, Dialer, dan Keyboard.
Dokumen Definisi Kompatibilitas (CDD) Menghitung persyaratan yang harus dipenuhi agar perangkat kompatibel dengan Android versi terbaru.
Rangkaian Uji Kompatibilitas (CTS) Rangkaian pengujian tingkat komersial gratis, tersedia untuk diunduh di Unduhan Rangkaian Uji Kompatibilitas .
Kustomisasi Latihan memodifikasi implementasi AOSP untuk memenuhi persyaratan OEM. Biasanya, hal ini melibatkan penggunaan hamparan sumber daya untuk menerapkan perubahan tampilan sekaligus memastikan kepatuhan terhadap CDD, CTS, dan semua pedoman Pengalaman Pengguna yang relevan.
Aplikasi pahlawan Sekumpulan aplikasi utama yang penting untuk semua aspek Android, termasuk fungsionalitas, kemampuan upgrade, ekosistem pengembang pihak ketiga, dan pengguna akhir. Aplikasi Hero mencakup Notifikasi, Pengaturan, Media, dan Pusat Komunikasi/Dialer. Implementasi AOSP yang sesuai harus berkualitas produksi.
Hamparan sumber daya Untuk memengaruhi rendering antarmuka pengguna, gunakan mekanisme ini untuk mengganti warna, mengubah dimensi, mengaktifkan gambar, dan menerapkan sumber daya tata letak baik pada waktu kompilasi (paling umum) atau saat runtime (Runtime Resource Overlay (RRO)).
UI Sistem Antarmuka pengguna di luar aplikasi milik sistem, seperti bilah navigasi, bilah status, layar kunci, dan dialog volume.
Tema Kumpulan warna dan gaya yang digunakan untuk menentukan tampilan dan nuansa komponen dan aplikasi yang mewarisi tema.
Pengalaman Pengguna (UX) Bidang desain User Interface (UI) dan kegunaannya.

Kustomisasi

Implementasi AOSP pada UI Sistem dan aplikasi sistem inti lainnya berfungsi sebagai fondasi yang kuat untuk memulai proses pengembangan HMI. Latihan memodifikasi implementasi AOSP (terutama melalui penggunaan resource overlay) untuk memenuhi persyaratan branding, bisnis, dan hukum OEM disebut sebagai kustomisasi .

Meskipun keseluruhan sistem dirancang dan dibangun agar fleksibel, komponen yang berbeda diharapkan dapat disesuaikan pada tingkat yang berbeda:

  • UI Sistem. OEM dapat menyesuaikan atau mengganti implementasi AOSP dalam batasan yang diberikan oleh CDD dan CTS serta pedoman UX lainnya yang berlaku.

  • Aplikasi sistem non-pahlawan (juga dikenal sebagai referensi ) . OEM dapat menyesuaikan atau mengganti implementasi AOSP.

  • Aplikasi pahlawan . Setiap aplikasi dilengkapi dengan serangkaian pedoman penyesuaian terperinci. OEM sangat dianjurkan untuk menggunakan implementasi AOSP dan kemudian menyesuaikannya dalam batasan yang diberikan oleh pedoman tersebut.

Konfigurasi kepadatan

Untuk memastikan bahwa elemen UI dirender dengan benar berdasarkan konfigurasi tampilan fisik, properti kepadatan harus disetel ke bucket ( Display Metrics ) yang paling cocok dengan kepadatan fisik, seperti entri ini di file build:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Mesin pembatasan UX

CarUxRestrictionsManager menyediakan pengait bagi aplikasi untuk mendengarkan perubahan terkait status mengemudi guna mengubah pengalaman pengguna dengan tepat. OEM dapat melapisi file konfigurasi di packages/services/Car/service/res/xml/car_ux_restrictions_map.xml untuk memengaruhi perilaku sistem.

Tema sistem

Tema yang menentukan kumpulan item default seluruh sistem seperti warna dan gaya teks adalah DeviceDefault . OEM didorong untuk memulai proses penyesuaian keseluruhan dengan memodifikasi tema DeviceDefault. Secara default, UI sistem dan semua aplikasi sistem di AOSP mewarisi tema ini. Aplikasi sistem yang dikembangkan OEM juga dianjurkan untuk mewarisi DeviceDefault. Aplikasi yang dikembangkan pihak ketiga tidak diharapkan mewarisi DeviceDefault melainkan menggunakan Theme.Car yang disediakan di perpustakaan androidx.car . File-file tersebut terletak sebagai berikut:

  • Inti . /frameworks/base/core/res/res/values/themes_device_defaults.xml
  • Warna . /frameworks/base/core/res/res/values/colors_car.xml
  • Gaya . /frameworks/base/core/res/res/values/styles_car.xml
  • Hamparan mobil.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

OEM diharapkan memiliki struktur overlay paralel ke direktori car_product di direktori vendor mereka yang selanjutnya memperluas overlay car_product .

Aplikasi Taman Bermain Tema

Aplikasi ini menyederhanakan proses penyesuaian tema DeviceDefault dengan memvisualisasikan semua atribut tema di satu tempat. Selain itu, dengan membandingkan cara rendering gaya tertentu di aplikasi ini dibandingkan dengan aplikasi sistem lainnya, pengembang dapat dengan cepat men-debug masalah tema. Aplikasi ini tersedia di:

  /packages/services/Car/tests/ThemePlayground

UI Sistem

UI Sistem mencakup semua UI di bawah /frameworks/base , terutama di /frameworks/base/packages/CarSystemUI . Ini termasuk bilah Navigasi, bilah Status, layar kunci, dialog volume, toast, pemilih pengguna, dan dialog izin. OEM dapat menyesuaikan komponen UI sistem secara ekstensif melalui hamparan sumber daya dan tema, asalkan masing-masing memenuhi persyaratan CDD, CTS, dan pedoman UX lain yang berlaku.

Aplikasi sistem

Android Automotive menyertakan serangkaian aplikasi sistem inti yang penting untuk fungsionalitas sistem secara keseluruhan. Dari jumlah tersebut, Pusat Komunikasi, Media, Notifikasi, dan Pengaturan dianggap sebagai aplikasi pahlawan .

  • Pusat Komunikasi
  • AC
  • IME (papan ketik)
  • Peluncur (layar beranda)
  • Pemutar Media Lokal
  • Media
  • Kurir
  • Pemberitahuan
  • Radio
  • Pengaturan

Tampilan depan

Layar Beranda, yang dikenal sebagai Peluncur Mobil , adalah laman landas untuk pengalaman HMI. Implementasi AOSP hanya berfungsi sebagai referensi dan OEM diharapkan mengganti implementasinya dengan implementasi mereka sendiri, yang sering kali menggabungkan navigasi, pemutaran media, komunikasi, dan status sistem lainnya, sesuai kebutuhan. Seringkali, aplikasi Car Launcher menampilkan aplikasi yang tersedia di sistem. Untuk mempelajari cara menangani peristiwa seperti yang terbaru, perubahan paket, dan aplikasi tanpa kepala (tanpa aktivitas peluncur), lihat implementasi referensi.

Pemberitahuan

Notifikasi merupakan komponen integral dari OS Android dan konstruksi yang sama (termasuk notifikasi pendahuluan, daftar/pusat notifikasi, API Notifikasi, peringkat, dan tindakan inline) telah disertakan dalam Android Automotive. Untuk detailnya, lihat Ikhtisar Notifikasi perangkat genggam. Untuk mengoptimalkan kasus penggunaan otomotif, modifikasi berikut telah dilakukan (dibandingkan dengan tumpukan notifikasi genggam):

  • Pengurangan keseluruhan konten notifikasi yang terlihat oleh pengguna. Penghapusan pemutaran media yang sedang berlangsung, navigasi yang sedang berlangsung, dan notifikasi layanan latar depan yang "tidak penting" (pentingnya RENDAH dan di bawahnya) dari aplikasi sistem dari daftar/pusat notifikasi, dengan pemahaman bahwa notifikasi ini dibuat berlebihan (mis. cluster yang menampilkan status media ) atau tidak berguna.

  • Penghapusan kontrol kontekstual yang kompleks (seperti kontrol berbasis panjang tekan dan geser).

  • Menghormati konfigurasi mesin Pembatasan UX.

    • Pratinjau konten pemberitahuan pesan mungkin disembunyikan berdasarkan kondisi drive.
    • Semua string dibatasi pada panjang maksimal.
  • Penambahan kategori notifikasi baru khusus untuk mobil di Android 9, hanya tersedia untuk paket aplikasi sistem yang berjalan sebagai android.uid.system .

  • CATEGORY_CAR_EMERGENCY . Peringkat di bagian atas daftar notifikasi. Melewati kontrol Jangan Ganggu (DND).

  • CATEGORY_CAR_WARNING . Berperingkat di bawah darurat dan di atas yang lain (melewati DND).
  • CATEGORY_CAR_INFORMATION . Diberi peringkat dengan notifikasi lainnya berdasarkan "kepentingan" dan keterkinian.

Implementasi tumpukan notifikasi secara menyeluruh, mulai dari API Notifikasi hingga UI, dianggap sebagai aplikasi pahlawan . Untuk menjamin interoperabilitas API yang konsisten di seluruh HU dan untuk memaksimalkan kemampuan peningkatan, OEM sangat dianjurkan untuk menerapkan implementasi AOSP dan kemudian menyesuaikannya dengan mudah.

Kustomisasi

Tema standar DeviceDefault dan hamparan sumber daya berlaku. Tombol penyesuaian perilaku dalam jumlah yang sangat terbatas tersedia di:

packages/apps/Car/Notification/res/values/config.xml

Pengaturan

Aplikasi Pengaturan ( Pengaturan Mobil ) adalah salah satu aplikasi pahlawan yang menampilkan kenop, yang dapat digunakan pengguna untuk mengonfigurasi aspek OS Android dan bagian mobil lainnya. Aplikasi Pengaturan memaparkan lebih dari 200 fitur di OS, yang digabungkan erat dengan setiap rilis utama Android. Untuk mengaktifkan kemampuan upgrade dan menghindari fragmentasi, OEM sangat dianjurkan untuk menggunakan implementasi AOSP dan kemudian menyesuaikannya (daripada mem-forking implementasinya).

Kustomisasi

Aplikasi Pengaturan mempertimbangkan penyesuaian dan memberikan beberapa cara untuk penyesuaian.

  • Tema. Memungkinkan penyesuaian visual tentang bagaimana setiap jenis objek Preferensi dirender, termasuk:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Kustomisasi hierarki. Untuk mengaktifkan:

    • Luncurkan ke dalam fragmen root sembarang, overlay nilai config_settings_hierarchy_root_fragment dalam file berjudul Settings/res/values/config.xml

    • Kustomisasi item seperti urutan, pengelompokan, teks, dan ikon, overlay Settings/res/xml/*.xml

  • Injeksi statis. Saat menyiapkan proyek overlay, OEM dapat menambahkan layar kepemilikan dengan mendefinisikan dan kemudian menambahkan kelas Fragmen dan Pengontrol tambahan ke hierarki.

  • Injeksi dinamis . Jika aplikasi terpisah ( apk ) menghosting layar Pengaturan yang harus ditautkan dari aplikasi Pengaturan utama, aplikasi terpisah tersebut dapat disuntikkan secara dinamis. Untuk informasi selengkapnya, lihat Preferensi dinamis .

Media

Media adalah aplikasi pahlawan yang memberikan pengalaman pengguna front-end atas nama aplikasi media yang mengimplementasikan API MediaSession dan MediaBrowser . Aplikasi media dapat berupa aplikasi pihak ketiga (seperti Spotify dan Pandora) serta sumber media lainnya, seperti streaming Bluetooth (BT) dan media lokal.

Ratusan aplikasi media tersedia di Android Auto ( Proyeksi ), yang semuanya mengimplementasikan API media ini seperti yang dijelaskan dalam Menyediakan Pemutaran Audio untuk Otomatis . API Media berkembang seiring dengan setiap rilis utama Android dan rilis pustaka Androidx . Untuk menjamin interoperabilitas API di semua aplikasi media dan versi Android masa depan, OEM sangat dianjurkan untuk menggunakan implementasi AOSP dan kemudian menyesuaikannya.

Kustomisasi

Tema standar melalui tema DeviceDefault juga berlaku untuk Media. Selain itu, penyesuaian tampilan dan nuansa lebih lanjut dapat dilakukan dengan hamparan sumber daya, asalkan penyesuaian tersebut berada dalam batasan pedoman UX.

Media USB dan sumber media

Sebisa mungkin, sangat disarankan agar sumber media ini dihubungkan ke Media melalui penerapan API MediaSession dan MediaBrowser (hal ini berlaku untuk aplikasi media pihak ketiga mana pun). Lihat aplikasi LocalMediaPlayer di AOSP. Aplikasi ini memunculkan file media lokal dan ditampilkan sebagai sumber di Media.