Уровень аппаратной абстракции звука (HAL) в Android связывает высокоуровневые, специфичные для звука API-интерфейсы фреймворка android.media с базовыми аудиодрайверами и оборудованием. Аудио HAL определяет стандартный интерфейс, к которому обращаются аудиосервисы. Для корректной работы аудиооборудования необходимо реализовать аудио HAL.
На этой странице представлен обзор Audio HAL, а также подробная информация о его API и требованиях к реализации.
Аудиоинтерфейс HAL
Начиная с Android 14, интерфейс Audio HAL определяется с использованием AIDL . В более ранних версиях интерфейс Audio HAL определялся с использованием HIDL . Партнерам и производителям SoC рекомендуется переписать свои Audio HAL, чтобы обеспечить интерфейс AIDL.
Новые API HAL для функций, добавленных в Android 14 и выше, поддерживаются только при использовании реализации интерфейса AIDL. Начиная с Android 14, в реализацию HIDL новые API не добавляются.
Переход на AIDL и отказ от поддержки предыдущих основных версий Audio HAL освобождают дисковое пространство и оперативную память на устройствах. Это приводит к более удобному пользовательскому интерфейсу и позволяет внедрять новые функции, видимые конечным пользователям.
Для получения более подробной информации о различиях между AIDL и HIDL Audio HAL см. сравнение AIDL и HIDL.
Аудио HAL API
Аудио HAL содержит следующие API:
- Core HAL — это основной API, используемый AudioFlinger для воспроизведения звука и управления маршрутизацией аудиосигнала.
API Effects HAL используется фреймворком эффектов для управления звуковыми эффектами. Также через API Effects HAL можно настраивать эффекты предварительной обработки , такие как автоматическая регулировка усиления и подавление шума.
Common HAL API — это библиотека общих типов данных, используемых API Core и Effects HAL. Common HAL не имеет интерфейсов и связанных с ними тестов VTS, поскольку определяет только структуры данных.
Подробную информацию об AIDL и HIDL см. в описаниях AIDL Audio HAL и HIDL Audio HAL соответственно.
Требования
Помимо внедрения Audio HAL и создания файла конфигурации политики аудио, необходимо соблюдать следующие требования HAL:
Если захват звука для Sound Trigger (захват из буфера DSP с ключевым словом) поддерживается одним входным профилем, реализация должна поддерживать количество активных потоков в этом профиле, соответствующее количеству одновременных сессий, поддерживаемых Sound Trigger HAL.
Одновременная передача и захват голосовых вызовов из обработчика приложений описаны на странице «Одновременный захват» .