Ringkasan HMI

Android Automotive adalah solusi platform infotainmen dalam mobil yang disediakan bersama Android Proyek Open Source (AOSP). Artikel dalam topik ini memperkenalkan konsep dan komponen utama yang disediakan oleh UI Sistem Android Automotive dan aplikasi inti yang diperlukan untuk membuat Sistem Antarmuka Mesin (HMI) untuk OEM, developer pihak ketiga, dan pengguna akhir.

  • Panduan Integrasi Host AOSP. Host Aplikasi memungkinkan aplikasi mobil pihak ketiga merender komponen antarmuka pengguna (UI) bergaya OEM pada nama Anda.
  • Struktur Setelan Mobil. Setelan Mobil menyediakan antarmuka pengguna visual yang berfokus pada mobil, gangguan dasar bagi pengemudi pengoptimalan, dan titik entri penyesuaian tambahan untuk OEM.
  • Panduan Integrasi Library UI Mobil. Library UI Mobil menyediakan framework pengembangan UI untuk mengaktifkan semua aplikasi yang ada di mobil untuk mencapai konsistensi dan penyesuaian.
  • Menyesuaikan Ikon Sistem Status Bar. Status bar adalah komponen UI Sistem Android yang digunakan untuk menampilkan secara persisten informasi penting bagi pengguna. Pelajari cara menyesuaikan ikon sistem Status bar.
  • Notifikasi Pendahuluan. Pelajari cara menyesuaikan Notifikasi Peringatan Dini.
  • Pemanggil. Gunakan aplikasi sistem Android ini untuk mengimplementasikan pengalaman distraksi yang dioptimalkan (DO) untuk Bluetooth panggilan, penjelajahan kontak, dan pengelolaan panggilan.
  • Media. Hanya dengan beberapa setelan dan layanan, pengembang dapat memperluas aplikasi media yang ada. Meskipun aplikasi harus mematuhi Template Media Otomotif, developer dapat menyesuaikan warna template, font, ikon, dan lainnya untuk menciptakan pengalaman bermerek.
  • Notifikasi. Pelajari cara mengubah tampilan dan konfigurasi notifikasi.

Terminologi

Istilah ini digunakan dalam HMI dan artikel terkait:

Istilah Definisi
Aplikasi inti Kumpulan aplikasi penting yang penting untuk fungsi sistem, termasuk Setelan, Radio, HVAC, Media, Telepon, dan Keyboard.
Compatibility Definition Document (CDD) Menghitung persyaratan yang harus dipenuhi agar perangkat kompatibel dengan versi terbaru Android.
Compatibility Test Suite (CTS) Paket pengujian tingkat komersial gratis, tersedia untuk didownload di Download Compatibility Test Suite.
Penyesuaian Latihan memodifikasi implementasi AOSP untuk memenuhi persyaratan OEM. Biasanya, hal ini melibatkan penggunaan overlay resource untuk menerapkan perubahan tampilan sekaligus memastikan kepatuhan terhadap CDD, CTS, dan semua pedoman Pengalaman Pengguna yang relevan.
Aplikasi utama Serangkaian aplikasi utama yang penting untuk semua aspek Android, termasuk fungsionalitas, kemampuan upgrade, ekosistem developer pihak ketiga, dan pengguna akhir. Aplikasi utama meliputi Notifikasi, Setelan, Media, dan Pusat Komunikasi/Pemanggil. AOSP yang sesuai implementasinya harus memiliki kualitas produksi.
Overlay resource Untuk mempengaruhi rendering antarmuka pengguna, gunakan mekanisme ini untuk mengganti warna, mengubah dimensi, mengaktifkan gambar, dan menerapkan resource tata letak dengan waktu kompilasi (paling umum) atau saat runtime (Runtime Resource Overlays (RRO)).
UI Sistem Antarmuka pengguna di luar aplikasi milik sistem, seperti menu navigasi, status bar, layar kunci, dan dialog volume.
Tema Sekumpulan warna dan gaya yang digunakan untuk menentukan tampilan dan nuansa komponen dan aplikasi yang mewarisi tema tersebut.
Pengalaman Pengguna (UX) Bidang desain Antarmuka Pengguna (UI) dan kegunaannya.

Penyesuaian

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

Meskipun keseluruhan sistem dirancang dan dibuat agar fleksibel, komponen yang berbeda diharapkan untuk disesuaikan dengan berbagai tingkat:

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

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

  • Aplikasi utama. Setiap aplikasi dilengkapi dengan serangkaian panduan penyesuaian mendetail. OEM sangat dianjurkan untuk menggunakan implementasi AOSP, lalu menyesuaikannya dalam batasan yang diberikan oleh panduan tersebut.

