오디오 HAL

Android의 오디오 하드웨어 추상화 계층(HAL)은 기본 오디오 드라이버 및 하드웨어인 android.media에 상위 수준의 오디오별 프레임워크 API를 연결합니다. 오디오 HAL은 오디오 서비스에서 호출하는 표준 인터페이스를 정의합니다. 오디오 하드웨어가 제대로 작동하려면 오디오 HAL을 구현해야 합니다.

이 페이지에서는 오디오 HAL에 관해 간략하게 설명하고 API 및 구현 요구사항의 세부정보를 제공합니다.

오디오 HAL 인터페이스

Android 14부터 오디오 HAL 인터페이스가 AIDL을 사용하여 정의됩니다. 이전 버전의 경우 오디오 HAL 인터페이스는 HIDL을 사용하여 정의됩니다. 파트너와 SoC 공급업체는 오디오 HAL을 재구현하여 AIDL 인터페이스를 제공하는 것이 좋습니다.

Android 14 이상에 추가된 기능의 새로운 HAL API는 AIDL 인터페이스 구현에서 지원됩니다. Android 14부터 HIDL 구현에 새로운 API는 추가되지 않습니다.

AIDL로 전환하고 이전 메이저 오디오 HAL 버전을 지원 중단하고 삭제하면 기기의 디스크 공간과 RAM이 확보됩니다. 이를 통해 UX가 더 원활해지고 최종 사용자를 위한 최신 사용자 표시 기능이 허용됩니다.

AIDL 및 HIDL 오디오 HAL의 차이점에 관한 자세한 내용은 AIDL 및 HIDL 오디오 HAL 비교를 참고하세요.

Audio HAL API

오디오 HAL에는 다음 API가 포함됩니다.

  • 핵심 HAL은 AudioFlinger에서 오디오 재생과 오디오 라우팅 제어를 위해 사용하는 기본 API입니다.
  • Effects HAL API는 효과 프레임워크에서 오디오 효과를 제어하는 데 사용됩니다. Effects HAL API를 통해 자동 게인 컨트롤 및 노이즈 제거와 같은 전처리 효과도 구성할 수 있습니다.

  • Common HAL API는 Core HAL API와 Effects HAL API에 사용되는 공통 데이터형의 라이브러리입니다. 공통 HAL은 데이터 구조만 정의하므로 인터페이스가 없고 연결된 VTS 테스트도 없습니다.

각 AIDL 및 HIDL에 관한 자세한 내용은 AIDL 오디오 HALHIDL 오디오 HAL을 참고하세요.

요구사항

오디오 HAL을 구현하고 오디오 정책 구성 파일을 만드는 것 외에도 다음 HAL 요구사항을 준수해야 합니다.

  • 사운드 트리거 캡처(핫워드 DSP 버퍼에서 캡처)가 하나의 입력 프로필에서 지원되는 경우 구현 시 사운드 트리거 HAL에서 지원하는 동시 세션 수에 상응하는 이 프로필의 활성 스트림 수를 지원해야 합니다.

  • 동시 캡처 페이지에 설명된 대로 앱 프로세서에서 음성 통화 TX 및 캡처를 동시에 실행합니다.