Ringkasan hardware abstraction layer (HAL)

hardware abstraction layer (HAL) adalah jenis lapisan abstraksi dengan antarmuka standar untuk diimplementasikan oleh vendor hardware. HAL memungkinkan vendor hardware menerapkan fitur khusus perangkat level lebih rendah tanpa memengaruhi atau mengubah kode di lapisan di level 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 tanpa bergantung pada bahasa pemrograman yang digunakan. AIDL memungkinkan komunikasi antara klien HAL dan layanan HAL.
HAL Terikat
HAL yang berkomunikasi dengan proses lain menggunakan panggilan komunikasi antar-proses binder (IPC). HAL terbiner berjalan dalam proses terpisah dari klien yang menggunakannya. HAL Terbiner terdaftar di pengelola layanan agar klien dapat mengakses kemampuan mereka. HAL yang ditulis untuk Android 8 dan yang lebih tinggi akan di-binder.
Klien HAL
Proses yang mengakses layanan HAL.
Antarmuka HAL
Antarmuka umum yang digunakan klien dan layanan HAL untuk berkomunikasi.
Layanan HAL

Kode khusus hardware, seperti kode yang masuk ke kamera perangkat tertentu. Anda harus mengimplementasikan semua HAL yang diperlukan yang tercantum dalam matriks kompatibilitas untuk rilis yang ditargetkan di partisi vendor Anda. 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 tanpa 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 baru.

Apa selanjutnya?