Android 8.0 ve sonraki sürümlerde, alt düzey katmanlar yeni, daha modüler bir mimariyi benimsemek için yeniden yazılmıştır. Android 8.0 ve sonraki sürümleri çalıştıran cihazlar, aşağıda listelenen birkaç istisna dışında HIDL'de yazılmış HAL'leri desteklemelidir. Bu HAL'ler ciltlenebilir veya geçişli olabilir. Android 11'de AIDL ile yazılmış HAL'ler de desteklenmektedir. Tüm AIDL HAL'leri bağlayıcıdır.
- Bağlanmış HAL'ler. HAL arabirim tanımlama dilinde (HIDL) veya Android arabirim tanımlama dilinde (AIDL) ifade edilen HAL'ler. Bu HAL'ler, Android'in önceki sürümlerinde kullanılan hem geleneksel hem de eski HAL'lerin yerini alır. Bir Binderized HAL'de, Android çerçevesi ve HAL'ler, bağlayıcı süreçler arası iletişim (IPC) çağrılarını kullanarak birbirleriyle iletişim kurar. Android 8.0 veya sonraki sürümlerle başlatılan tüm cihazlar yalnızca ciltlenmiş HAL'leri desteklemelidir.
- Geçiş HAL'leri. Geleneksel bir veya HIDL sarılmış eski HAL . Bu HAL'ler mevcut HAL'leri sarar ve HAL'a ciltlenmiş ve aynı işlem (geçiş) modlarında hizmet verebilir. Android 8.0'a yükseltme yapan cihazlar, geçiş HAL'lerini kullanabilir.
HAL modu gereksinimleri
|Cihaz||geçiş||ciltlenmiş|
|Android 8.0 ile başlatın||Listelenen HAL'lere Passthrough HAL'lere passthrough olmalıdır.||Diğer tüm HAL'ler ciltlenir (satıcı uzantıları olan HAL'ler dahil).|
|Android 8.0'a yükseltin||Listelenen HAL'lere Passthrough HAL'lere passthrough olmalıdır.||Listelenen HAL'lere Binderized HAL'lere binderized edilmelidir.|
|Satıcı görüntüsü tarafından sağlanan diğer tüm HAL'ler geçişli VEYA ciltlenmiş modda olabilir. Tamamen Tiz uyumlu bir cihazda bunların hepsinin ciltlenmesi gerekir.|
Bağlanmış HAL'ler
Android, başlatma cihazları veya yükseltme cihazları olmalarına bakılmaksızın aşağıdaki HALS'lerin tüm Android cihazlarda ciltlenmesini gerektirir:
-
firstname.lastname@example.org. Yerini
fingerprintdartık Android'de 8.0 olan.
-
email@example.com. Android 8.0'da yeni.
-
firstname.lastname@example.org. Bu HAL tarafından sağlanan orijinal arayüz düzeltilemedi ve değiştirildi. Bu nedenle,
dumpstate_board(bu, isteğe bağlı bir HAL olan), belirli bir cihazda yeniden uygulanması gerekmektedir.
-
email@example.com. Dosya tanımlayıcılarının güvenilir ve güvenilmeyen işlemler arasında paylaşılmasına gerek kalmaması için Android 8.0'da ciltlenmesi gerekir.
-
firstname.lastname@example.org. Tarafından sağlanan arayüz değiştirir
rildkendi süreçte yaşıyor.
-
email@example.com. Android 8.0'da yeni.
-
firstname.lastname@example.org. Yeni Android 8.0, içine yüklendi eski Wi-Fi HAL kütüphanesi yerini
system_server.
-
email@example.com. Varolan üzerinde bir HIDL arayüzü
wpa_supplicantsüreç.
NOT: Android her zaman binderized modunda olacaktır aşağıdaki HIDL arabirimleri sağlar
android.frameworks.* ,
android.system.* , Ve
android.hidl.* (Hariç
firstname.lastname@example.org aşağıda açıklandığı gibi).
Geçiş HAL'leri
Android, başlatma cihazları veya yükseltme cihazları olmalarına bakılmaksızın aşağıdaki HAL'lerin tüm Android cihazlarda geçiş modunda olmasını gerektirir:
-
email@example.com. Belleği, içinde yaşadığı süreçle eşler.
-
firstname.lastname@example.org. (Eşdeğer aynı süreçte öğeleri geçirir
openGL).
Yukarıda listelenmeyen tüm HAL'ler, başlatma aygıtları için ciltlenmelidir.
Aynı İşlem HAL'leri
Aynı İşlem HAL'leri (SP-HAL'ler) her zaman kullanıldıkları işlemde açılır. Hepsi HIDL ifade edilmeyen HAL'lerin yanı sıra binderized olmadığını bazılarını içerir. SP-HAL kümesindeki üyelik, istisna olmaksızın yalnızca Google tarafından kontrol edilir.
SP-HAL'ler şunları içerir:
-
openGL
-
Vulkan
-
email@example.com(Android sistemi tarafından sağlanan her zaman passthrough)
-
firstname.lastname@example.org.
-
email@example.com
Geleneksel ve eski HAL'ler
Geleneksel HAL'ler (Android 8.0'da kullanımdan kaldırılmıştır), belirli bir adlandırılmış ve sürümlendirilmiş uygulama ikili arabirimine (ABI) uyan arabirimlerdir. Android sistem arayüzleri (kütle kamera , ses , sensörler , vs.) için tarif edildiği geleneksel HAL'lere, şeklinde olan donanım / libhardware / bulunmaktadır / donanım .
Eski HAL'ler (Android 8.0'da da kullanımdan kaldırılmıştır), geleneksel HAL'lerden önce gelen arabirimlerdir. Birkaç önemli alt sistem (Wi-Fi, Radyo Arabirim Katmanı ve Bluetooth) eski HAL'lerdir. Eski bir HAL'ı tanımlamanın tek tip veya standart bir yolu olmasa da, geleneksel bir HAL olmayan Android 8.0'dan önceki her şey eski bir HAL'dir. Bazı eski HAL'lere Parçaları içerdiği libhardware_legacy diğer bölümleri kod temeli boyunca serpiştirilmiş edilirken,.