Bắt đầu từ Android 14, giao diện Audio HAL được xác định bằng cách sử dụng Stable AIDL . Các đối tác và nhà cung cấp SoC được khuyến khích triển khai lại Audio HAL của họ để cung cấp giao diện AIDL.
Việc mở rộng thư viện libaudiohal
sẽ bổ sung thêm hỗ trợ khung cho AIDL HAL. Với việc triển khai AIDL, đặc tả cấu hình chính sách âm thanh được 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ấu hình từ HAL thay vì sử dụng cấu hình đó từ tệp XML do nhà cung cấp cung cấp.
API AIDL HAL âm thanh
Phần này mô tả các API HAL cốt lõi, Hiệu ứng và HAL phổ biến cho AIDL.
Sử dụng 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 mới của Audio HAL tương tác với trình điều khiển hạt nhân.
Xem tệp Audio HAL README để biết cấu trúc thư mục Audio HAL cho AIDL.
HAL lõi
Một số giao diện chính của Core HAL , sử dụng AIDL, như sau:
-
IModule.aidl
là điểm vào API. - Các luồng là một chiều và được AudioFlinger sử dụng để gửi hoặc nhận âm thanh đến và từ HAL thông qua
IStreamOut.aidl
vàIStreamIn.aidl
. -
ITelephony.aidl
cung cấp các điều khiển cụ thể cho các chức năng điện thoại. -
IBluetooth.aidl
cung cấp các điều khiển BT SCO và HFP có trênIPrimaryModule
trong API HIDL. -
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 hỗ trợ về liều lượng âm thanh. Xem Liều lượng âm thanh để biết thêm thông tin. - Phiên bản mới nhất của Core HAL API đang được phát triển có trong
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Phiên bản phát hành mới nhất của API Core HAL có trong
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
Hiệu ứng HAL
Một số giao diện chính của Effects HAL, sử dụng AIDL, như sau:
-
IFactory.aidl
là điểm vào API. -
Descriptor.aidl
chứa tất cả thông tin như khả năng và thuộc tính để 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ả các tham số được hỗ trợ bởi phiên bản hiệu ứng. -
IEffect.aidl
được sử dụng để định cấu hình và kiểm soát các trường hợp 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 Effects HAL đang được 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 Effects HAL có trong
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
Xem Hiệu ứng âm thanh để biết thêm thông tin.
HAL thông thường
Cấu trúc dữ liệu và giao diện được chia sẻ giữa các HAL khác nhau như BT HAL, lõi và hiệu ứng HAL âm thanh nằm trong HAL chung.
Phiên bản mới nhất của Common AIDL HAL đang được phát triển có trong
/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 có trong
/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
Các định nghĩa cấu trúc dữ liệu ổn định được cả HAL và framework sử dụng.
Phiên bản mới nhất của các loại dữ liệu ổn định đang được phát triển có trong
/system/hardware/interfaces/media/aidl/android/media/audio/common/
.Phiên bản mới nhất được phát hành của các loại dữ liệu ổn định có trong
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
Kiểm tra API AIDL HAL âm thanh
Các thử nghiệm VTS mới được cung cấp 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 bảo mật.