Konfigurasi kepadatan

Untuk memastikan bahwa elemen UI merender dengan benar berdasarkan konfigurasi tampilan fisik, kepadatan harus ditetapkan ke bucket. (Metrik Display) yang paling cocok dengan kepadatan fisik, seperti entri ini dalam file build:

PRODUCT_PROPERTY_OVERRIDES := \
        ro.sf.lcd_density=160

Mesin pembatasan UX

CarUxRestrictionsManager menyediakan hook bagi aplikasi untuk memproses perubahan terkait dengan status mengemudi untuk memodifikasi pengalaman pengguna dengan tepat. OEM dapat menempatkan file konfigurasi di packages/services/Car/service/res/xml/car_ux_restrictions_map.xml untuk mempengaruhi perilaku sistem.

Tema sistem

Tema yang menentukan kumpulan item default untuk seluruh sistem seperti warna dan gaya teks adalah DeviceDefault. OEM didorong untuk memulai seluruh proses penyesuaian dengan mengubah tema DeviceDefault. Secara default, UI sistem, dan semua aplikasi sistem dalam AOSP, mewarisi dari tema ini. Aplikasi sistem yang dikembangkan OEM juga disarankan untuk mewarisi DeviceDefault. Pihak ketiga aplikasi yang dikembangkan tidak diharapkan mewarisi DeviceDefault, tetapi menggunakan Theme.Car yang disediakan di library androidx.car. File berada 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
  • Overlay mobil.
    /packages/services/Car/car_product/overlay/.../values/themes_device_defaults.xml

OEM diharapkan memiliki struktur overlay paralel dengan direktori car_product di direktori vendornya yang memperluas overlay car_product lebih lanjut.

Aplikasi Theme Playground

Aplikasi ini menyederhanakan proses penyesuaian tema DeviceDefault dengan memvisualisasikan semua atribut tema di satu tempat. Selain itu, dengan membandingkan bagaimana gaya tertentu dirender dalam aplikasi sebagai perbandingan dengan aplikasi sistem lain, pengembang bisa dengan cepat men-debug masalah tema. Aplikasi ini tersedia di:

  /packages/services/Car/tests/ThemePlayground

UI Sistem

UI sistem mencakup semua UI di bagian /frameworks/base, terutama di /frameworks/base/packages/CarSystemUI. Ini meliputi {i>Navigation bar<i}, {i>Status bar<i}, layar kunci, dialog volume, toast, pemilih pengguna, dan dialog izin. OEM dapat menyesuaikan komponen UI sistem secara ekstensif melalui overlay resource dan tema, asalkan masing-masing berada dalam persyaratan CDD, CTS, dan pedoman UX lainnya yang berlaku.

Aplikasi sistem

Android Automotive menyertakan serangkaian aplikasi sistem inti yang penting bagi keseluruhan sistem fungsionalitasnya. Di antaranya, Pusat Komunikasi, Media, Notifikasi, dan Setelan dianggap sebagai aplikasi hero.

  • Pusat Komunikasi
  • HVAC
  • IME (keyboard)
  • Peluncur (layar utama)
  • Pemutar Media Lokal
  • Media
  • Messenger
  • Notifikasi
  • Radio
  • Setelan

Layar utama

Layar utama, yang dikenal sebagai Peluncur Mobil, adalah halaman landing untuk pengalaman HMI. Implementasi AOSP hanya berfungsi sebagai referensi dan OEM diharapkan untuk menggantikan dengan mereka sendiri, yang sering kali menggabungkan navigasi, pemutaran media, komunikasi, dan status sistem lain, sesuai kebutuhan. Sering kali, aplikasi Peluncur Mobil menampilkan aplikasi yang tersedia pada sistem. Untuk mempelajari cara menangani peristiwa seperti terbaru, perubahan paket, dan headless (tidak ada aktivitas peluncur), lihat implementasi referensi.

Notifikasi

