Ikhtisar 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 Android Automotive System UI dan aplikasi inti yang diperlukan untuk membangun sistem Human Machine Interface (HMI) yang efektif untuk OEM, developer pihak ketiga, dan pengguna akhir.

  • Panduan Integrasi Host AOSP . Host Aplikasi memungkinkan aplikasi mobil 3P untuk merender komponen antarmuka pengguna (UI) bergaya OEM atas namanya.
  • Struktur Pengaturan Mobil . Pengaturan Mobil menyediakan antarmuka pengguna visual yang berpusat pada mobil, pengoptimalan gangguan pengemudi dasar, dan titik masuk penyesuaian tambahan untuk OEM.
  • Panduan Integrasi Perpustakaan UI Mobil . Perpustakaan UI Mobil menyediakan kerangka kerja pengembangan UI untuk memungkinkan semua aplikasi yang ada di mobil mencapai konsistensi dan penyesuaian.
  • Kustomisasi Ikon Sistem Bilah Status . Bilah Status adalah komponen UI Sistem Android yang digunakan untuk terus menampilkan informasi penting kepada pengguna. Pelajari cara menyesuaikan ikon sistem bilah Status.
  • Pemberitahuan Awal . Pelajari cara menyesuaikan Notifikasi Pengingat.
  • telepon . Gunakan aplikasi sistem Android ini untuk menerapkan pengalaman pengoptimalan gangguan (DO) untuk panggilan Bluetooth, penelusuran kontak, dan manajemen panggilan.
  • media . Hanya dengan beberapa pengaturan dan layanan, pengembang dapat memperluas aplikasi media yang ada. Meskipun aplikasi harus mematuhi template Automotive Media, 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 kunci aplikasi yang penting untuk fungsionalitas sistem, termasuk Pengaturan, Radio, HVAC, Media, Dialer, dan Keyboard.
Dokumen Definisi Kompatibilitas (CDD) Menyebutkan persyaratan yang harus dipenuhi agar perangkat kompatibel dengan versi Android terbaru.
Suite Uji Kompatibilitas (CTS) Suite pengujian tingkat komersial gratis, tersedia untuk diunduh di Compatibility Test Suite Downloads .
Kustomisasi Latihan memodifikasi implementasi AOSP untuk memenuhi persyaratan OEM. Biasanya, ini melibatkan penggunaan lapisan sumber daya untuk menerapkan perubahan kosmetik sekaligus memastikan kepatuhan terhadap CDD, CTS, dan semua pedoman Pengalaman Pengguna yang relevan.
Aplikasi pahlawan Serangkaian aplikasi utama yang penting untuk semua aspek Android, termasuk fungsionalitas, kemampuan untuk ditingkatkan, ekosistem pengembang pihak ketiga, dan pengguna akhir. Aplikasi Hero termasuk Notifications, Settings, Media, dan Communication Center/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)).
Sistem UI 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 Antarmuka Pengguna (UI) dan kegunaannya.

Kustomisasi

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

Sementara sistem keseluruhan dirancang dan dibangun untuk menjadi fleksibel, komponen yang berbeda diharapkan dapat disesuaikan dengan derajat yang berbeda:

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

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

  • Aplikasi pahlawan . Setiap aplikasi dilengkapi dengan seperangkat pedoman kustomisasi terperinci. OEM sangat dianjurkan untuk menggunakan implementasi AOSP dan kemudian menyesuaikannya dalam batas-batas yang diberikan oleh pedoman tersebut.

Konfigurasi kepadatan

