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 lebih tinggi.
Persyaratan yang diperlukan
Berikut adalah daftar definisi untuk istilah yang digunakan di 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 antarproses (IPC) pengikat. 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 baru 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 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 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. Keanggotaan dalam kumpulan dikontrol oleh Google. HAL SP mencakup:
- Mapper C stabil 5 HAL
- 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?
- Untuk mempelajari cara mengimplementasikan layanan HAL, lihat AIDL untuk HAL.
- Untuk mempelajari cara membuat atau memperluas HAL yang sudah ada, lihat Antarmuka yang diperluas yang terpasang.