Hỗ trợ Chính sách âm thanh có thể định cấu hình trong AIDL HAL

Kể từ Android 16, giao diện HAL âm thanh AIDL 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 cần thiết về kỹ thuật để hỗ trợ các đối tác và nhà cung cấp SoC trong quá trình 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 Intel Parameter Framework. CAP được giới thiệu trong Android 6. Parameter Framework (PfW) cho phép mô tả một hệ thống theo các 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 thao tác bằng cách sử dụng các 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 Khuôn khổ tham sốCấu hình bằng Khuôn khổ tham số để biết thêm thông tin. Các tệp XML được dùng để chỉ định những nội dung sau:

  • Nội dung mô tả về cấu trúc của các tham số (tức là nội dung mô tả về 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)
  • Quy cách của bảng âm 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ì lược đồ 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ó 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 HAL API phải duy trì khả năng tương thích ngược (theo thuật ngữ HIDL, mỗi bản phát hành AIDL HAL là một bản cập nhật "nhỏ"). Bạn không thể sử dụng giản đồ XSD nữa trong API HAL 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 được xác định trước đây 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. Để tạo điều kiện thuận lợi cho việc này, cấu trúc của cấu hình CAP sẽ được chuyển đổi thành AIDL, tương tự như XML cấu hình chính sách âm thanh trong HAL âm thanh AIDL 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 thường dùng và bao gồm các đối tượng có thể chuyển đổi thành gói sau:

Điểm truy cập cho cấu hình CAP nằm trong cấu trúc AudioHalEngineConfig.CapSpecificConfig. Xem phần nhận xét trong AudioHalCapConfiguration.aidl để biết sơ đồ cấu trúc dữ liệu CAP.

Việc triển khai mặc định của AIDL HAL chứa một lớp trợ giúp điền các đối tượng có thể đóng gói AIDL dựa trên nội dung của các tệp XML CAP cũ để đơn giản hoá quá trình di chuyển cho các đối tác.

Trường hợp di chuyển

Các đối tác có thể cân nhắc các lựa chọn như được liệt kê trong phần này, tuỳ thuộc vào việc đây có phải là lần đầu tiên ra mắt một sản phẩm chưa từng sử dụng CAP hay là quá trình di chuyển của 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 giúp tạo cấu hình từ nội dung mô tả cấp cao.

Nếu OEM quyết định dùng XML để lưu trữ cấu hình CAP trên phân vùng nhà cung cấp, thì bạn nên dùng chế độ 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.

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 các 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 sẵn ("cũ") sử dụng tên viết tắt bằng chữ thường như media, trong khi trong AIDL, các chiến lược tích hợp sẵn sử dụng tên viết hoa 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. Cùng một tệp xác định các mã nhận dạng "được phân bổ trước" cho các chiến lược dành riêng cho OEM tuân 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 vào CAP không cập nhật phân vùng nhà cung cấp và vẫ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 lunchaosp_cf_x86_64_auto. Bạn có thể dùng tệp Android.bp làm thông tin tham chiếu để tạo toàn bộ các tệp nhà cung cấp CAP.