Untuk memastikan bahwa elemen UI dirender dengan benar dengan konfigurasi tampilan fisik, properti kepadatan harus disetel ke keranjang ( Metrik Tampilan ) 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 pengait bagi aplikasi untuk mendengarkan perubahan yang terkait dengan status mengemudi untuk 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 mengatur set item default seluruh sistem seperti warna dan gaya teks adalah DeviceDefault . OEM didorong untuk memulai proses kustomisasi secara keseluruhan dengan memodifikasi tema DeviceDefault. Secara default, UI sistem, dan semua aplikasi sistem di AOSP, mewarisi dari tema ini. Aplikasi sistem yang dikembangkan OEM juga didorong untuk mewarisi DeviceDefault. Aplikasi pihak ketiga yang dikembangkan tidak diharapkan untuk mewarisi DeviceDefault tetapi menggunakan Theme.Car yang disediakan di perpustakaan androidx.car . File 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
  • Lapisan 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 bagaimana gaya tertentu dirender dalam aplikasi ini dibandingkan dengan aplikasi sistem lainnya, pengembang dapat dengan cepat men-debug masalah tema. Aplikasi ini tersedia di:

  /packages/services/Car/tests/ThemePlayground

Sistem UI

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

Aplikasi sistem

Android Automotive menyertakan sekumpulan 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
  • HVAC
  • IME (keyboard)
  • Peluncur (layar beranda)
  • Pemutar Media Lokal
  • Media
  • Kurir
  • Notifikasi
  • Radio
  • Pengaturan

Tampilan depan

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

Notifikasi

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

  • Pengurangan konten notifikasi secara keseluruhan yang terlihat oleh pengguna. Penghapusan pemutaran media yang sedang berlangsung, navigasi yang sedang berlangsung, dan pemberitahuan layanan latar depan yang "tidak penting" (RENDAH dan lebih rendah) dari aplikasi sistem dari daftar/pusat pemberitahuan, dengan pengertian bahwa pemberitahuan ini dibuat berlebihan (misalnya cluster yang menunjukkan status media ) atau tidak berguna.

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

  • Menghormati konfigurasi mesin Pembatasan UX.

    • Pratinjau konten notifikasi 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 aplikasi sistem yang dibundel yang berjalan sebagai android.uid.system .

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

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

Implementasi menyeluruh dari tumpukan notifikasi, dari Notification API hingga UI, dianggap sebagai aplikasi pahlawan . Untuk menjamin interoperabilitas API yang konsisten di semua HU dan untuk memaksimalkan kemampuan upgrade, OEM sangat dianjurkan untuk mengambil implementasi AOSP dan kemudian menyesuaikannya dengan ringan.

Kustomisasi

Tema standar DeviceDefault dan hamparan sumber daya berlaku. Jumlah tombol penyesuaian perilaku yang sangat terbatas tersedia di:

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

Pengaturan

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

Kustomisasi

Aplikasi Pengaturan memperhitungkan penyesuaian dan memperlihatkan beberapa jalan untuk penyesuaian.

  • bertema. Memungkinkan kustomisasi visual tentang bagaimana setiap jenis objek Preferensi akan dirender, termasuk:

    • Preference.DeviceDefault.CheckBoxPreference

    • Preference.DeviceDefault.DialogPreference.EditTextPreference

  • Kustomisasi hierarki. Untuk mengaktifkan:

    • Luncurkan ke fragmen root sewenang-wenang, 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 berpemilik 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 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 MediaSession dan MediaBrowser API. 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 . Media API berkembang dengan setiap rilis Android utama dan dengan rilis library Androidx . Untuk menjamin interoperabilitas API di semua aplikasi media dan versi Android yang akan datang, OEM sangat dianjurkan untuk mengambil implementasi AOSP dan kemudian menyesuaikannya.

Kustomisasi

Tema standar melalui tema DeviceDefault juga berlaku untuk Media. Selain itu, penyesuaian lebih lanjut dari tampilan dan nuansa dimungkinkan dengan hamparan sumber daya, asalkan penyesuaian berada dalam batas-batas pedoman UX.

Aplikasi Media lainnya

Media USB dan Sumber Media

Sedapat mungkin, sangat disarankan agar sumber media ini dicolokkan ke Media melalui implementasi MediaSession dan MediaBrowser API (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.