Kể từ Android 14, giao diện HAL âm thanh được xác định bằng AIDL ổn định. Đối tác và các nhà cung cấp hệ thống SoC nên triển khai lại lớp trừu tượng phần cứng (HAL) cho âm thanh Giao diện AIDL.
Việc mở rộng thư viện libaudiohal
sẽ thêm tính năng hỗ trợ khung cho AIDL HAL.
Khi triển khai AIDL, thông số kỹ thuật của cấu hình của chính sách âm thanh
đã chuyển sang AIDL HAL. Với thay đổi này, Trình quản lý chính sách âm thanh (APM) sẽ nhận được
cấu hình từ HAL thay vì sử dụng từ XML do nhà cung cấp cung cấp
.
API AIDL HAL cho âm thanh
Phần này mô tả các API cốt lõi, Hiệu ứng và HAL API phổ biến cho AIDL.
Sử dụng cách triển khai mặc định của API AIDL tại
/hardware/interfaces/audio/aidl/default/
làm tài liệu tham khảo khi triển khai các phiên bản HAL âm thanh mới
tương tác với các trình điều khiển nhân.
Xem Tệp HAL README về âm thanh đối với cấu trúc thư mục HAL âm thanh cho AIDL.
Lớp trừu tượng phần cứng (HAL) lõi
Một số giao diện chính của HAL Core, sử dụng AIDL, cụ thể như sau:
IModule.aidl
là điểm truy cập vào API.- Luồng có tính một chiều và được AudioFlinger sử dụng để gửi hoặc nhận
âm thanh đến và đi từ HAL qua
IStreamOut.aidl
vàIStreamIn.aidl
. ITelephony.aidl
cung cấp chế độ điều khiển dành riêng cho các chức năng điện thoại.IBluetooth.aidl
cung cấp các biện pháp kiểm soát BT SCO và HFP vào ngàyIPrimaryModule
trong HIDL API.IConfig.aidl
cung cấp các tham số cấu hình trên toàn hệ thống.ISoundDose.aidl
cung cấp tính năng hỗ trợ cường độ âm thanh. Xem phần Độ mạnh âm thanh để biết thêm thông tin.- Phiên bản mới nhất của API Core HAL đang phát triển đang trong
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Phiên bản mới nhất phát hành của API HAL API có trong
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
Lớp trừu tượng phần cứng (HAL) cho hiệu ứng
Sau đây là một số giao diện chính của HAL hiệu ứng (sử dụng AIDL):
IFactory.aidl
là điểm truy cập vào API.Descriptor.aidl
chứa tất cả thông tin như khả năng và để triển khai hiệu ứng.Capability.aidl
xác định các khả năng hiệu ứng không thay đổi trong thời gian chạy.Parameter.aidl
xác định tất cả tham số mà thực thể hiệu ứng hỗ trợ.IEffect.aidl
dùng để định cấu hình và kiểm soát các thực thể hiệu ứng cụ thể.Các bưu kiện dành riêng cho hiệu ứng được đặt tên theo hiệu ứng đó.
Phiên bản mới nhất của API HAL Hiệu ứng đang phát triển có trong
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.Phiên bản phát hành mới nhất của API HAL API đã có mặt
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
Xem phần Hiệu ứng âm thanh để tìm hiểu thêm của bạn.
Lớp trừu tượng phần cứng (HAL) phổ biến
Cấu trúc và giao diện dữ liệu được chia sẻ giữa các lớp HAL khác nhau, chẳng hạn như BT HAL, và hiệu ứng HAL âm thanh có trong HAL (Lớp trừu tượng phần cứng) chung.
Phiên bản mới nhất của Common AIDL HAL đang trong quá trình phát triển đã có
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.Phiên bản phát hành mới nhất của Common HAL API đã ra mắt
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
.
Các loại dữ liệu ổn định phổ biến
Định nghĩa về cấu trúc dữ liệu ổn định được cả HAL và khung sử dụng.
Phiên bản mới nhất của các loại dữ liệu ổn định đang phát triển đã có
/system/hardware/interfaces/media/aidl/android/media/audio/common/
.Phiên bản đã phát hành mới nhất của các loại dữ liệu ổn định có ở
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
Kiểm thử API Audio AIDL HAL
VTS mới được cung cấp các bài kiểm thử cho giao diện AIDL.
Không có thay đổi nào trong phiên bản HAL mới có thể ảnh hưởng đến tính bảo mật.