Аудио ХАЛ

Уровень аппаратной абстракции звука (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.

  • Одновременная передача и захват голосовых вызовов из обработчика приложений описаны на странице «Одновременный захват» .