Ringkasan hardware abstraction layer (HAL)

Perangkat abstraksi hardware (HAL) adalah jenis lapisan abstraksi dengan antarmuka standar untuk diterapkan oleh vendor perangkat keras. HAL memungkinkan perangkat keras vendor untuk menerapkan fitur khusus perangkat tingkat yang lebih rendah tanpa memengaruhi atau memodifikasi kode di lapisan tingkat yang lebih tinggi.

Persyaratan yang diperlukan

Berikut adalah daftar definisi istilah yang digunakan di bagian ini dokumentasi:

Android Interface Definition Language (AIDL)
Bahasa mirip Java yang digunakan untuk menentukan antarmuka dengan cara yang tidak bergantung pada bahasa pemrograman yang digunakan. AIDL memungkinkan komunikasi antara Klien HAL dan layanan HAL.
HAL Terikat
HAL yang berkomunikasi dengan proses lain menggunakan komunikasi antar-proses binder (IPC) panggilan telepon. HAL terbiner berjalan dalam proses terpisah dari klien yang menggunakannya. HAL terbiner terdaftar di {i>service manager<i} sehingga klien dapat mengakses kemampuan mereka. HAL yang ditulis untuk Android 8 dan yang lebih tinggi adalah di-binderized.
Klien HAL
Proses yang mengakses layanan HAL.
Antarmuka HAL
Antarmuka umum yang digunakan klien dan layanan HAL untuk berkomunikasi.
Layanan HAL

Kode khusus perangkat keras, seperti kode yang membawa ke kamera perangkat. Anda harus menerapkan semua HAL yang diperlukan sebagaimana tercantum dalam matriks kompatibilitas untuk rilis yang Anda targetkan di partisi vendor Anda. Untuk informasi lebih lanjut tentang matriks kompatibilitas, lihat Matriks kompatibilitas.

Anda juga bisa membuat antarmuka HAL baru, atau memperluas antarmuka HAL, mendukung kemampuan unik perangkat keras Anda.

Hardware Interface Definition Language (HIDL)

Bahasa yang digunakan untuk mendefinisikan antarmuka dengan cara yang tidak bergantung pada bahasa pemrograman yang digunakan. HIDL memungkinkan komunikasi antara klien HAL dan layanan HAL.

HAL Proses yang Sama (SP)

Serangkaian HAL yang dibungkus terbatas. Keanggotaan dalam kumpulan dikontrol oleh Google. SP HAL meliputi:

  • Mapper C stabil 5 HAL
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (disediakan oleh sistem Android, selalu digabungkan)
  • android.hardware.renderscript@1.0
HAL Gabungan

Layanan HAL yang dibuat sebelum Android 8, tetapi telah digabungkan dalam Wrapper AIDL atau HIDL agar berfungsi dengan Android 8 dan yang lebih tinggi.

Apa selanjutnya?