Trong Android 8.0 trở lên, các lớp cấp thấp hơn được viết lại để áp dụng kiến trúc mô-đun mới hơn. Các thiết bị chạy Android 8.0 trở lên phải hỗ trợ HAL được viết bằng HIDL, với một vài ngoại lệ được liệt kê bên dưới. Các HAL này có thể được kết dính hoặc truyền qua. Trong Android 11, HAL được viết bằng AIDL cũng được hỗ trợ. Tất cả các AIDL HAL đều được kết dính.
HALs liên kết . HAL được thể hiện bằng ngôn ngữ định nghĩa giao diện HAL (HIDL) hoặc ngôn ngữ định nghĩa giao diện Android (AIDL). Các HAL này thay thế cả HAL thông thường và cũ được sử dụng trong các phiên bản Android trước đó. Trong HAL được liên kết hóa, khung Android và HAL liên lạc với nhau bằng cách sử dụng các cuộc gọi liên lạc giữa các quá trình (IPC) liên kết. Tất cả các thiết bị khởi chạy với Android 8.0 trở lên chỉ được hỗ trợ HAL được liên kết.
HAL thông qua . HAL thông thường hoặc HAL kế thừa được bao bọc bằng HIDL Các HAL này bao bọc các HAL hiện có và có thể phục vụ HAL ở các chế độ liên kết và cùng quy trình (truyền qua). Các thiết bị nâng cấp lên Android 8.0 có thể sử dụng HAL thông qua.
Yêu cầu chế độ HAL
Thiết bị | thông qua | kết dính |
---|---|---|
Khởi chạy với Android 8.0 | HAL được liệt kê trong HAL thông qua phải là thông qua. | Tất cả các HAL khác đều được kết dính (bao gồm cả HAL là phần mở rộng của nhà cung cấp). |
Nâng cấp lên Android 8.0 | HAL được liệt kê trong HAL thông qua phải là thông qua. | HAL được liệt kê trong Binderized HALs phải được kết dính. |
Tất cả các HAL khác do hình ảnh nhà cung cấp cung cấp có thể ở chế độ truyền qua HOẶC liên kết. Trong một thiết bị hoàn toàn tuân thủ Treble, tất cả những thứ này phải được kết dính. |
HAL liên kết
Android yêu cầu HALS sau phải được liên kết trên tất cả các thiết bị Android bất kể chúng là thiết bị khởi chạy hay thiết bị nâng cấp:
-
android.hardware.biometrics.fingerprint@2.1
. Thay thếfingerprintd
không còn trong Android 8.0. -
android.hardware.configstore@1.0
. Mới trong Android 8.0. -
android.hardware.dumpstate@1.0
. Giao diện ban đầu được cung cấp bởi HAL này không thể được làm mờ và đã được thay đổi. Do đó,dumpstate_board
phải được triển khai lại trên một thiết bị nhất định (đây là HAL tùy chọn). -
android.hardware.graphics.allocator@2.0
. Bắt buộc phải được liên kết hóa trong Android 8.0 để các bộ mô tả tệp không phải được chia sẻ giữa các quy trình đáng tin cậy và không đáng tin cậy. -
android.hardware.radio@1.0
. Thay thế giao diện được cung cấp bởirild
sống trong quy trình riêng của nó. -
android.hardware.usb@1.0
. Mới trong Android 8.0. -
android.hardware.wifi@1.0
. Tính năng mới trong Android 8.0, thay thế thư viện Wi-Fi HAL cũ đã được tải vàosystem_server
-
android.hardware.wifi.supplicant@1.0
. Giao diện HIDL trên quy trìnhwpa_supplicant
hiện có.
HAL thông qua
Android yêu cầu các HAL sau phải ở chế độ chuyển tiếp trên tất cả các thiết bị Android bất kể chúng là thiết bị khởi chạy hay thiết bị nâng cấp:
-
android.hardware.graphics.mapper@1.0
. Ánh xạ bộ nhớ vào tiến trình mà nó tồn tại. -
android.hardware.renderscript@1.0
. Vượt qua các mục trong cùng một quy trình (tương đương vớiopenGL
).
Tất cả các HAL không được liệt kê ở trên phải được kết dính cho các thiết bị khởi chạy.
HAL cùng quy trình
HAL cùng quy trình (SP-HAL) luôn mở trong cùng quy trình mà chúng được sử dụng. Chúng bao gồm tất cả các HAL không được thể hiện trong HIDL cũng như một số không được kết dính. Tư cách thành viên trong bộ SP-HAL chỉ được kiểm soát bởi Google, không có ngoại lệ.
SP-HAL bao gồm:
-
openGL
-
Vulkan
-
android.hidl.memory@1.0
(được cung cấp bởi hệ thống Android, luôn thông qua) -
android.hardware.graphics.mapper@1.0
android.hardware.renderscript@1.0