Ringkasan hardware abstraction layer (HAL)

Hardware abstraction layer (HAL) adalah jenis lapisan abstraksi dengan antarmuka standar yang dapat diterapkan oleh vendor hardware. HAL memungkinkan vendor hardware menerapkan fitur khusus perangkat tingkat rendah tanpa memengaruhi atau mengubah kode di lapisan tingkat tinggi.

Istilah yang diperlukan

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

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 yang di-binder
HAL yang berkomunikasi dengan proses lain menggunakan panggilan binder inter-process communication (IPC). HAL yang di-binderkan berjalan dalam proses terpisah dari klien yang menggunakannya. HAL yang di-binderkan terdaftar dengan pengelola layanan sehingga klien dapat mengakses kemampuannya. HAL yang ditulis untuk Android 8 dan yang lebih tinggi di-binder.
Klien HAL
Proses yang mengakses layanan HAL.
Antarmuka HAL
Antarmuka umum yang digunakan oleh klien dan layanan HAL untuk berkomunikasi.
Layanan HAL

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

Anda juga dapat membuat antarmuka HAL baru, atau memperluas antarmuka HAL, untuk mendukung kemampuan unik hardware Anda.

Hardware Interface Definition Language (HIDL)

Bahasa yang digunakan untuk menentukan 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)

Kumpulan HAL yang digabungkan yang dibatasi. Langganan dalam set dikontrol oleh Google. HAL SP mencakup:

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

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?