Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Các loại HAL

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 số ngoại lệ được liệt kê bên dưới. Các HAL này có thể được ràng buộc hoặc chuyể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 ràng buộc.

  • HAL được 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à kế thừa được sử dụng trong các phiên bản Android trước đó. Trong HAL liên kết, khung Android và HAL giao tiếp với nhau bằng cách sử dụng lệnh gọi giao tiếp liên quá trình (IPC). Tất cả các thiết bị khởi chạy với Android 8.0 trở lên chỉ phải hỗ trợ HAL được ràng buộc.
  • Thông qua HALs. HAL thông thường hoặc kế thừa được bao bọc bởi HIDL. Các HAL này bao bọc các HAL hiện có và có thể phân phát HAL ở các chế độ được ràng buộc và cùng quy trình (chuyển qua). Các thiết bị nâng cấp lên Android 8.0 có thể sử dụng HAL chuyển qua.

Yêu cầu chế độ HAL

Thiết bị Chuyển qua Binderized
Khởi chạy với Android 8.0 HAL được liệt kê trong Passthrough HAL phải được chuyển qua. Tất cả các HAL khác đều được ràng buộc (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 Passthrough HAL phải được chuyển qua. HALs được liệt kê trong Binderized HALs phải được ràng buộc.
Tất cả các HAL khác được cung cấp bởi hình ảnh của nhà cung cấp có thể ở chế độ chuyển qua HOẶC ràng buộc. Trong một thiết bị hoàn toàn tương thích với Treble, tất cả những thứ này phải được ràng buộc.

HAL được liên kết

Android yêu cầu các HALS sau phải được ràng buộc 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 . Tính năng mới trong Android 8.0.
  • android.hardware.dumpstate@1.0 . Giao diện ban đầu do HAL này cung cấp không thể lung linh và đã bị 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 ràng buộc 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ởi rild nằm trong quy trình riêng của nó.
  • android.hardware.usb@1.0 . Tính năng 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ào system_server .
  • android.hardware.wifi.supplicant@1.0 . Giao diện HIDL trên quy trình wpa_supplicant hiện có.

LƯU Ý : Android cung cấp các giao diện HIDL sau sẽ luôn ở chế độ binderized: android.frameworks.* , android.system.*android.hidl.* (Ngoại trừ android.hidl.memory@1.0 như được mô tả bên dưới).

HAL thông qua

Android yêu cầu các HAL sau ở chế độ chuyển qua 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 quá trình nó tồn tại.
  • android.hardware.renderscript@1.0 . Chuyển các mục trong cùng một quy trình (tương đương với openGL ).

Tất cả các HAL không được liệt kê ở trên phải được ràng buộc cho các thiết bị khởi chạy.

HAL cùng quy trình

HAL cùng một quy trình (SP-HALs) luôn mở trong cùng một 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 ràng buộc. Tư cách thành viên trong nhóm SP-HAL chỉ do Google kiểm soát, không có ngoại lệ.

SP-HAL bao gồm những thứ sau:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (được cung cấp bởi hệ thống Android, luôn chuyển qua)
  • android.hardware.graphics.mapper@1.0 .
  • android.hardware.renderscript@1.0

HAL thông thường & kế thừa

HAL thông thường (không được dùng trong Android 8.0) là giao diện tuân theo giao diện nhị phân ứng dụng được đặt tên và có phiên bản cụ thể (ABI). Phần lớn các giao diện hệ thống Android ( camera , âm thanh , cảm biến , v.v.) ở dạng HAL thông thường, được định nghĩa theo phần cứng / libhardware / include / cứng .

HAL cũ (cũng không được dùng trong Android 8.0) là giao diện có trước HAL thông thường. Một số hệ thống con quan trọng (Wi-Fi, Lớp giao diện vô tuyến và Bluetooth) là HAL kế thừa. Mặc dù không có cách thống nhất hoặc tiêu chuẩn để mô tả HAL kế thừa, nhưng bất kỳ thứ gì có trước Android 8.0 không phải là HAL thông thường đều là HAL kế thừa. Các phần của một số HAL kế thừa được chứa trong libhardware_legacy , trong khi các phần khác nằm xen kẽ trong toàn bộ codebase.