Начиная с Android 16, интерфейс AIDL Audio HAL полностью поддерживает настраиваемую политику аудио (CAP).
На этой странице представлена необходимая техническая информация, которая поможет партнерам и поставщикам SoC в миграции конфигураций политик обработки звука.
Параметрическая структура
Реализация CAP основана на Intel Parameter Framework . CAP был представлен в Android 6. Parameter Framework (PfW) позволяет описывать систему с помощью параметров . Используя конфигурационный XML-файл, PfW связывает параметры с действиями с помощью плагинов и предоставляет правила для изменения параметров в соответствии с текущими критериями.
Структура CAP в HIDL
В HIDL вся конфигурация CAP указывалась в формате XML. См. разделы «Parameter Framework» и «Configuration using Parameter Framework» для получения дополнительной информации. XML-файлы использовались для указания следующих параметров:
- Описание структуры параметров (то есть описание аудиообласти для PfW).
- Определения критериев
- Правила для стратегий маршрутизации (выбор устройств ввода и вывода)
- Спецификация таблиц объемов
Благодаря HIDL, платформа Android смогла загружать эти XML-файлы непосредственно из раздела поставщика. Это стало возможным, поскольку для этих XML-файлов была определена схема XSD, являющаяся частью API HAL. Каждая основная версия HIDL HAL имела соответствующую схему XSD. Для основных версий не требовалась обратная совместимость.
Структура CAP в AIDL
При переходе на AIDL выпуски HAL API должны оставаться обратно совместимыми (в терминах HIDL каждый выпуск AIDL HAL является «незначительным» обновлением). XSD-схемы больше нельзя использовать в качестве части HAL API, поскольку нет установленного способа определения обратно совместимых обновлений схем. Следовательно, конфигурация, которая ранее определялась в XML-файлах, теперь должна предоставляться HAL с использованием AIDL API. Для этого структура конфигурации CAP преобразуется в AIDL, аналогично XML-файлам конфигурации политики аудио в AIDL Audio HAL для Android 15.
В общие стабильные типы данных для CAP добавлены структуры данных, в том числе следующие типы данных , допускающие разделение на участки:
-
AudioHalCapConfiguration.aidl -
AudioHalCapCriterionV2.aidl -
AudioHalCapDomain.aidl -
AudioHalCapParameter.aidl -
AudioHalCapRule.aidl
Точкой входа для настройки CAP является структура AudioHalEngineConfig.CapSpecificConfig . Схему структур данных CAP см. в комментариях к файлу AudioHalCapConfiguration.aidl .
В стандартной реализации AIDL HAL содержится вспомогательный класс , который заполняет разделяемые объекты AIDL на основе содержимого устаревших CAP XML-файлов, чтобы упростить миграцию для партнеров.
Сценарии миграции
Партнеры могут рассмотреть варианты, перечисленные в этом разделе, в зависимости от того, является ли это первый запуск продукта, который ранее не использовал CAP, или миграция существующего продукта.
Новый продукт
Для нового продукта, в котором для реализации аудиополитики используется протокол CAP, производитель может выбрать использование XML для хранения конфигурации CAP на стороне поставщика.
Преимущество использования XML заключается в наличии набора инструментов для написания скриптов , которые упрощают генерацию конфигурации на основе описания высокого уровня.
Если производитель оборудования решит использовать XML для хранения конфигурации CAP в разделе производителя, то рекомендуется использовать стандартную реализацию парсера XML для преобразования конфигурации в формат AIDL.
Обновление для существующего продукта
Если продукт уже использует CAP и, следовательно, имеет XML-конфигурацию, вы можете продолжить использовать существующий CAP с версией HAL, поддерживающей AIDL.
В версиях конфигурации CAP HIDL и AIDL используется система именования стратегий продуктов. В HIDL встроенные («устаревшие») стратегии используют короткие имена в нижнем регистре, например, media тогда как в AIDL встроенные стратегии используют имена, написанные заглавными буквами, с префиксом STRATEGY_ , например, STRATEGY_MEDIA . См. список встроенных стратегий в файле CapProductStrategies.xml . В этом же файле определены «предварительно выделенные» идентификаторы для стратегий, специфичных для OEM-производителей, которые соответствуют шаблону именования vx_10xx с числами от 1000 до 1039 .
Устаревший продукт
Если продукт, использующий CAP, не обновляет свой раздел поставщика и остается в режиме HIDL, вы можете обновить системный раздел до Android 16. При этом платформа останется совместимой с устаревшей конфигурацией CAP.
Пример реализации
Чтобы помочь партнерам внедрить CAP на своих платформах, AOSP предоставляет пример «автомобильной» версии виртуального устройства Cuttlefish, использующего CAP с AIDL HAL. Конфигурация для конкретного устройства находится в device/google/cuttlefish/shared/auto/audio/policy/engine , а имя целевого объекта lunch — aosp_cf_x86_64_auto . Файл Android.bp можно использовать в качестве образца для генерации полного набора файлов поставщика CAP.