Notifikasi adalah komponen integral dari Android OS dan konstruksinya sama (termasuk notifikasi pendahuluan, daftar/pusat notifikasi, API Notifikasi, peringkat, dan tindakan inline) telah disertakan dalam Android Automotive. Untuk detailnya, lihat perangkat genggam Notifikasi Ringkasan. Untuk mengoptimalkan kasus penggunaan otomotif, modifikasi berikut telah dibuat (dibandingkan dengan stack notifikasi genggam):

  • Penurunan jumlah konten notifikasi yang dapat dilihat oleh pengguna secara keseluruhan. Penghapusan pemutaran media berkelanjutan, navigasi berkelanjutan, dan "tidak penting" (pentingnya RENDAH dan lebih rendah) notifikasi layanan latar depan aplikasi sistem dari daftar/pusat notifikasi, dengan memahami bahwa notifikasi ini dibuat redundan (misalnya, cluster yang menampilkan status media) atau tidak berguna.

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

  • Memperhatikan konfigurasi mesin Batasan UX.

    • Pratinjau konten notifikasi pesan dapat disembunyikan berdasarkan status drive.
    • Semua string dibatasi hingga panjang maksimum.
  • Penambahan kategori notifikasi baru khusus untuk mobil dalam Android 9, hanya tersedia untuk paket aplikasi sistem yang berjalan sebagai android.uid.system.

  • CATEGORY_CAR_EMERGENCY. Diberi peringkat di bagian atas daftar notifikasi. Pengabaian Kontrol Do-Not-Disturb (DND).

  • CATEGORY_CAR_WARNING. Diberi peringkat di bawah keadaan darurat dan di atas status darurat lainnya (mengabaikan DND).
  • CATEGORY_CAR_INFORMATION. Diberi peringkat dengan notifikasi lainnya berdasarkan "nilai penting" dan keterkinian.

Implementasi tumpukan notifikasi end-to-end, mulai dari API Notifikasi hingga UI, dianggap sebagai aplikasi hero. Untuk menjamin interoperabilitas API yang konsisten di semua HU dan memaksimalkan kemampuan upgrade, OEM sangat disarankan untuk melakukan implementasi AOSP, lalu menyesuaikannya dengan ringan.

Penyesuaian

Penerapan tema dan overlay resource DeviceDefault standar. Sejumlah sistem yang sangat terbatas tombol penyesuaian perilaku tersedia di:

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

Setelan

Aplikasi Setelan (Setelan Mobil) adalah salah satu aplikasi utama yang mengekspos tombol, yang dapat digunakan pengguna untuk mengonfigurasi aspek Android OS dan bagian lain dari mobil. Setelan aplikasi mengekspos lebih dari 200 fitur di OS, yang dikaitkan erat dengan setiap Android. Untuk mengaktifkan kemampuan upgrade dan untuk menghindari fragmentasi, OEM sangat dianjurkan untuk mengambil implementasi AOSP dan kemudian menyesuaikannya (bukan melakukan fork implementasi).

Penyesuaian

Aplikasi Setelan mempertimbangkan penyesuaian dan menampilkan beberapa cara untuk dan penyesuaian.

  • Tema. Mengaktifkan penyesuaian visual tentang cara setiap jenis objek Preference akan dirender, termasuk:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Penyesuaian hierarki. Untuk mengaktifkan:

    • Meluncurkan ke fragmen root arbitrer, menempatkan nilai config_settings_hierarchy_root_fragment dalam file berjudul Settings/res/values/config.xml

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

  • Injeksi statis. Saat menyiapkan project overlay, OEM dapat menambahkan layar eksklusif dengan menentukan lalu menambahkan class Fragmen dan Pengontrol tambahan pada hierarki.

  • Injeksi dinamis. Jika aplikasi terpisah (apk) menghosting layar pengaturan yang harus ditautkan dari aplikasi {i>Settings<i} utama, aplikasi terpisah dapat dimasukkan secara dinamis. Untuk informasi selengkapnya, lihat Preferensi dinamis.

Media

Media adalah aplikasi utama yang memberikan pengalaman pengguna front-end atas nama media aplikasi yang menerapkan MediaSession dan MediaBrowser Google Cloud Platform. Aplikasi media bisa berupa aplikasi pihak ketiga (seperti Spotify dan Pandora) serta sumber media, seperti streaming Bluetooth (BT) dan media lokal.

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

Penyesuaian

Tema standar melalui tema DeviceDefault juga berlaku untuk Media. Selain itu, lebih lanjut tampilan dan nuansa dapat dilakukan dengan overlay resource, asalkan penyesuaiannya dalam batasan-batasan panduan UX.

Media USB dan sumber media

Sebisa mungkin, sebaiknya sumber media ini dicolokkan ke melalui penerapan MediaSession dan MediaBrowser API (ini berlaku untuk aplikasi media pihak ketiga apa pun). Lihat aplikasi LocalMediaPlayer di AOSP. Aplikasi ini memunculkan file media lokal dan ditampilkan sebagai sumber di Media.