Kể từ Android 14, giao diện Audio HAL được xác định bằng AIDL ổn định. Các đối tác và nhà cung cấp SoC nên triển khai lại Audio HAL để cung cấp 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.
Với việc triển khai AIDL, thông số kỹ thuật về cấu hình chính sách âm thanh sẽ đượ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.
Audio AIDL HAL API
Phần này mô tả các API HAL Core, Effects và Common cho AIDL.
Sử dụng 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 mới của Audio HAL tương tác với trình điều khiển hạt nhân.
Hãy xem tệp README của Audio HAL để biết cấu trúc thư mục Audio HAL cho AIDL.
HAL cốt lõi
Sau đây là một số giao diện chính của Core HAL, sử dụng AIDL:
IModule.aidl
là điểm truy cập vào API.- Luồng là một chiều và được AudioFlinger dùng để gửi hoặc nhận âm thanh đến và đi từ HAL thông qua
IStreamOut.aidl
vàIStreamIn.aidl
. ITelephony.aidl
cung cấp các chế độ kiểm soát dành riêng cho các chức năng điện thoại.IBluetooth.aidl
cung cấp các chế độ kiểm soát BT SCO và HFP có trênIPrimaryModule
trong HIDL API.IConfig.aidl
cung cấp các thông số cấu hình trên toàn hệ thống.ISoundDose.aidl
hỗ trợ liều lượng âm thanh. Hãy xem phần 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 nằm trong
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - Phiên bản phát hành mới nhất của Core HAL API nằm trong
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
HAL hiệu ứng
Sau đây là một số giao diện chính của Effects HAL, 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ư các chức năng và thuộc tính cho một chế độ triển khai hiệu ứng.Capability.aidl
xác định các chức năng của 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ố mà thực thể hiệu ứng hỗ trợ.IEffect.aidl
được dùng để định cấu hình và kiểm soát các phiên bản hiệu ứng cụ thể.Các đối tượng có thể chuyển đổi 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 Effects HAL API đang được phát triển nằm trong
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.Phiên bản phát hành mới nhất của Effects HAL API nằm trong
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
.
Hãy xem phần Hiệu ứng âm thanh để biết thêm thông tin.
HAL chung
Các cấu trúc dữ liệu và giao diện được chia sẻ giữa nhiều HAL, chẳng hạn như BT HAL, HAL âm thanh cốt lõi và hiệu ứng nằm trong HAL chung.
Phiên bản mới nhất của HAL AIDL chung đang được phát triển nằm 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 nằm 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ả HAL và khung đều sử dụng các định nghĩa cấu trúc dữ liệu ổn định.
Phiên bản mới nhất của các kiểu dữ liệu ổn định đang được phát triển nằm trong
/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 kiểu dữ liệu ổn định nằm trong
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
.
Kiểm thử API HAL AIDL âm thanh
Các kiểm thử 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 tính bảo mật.