Ringkasan hardware abstraction layer (HAL)

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

Persyaratan yang diperlukan

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

Android Interface Definition Language (AIDL)
Bahasa seperti Java yang digunakan untuk menentukan antarmuka dengan cara yang independen dari 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 komunikasi antarproses (IPC) binder. HAL yang di-Binder berjalan dalam proses terpisah dari klien yang menggunakannya. HAL yang terikat didaftarkan ke pengelola layanan sehingga klien dapat mengakses kemampuannya. HAL yang ditulis untuk Android 8 dan yang lebih baru diikat.
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 berinteraksi dengan kamera perangkat tertentu Anda. Anda harus menerapkan semua HAL yang diperlukan yang tercantum dalam matriks kompatibilitas untuk rilis yang Anda targetkan di partisi vendor. Untuk mengetahui 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 independen dari bahasa pemrograman yang digunakan. HIDL memungkinkan komunikasi antara klien HAL dan layanan HAL.

HAL Proses yang Sama (SP)

Kumpulan HAL yang di-wrap terbatas. Keanggotaan dalam set dikontrol oleh Google. HAL SP mencakup:

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

Layanan HAL yang dibuat sebelum Android 8, tetapi telah di-wrap dalam wrapper AIDL atau HIDL agar berfungsi dengan Android 8 dan yang lebih tinggi.

Apa selanjutnya?