Kể từ Android 16, giao diện AIDL Audio HAL hỗ trợ đầy đủ Chính sách âm thanh có thể định cấu hình (CAP).
Trang này cung cấp thông tin cơ bản về kỹ thuật cần thiết để hỗ trợ các đối tác và nhà cung cấp SoC trong việc di chuyển cấu hình chính sách âm thanh.
Khung tham số
Việc triển khai CAP dựa trên Khung tham số Intel. CAP được giới thiệu trong Android 6. Khung tham số (PfW) cho phép mô tả một hệ thống theo tham số. Bằng cách sử dụng tệp XML cấu hình, PfW liên kết các tham số với các hành động bằng trình bổ trợ và cung cấp các quy tắc để thay đổi các tham số theo tiêu chí hiện tại.
Cấu trúc của CAP trong HIDL
Trong HIDL, tất cả cấu hình cho CAP đều được chỉ định trong XML. Hãy xem Khung tham số và Cấu hình bằng Khung tham số để biết thêm thông tin. Tệp XML được dùng để chỉ định những thông tin sau:
- Nội dung mô tả cấu trúc của các tham số (tức là nội dung mô tả miền âm thanh cho PfW)
- Định nghĩa về tiêu chí
- Quy tắc cho chiến lược định tuyến (lựa chọn thiết bị đầu vào và đầu ra)
- Thông số kỹ thuật của bảng dung lượng
Với HIDL, khung Android có thể tải trực tiếp các tệp XML này từ phân vùng của nhà cung cấp. Điều này được cho phép vì một giản đồ XSD đã được xác định, như một phần của API HAL, cho các tệp XML này. Mỗi bản phát hành chính của HIDL HAL đều có một giản đồ XSD tương ứng. Các bản phát hành chính không yêu cầu khả năng tương thích ngược.
Cấu trúc của CAP trong AIDL
Khi chuyển sang AIDL, các bản phát hành API HAL phải vẫn tương thích ngược (theo thuật ngữ HIDL, mỗi bản phát hành của AIDL HAL là một bản cập nhật "nhỏ"). Bạn không thể sử dụng giản đồ XSD trong API HAL nữa vì không có cách nào xác định các bản cập nhật tương thích ngược cho giản đồ. Do đó, cấu hình trước đây được xác định trong các tệp XML hiện cần được HAL cung cấp bằng cách sử dụng các API AIDL. Để hỗ trợ việc này, cấu trúc của cấu hình CAP được chuyển đổi sang AIDL, tương tự như tệp XML Cấu hình chính sách âm thanh trong AIDL Audio HAL cho Android 15.
Cấu trúc dữ liệu cho CAP được thêm vào Các loại dữ liệu ổn định phổ biến và bao gồm các gói sau:
AudioHalCapConfiguration.aidl
AudioHalCapCriterionV2.aidl
AudioHalCapDomain.aidl
AudioHalCapParameter.aidl
AudioHalCapRule.aidl
Điểm truy cập cho cấu hình CAP nằm trong cấu trúc AudioHalEngineConfig.CapSpecificConfig
. Xem các nhận xét trong AudioHalCapConfiguration.aidl
để biết sơ đồ về cấu trúc dữ liệu CAP.
Quy trình triển khai mặc định của HAL AIDL chứa một lớp trình trợ giúp điền vào các gói AIDL dựa trên nội dung của các tệp XML CAP cũ để đơn giản hoá việc di chuyển cho các đối tác.
Tình huống di chuyển
Các đối tác có thể cân nhắc các lựa chọn được liệt kê trong phần này, dựa trên việc đây là lần đầu tiên ra mắt một sản phẩm chưa từng sử dụng CAP hay di chuyển một sản phẩm hiện có.
Sản phẩm mới
Đối với một sản phẩm mới bắt đầu sử dụng CAP để triển khai chính sách âm thanh, OEM có thể chọn sử dụng XML để lưu trữ cấu hình CAP ở phía nhà cung cấp.
Lợi ích của việc sử dụng XML là có một bộ công cụ tập lệnh hỗ trợ việc tạo cấu hình từ nội dung mô tả cấp cao.
Nếu OEM quyết định sử dụng XML để lưu trữ cấu hình CAP trên phân vùng của nhà cung cấp, thì bạn nên sử dụng phương thức triển khai mặc định của trình phân tích cú pháp XML để chuyển đổi cấu hình thành AIDL.
Nội dung cập nhật cho sản phẩm hiện có
Nếu sản phẩm đã sử dụng CAP và do đó có cấu hình XML, bạn có thể tiếp tục sử dụng CAP hiện có với phiên bản AIDL của HAL.
Quy ước đặt tên cho các chiến lược sản phẩm khác nhau trong phiên bản HIDL và AIDL của cấu hình CAP. Trong HIDL, các chiến lược tích hợp ("cũ") sử dụng tên ngắn viết thường như media
, trong khi trong AIDL, các chiến lược tích hợp sử dụng tên viết hoa toàn bộ có tiền tố là STRATEGY_
, ví dụ: STRATEGY_MEDIA
. Xem danh sách các chiến lược tích hợp sẵn trong CapProductStrategies.xml
.
Tệp này cũng xác định mã nhận dạng "được phân bổ trước" cho các chiến lược dành riêng cho nhà sản xuất thiết bị gốc (OEM) theo mẫu đặt tên vx_10xx
với các số từ 1000
đến 1039
.
Sản phẩm cũ
Nếu sản phẩm dựa trên CAP không cập nhật phân vùng nhà cung cấp và vẫn còn trên HIDL, bạn có thể cập nhật phân vùng hệ thống lên Android 16. Khung này vẫn tương thích với cấu hình CAP cũ.
Ví dụ về cách triển khai
Để giúp các đối tác triển khai CAP cho nền tảng của họ, AOSP có một ví dụ về phiên bản "ô tô" của thiết bị ảo Cuttlefish sử dụng CAP với AIDL HAL. Cấu hình dành riêng cho thiết bị nằm trong device/google/cuttlefish/shared/auto/audio/policy/engine, với tên mục tiêu lunch
là aosp_cf_x86_64_auto
. Bạn có thể sử dụng tệp Android.bp
làm tài liệu tham khảo để tạo bộ tệp nhà cung cấp CAP đầy đủ.