
Уровень абстракции оборудования для аудио Android (HAL) связывает высокоуровневые API-интерфейсы фреймворка, специфичные для аудио, в android.media с базовым аудиодрайвером и оборудованием. Этот раздел содержит инструкции по реализации и советы по повышению производительности.
Архитектура звука Android определяет, как реализуются функции звука, и указывает на соответствующий исходный код, задействованный в реализации.

Рисунок 1. Архитектура звука Android
- Структура приложения
 - Фреймворк приложения включает код приложения, который использует API android.media для взаимодействия с аудиооборудованием. Внутри этот код вызывает соответствующие связующие классы JNI для доступа к нативному коду, взаимодействующему с аудиооборудованием.
 - JNI
 -  Код JNI, связанный с android.media, вызывает низкоуровневый нативный код для доступа к аудиооборудованию. JNI находится в 
frameworks/base/core/jni/иframeworks/base/media/jni. - Собственный фреймворк
 -  Нативный фреймворк предоставляет нативный эквивалент пакета android.media , вызывая прокси-серверы Binder IPC для доступа к аудиосервисам медиасервера. Код нативного фреймворка находится в 
frameworks/av/media/libmedia. - Связующее IPC
 -  Прокси-серверы Binder IPC облегчают взаимодействие через границы процессов. Прокси-серверы находятся в 
frameworks/av/media/libmediaи начинаются с буквы «I». - Медиа-сервер
 -  Медиасервер содержит аудиосервисы, которые фактически представляют собой код, взаимодействующий с вашими реализациями HAL. Медиасервер находится в 
frameworks/av/services/audioflinger. - ХЭЛ
 -  HAL определяет стандартный интерфейс, к которому обращаются аудиосервисы и который необходимо реализовать для корректной работы аудиооборудования. Подробнее см. в описании аудиоинтерфейса HAL и комментариях в файлах 
*.halв каталоге соответствующей версии HAL. - Драйвер ядра
 -  Аудиодрайвер взаимодействует с вашим оборудованием и реализацией HAL. Вы можете использовать Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS) или пользовательский драйвер (HAL не зависит от драйвера).
Примечание : если вы используете ALSA, мы рекомендуем
external/tinyalsaдля пользовательской части драйвера из-за ее совместимого лицензирования (стандартная библиотека пользовательского режима имеет лицензию GPL). - Собственный звук Android на основе Open SL ES (не показан)
 - Этот API предоставляется как часть Android NDK и находится на том же уровне архитектуры, что и android.media .