Tổng quan về lớp trừu tượng phần cứng (HAL)

Lớp trừu tượng phần cứng (HAL) là loại lớp trừu tượng có giao diện tiêu chuẩn để nhà cung cấp phần cứng triển khai. HAL cho phép nhà cung cấp phần cứng triển khai các tính năng cấp thấp hơn dành riêng cho thiết bị mà không ảnh hưởng hoặc sửa đổi mã ở các lớp cấp cao hơn.

Điều khoản bắt buộc

Sau đây là danh sách định nghĩa cho các thuật ngữ được sử dụng trong phần tài liệu này:

Ngôn ngữ định nghĩa giao diện Android (AIDL)
Một ngôn ngữ giống Java dùng để xác định giao diện theo cách độc lập với ngôn ngữ lập trình đang dùng. AIDL cho phép giao tiếp giữa ứng dụng HAL và dịch vụ HAL.
Lớp trừu tượng phần cứng (HAL)
Một HAL giao tiếp với các quy trình khác bằng lệnh gọi giao tiếp liên quy trình (IPC) liên kết. HAL được liên kết chạy trong một quy trình riêng biệt với ứng dụng sử dụng chúng. HAL được liên kết được đăng ký với một trình quản lý dịch vụ để ứng dụng có thể truy cập vào các khả năng của mình. Các HAL được viết cho Android 8 trở lên được liên kết.
Ứng dụng HAL
Quy trình truy cập vào dịch vụ HAL.
Giao diện HAL
Giao diện chung mà cả ứng dụng và dịch vụ HAL đều sử dụng để giao tiếp.
Dịch vụ HAL

Mã dành riêng cho phần cứng, chẳng hạn như mã đưa đến máy ảnh của thiết bị cụ thể. Bạn phải triển khai tất cả các HAL bắt buộc được liệt kê trong ma trận tương thích cho bản phát hành mà bạn nhắm đến trong phân vùng nhà cung cấp. Để biết thêm thông tin về ma trận tương thích, hãy xem bài viết Ma trận tương thích.

Bạn cũng có thể tạo giao diện HAL mới hoặc mở rộng giao diện của HAL để hỗ trợ các tính năng độc đáo của phần cứng.

Ngôn ngữ định nghĩa giao diện phần cứng (HIDL)

Ngôn ngữ dùng để xác định giao diện độc lập với ngôn ngữ lập trình đang dùng. HIDL cho phép giao tiếp giữa ứng dụng HAL và các dịch vụ HAL.

Lớp trừu tượng phần cứng (HAL) trong cùng quy trình

Một bộ HAL được gói hạn chế. Tư cách thành viên trong nhóm này do Google kiểm soát. HAL SP bao gồm:

  • Trình lập bản đồ C ổn định 5 HAL
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (do hệ thống Android cung cấp, luôn được gói)
  • android.hardware.renderscript@1.0
Lớp trừu tượng phần cứng (HAL) đã bao bọc

Dịch vụ HAL được tạo trước Android 8 nhưng đã được gói trong một trình bao bọc AIDL hoặc HIDL để hoạt động với Android 8 trở lên.

Tiếp theo là gì?