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 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ẽ lấy cấu hình từ HAL thay vì lấy cấu hình từ tệp XML do nhà cung cấp cung cấp.
API AIDL HAL cho âm thanh
Phần này mô tả các API Core, Effects và HAL phổ biến cho AIDL.
Sử dụng phương thức 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 HAL âm thanh tương tác với trình điều khiển nhân.
Hãy xem tệp README về Audio HAL để biết cấu trúc thư mục Audio HAL cho AIDL.
Core HAL
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 sử 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ế độ đ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 chế độ điều khiển BT SCO và HFP trênIPrimaryModule
trong API HIDL.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 âm thanh. Hãy xem phần Liều âm thanh để biết thêm thông tin.- Phiên bản mới nhất của API Core HAL đ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 API Core HAL 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 tính năng và thuộc tính để triển khai hiệu ứng.Capability.aidl
xác định các tính 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ố 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 thực thể hiệu ứng cụ thể.Các đối tượng có thể phân phố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 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 hiệu ứng có 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 như BT HAL, cốt lõi và hiệu ứng HAL âm thanh nằm trong HAL chung.
Phiên bản mới nhất của Đang phát triển HAL AIDL chung trong
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
.Phiên bản đã phát hành mới nhất của API HAL chung 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ác định nghĩa 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 đượ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 loại 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 chương trình 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.