Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Jenis HAL

Di Android 8.0 dan lebih tinggi, lapisan tingkat bawah ditulis ulang untuk mengadopsi arsitektur baru yang lebih modular. Perangkat yang menjalankan Android 8.0 dan lebih tinggi harus mendukung HAL yang ditulis dalam HIDL, dengan beberapa pengecualian yang tercantum di bawah ini. HAL ini dapat di-binder atau passthrough. Di Android R, HAL yang ditulis dalam AIDL juga didukung. Semua AIDL HAL adalah binder.

  • HAL Binder. HAL diekspresikan dalam bahasa definisi antarmuka HAL (HIDL) atau bahasa antarmuka antarmuka Android (AIDL). HAL ini menggantikan HAL konvensional dan lawas yang digunakan di Android versi sebelumnya. Dalam Binderized HAL, kerangka kerja Android dan HAL berkomunikasi satu sama lain menggunakan panggilan komunikasi antar proses (IPC) binder. Semua perangkat yang diluncurkan dengan Android 8.0 atau yang lebih baru harus mendukung HAL binder saja.
  • Passthrough HALs. HAL yang dibungkus HIDL konvensional atau lawas . HAL ini membungkus HAL yang ada dan dapat melayani HAL dalam mode binder dan proses yang sama (passthrough). Peningkatan perangkat ke Android 8.0 dapat menggunakan passthrough HALs.

Persyaratan mode HAL

Alat Melewati Binder
Luncurkan dengan Android 8.0 HAL yang terdaftar di Passthrough HAL harus passthrough. Semua HAL lainnya adalah binder (termasuk HAL yang merupakan ekstensi vendor).
Tingkatkan ke Android 8.0 HAL yang terdaftar di Passthrough HAL harus passthrough. HAL yang tercantum dalam HAL Binder harus dibilang binder.
Semua HAL lain yang disediakan oleh gambar vendor dapat dalam mode passthrough ATAU binderized. Dalam perangkat yang sepenuhnya mematuhi Treble, semua ini harus di-binder.

HAL Binder

Android mengharuskan HALS berikut untuk di-binder pada semua perangkat Android terlepas dari apakah mereka meluncurkan perangkat atau meningkatkan perangkat:

  • android.hardware.biometrics.fingerprint@2.1 . Mengganti fingerprintd yang tidak lagi ada di Android 8.0.
  • android.hardware.configstore@1.0 . Baru di Android 8.0.
  • android.hardware.dumpstate@1.0 . Antarmuka asli yang disediakan oleh HAL ini tidak dapat diabaikan dan diubah. Karena itu, dumpstate_board harus diimplementasikan kembali pada perangkat yang diberikan (ini adalah HAL opsional).
  • android.hardware.graphics.allocator@2.0 . Diperlukan untuk di-binder di Android 8.0 sehingga deskriptor file tidak harus dibagi antara proses tepercaya dan tidak tepercaya.
  • android.hardware.radio@1.0 . Mengganti antarmuka yang disediakan oleh rild yang hidup dalam prosesnya sendiri.
  • android.hardware.usb@1.0 . Baru di Android 8.0.
  • android.hardware.wifi@1.0 . Baru di Android 8.0, menggantikan perpustakaan HAL Wi-Fi lama yang dimuat ke system_server .
  • android.hardware.wifi.supplicant@1.0 . Antarmuka HIDL melalui proses wpa_supplicant ada.

CATATAN : Android menyediakan antarmuka HIDL berikut yang akan selalu berada dalam mode binderized: android.frameworks.* , Android.system android.system.* , Dan android.hidl.* (Kecuali untuk android.hidl.memory@1.0 seperti dijelaskan di bawah).

Passthrough HALs

Android mengharuskan HAL berikut berada dalam mode passthrough pada semua perangkat Android terlepas dari apakah mereka meluncurkan perangkat atau meningkatkan perangkat:

  • android.hardware.graphics.mapper@1.0 . Memetakan memori ke dalam proses tempat tinggalnya.
  • android.hardware.renderscript@1.0 . Melewati item dalam proses yang sama (setara dengan openGL ).

Semua HAL yang tidak tercantum di atas harus di-binder untuk perangkat peluncuran.

HAL Proses yang Sama

HAL Proses-Sama (SP-HAL) selalu terbuka dalam proses yang sama dengan yang digunakan. Mereka termasuk semua HAL yang tidak diungkapkan dalam HIDL serta beberapa yang tidak binder. Keanggotaan dalam set SP-HAL dikendalikan hanya oleh Google, tanpa pengecualian.

SP-HAL meliputi:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (disediakan oleh sistem Android, selalu passthrough)
  • android.hardware.graphics.mapper@1.0 .
  • android.hardware.renderscript@1.0

HAL Konvensional & Warisan

HAL konvensional (tidak digunakan dalam Android 8.0) adalah antarmuka yang sesuai dengan antarmuka biner aplikasi (ABI) yang diberi nama dan versi tertentu. Sebagian besar antarmuka sistem Android ( kamera , audio , sensor , dll.) Adalah dalam bentuk HAL konvensional, yang didefinisikan dalam perangkat keras / libhardware / termasuk / perangkat keras .

Legacy HALs (juga tidak berlaku lagi di Android 8.0) adalah antarmuka yang ada sebelum HAL konvensional. Beberapa subsistem penting (Wi-Fi, Radio Interface Layer, dan Bluetooth) adalah HAL lawas. Meskipun tidak ada cara seragam atau standar untuk menggambarkan warisan HAL, apa pun yang mendahului Android 8.0 yang bukan HAL konvensional adalah warisan HAL. Bagian dari beberapa HAL warisan terkandung dalam libhardware_legacy , sementara bagian lainnya diselingi di seluruh basis kode.