Android 14부터 오디오 HAL 인터페이스가 안정적인 AIDL을 사용하여 정의됩니다. 파트너와 SoC 공급업체는 오디오 HAL을 재구현하여 AIDL 인터페이스를 제공하는 것이 좋습니다.
libaudiohal
라이브러리를 확장하면 AIDL HAL의 프레임워크 지원이 추가됩니다.
AIDL 구현을 통해 오디오 정책 구성 사양은 AIDL HAL로 이동합니다. 이 변경으로 오디오 정책 관리자(APM)는 공급업체 제공 XML 파일에서 사용하는 대신 HAL에서 구성을 가져옵니다.
Audio AIDL HAL API
이 섹션에서는 AIDL용 Core, Effects, Common HAL API를 설명합니다.
커널 드라이버와 상호작용하는 오디오 HAL의 새 버전을 구현할 때 /hardware/interfaces/audio/aidl/default/
에서 AIDL API의 기본 구현을 참조로 사용합니다.
AIDL용 오디오 HAL 디렉터리 구조는 오디오 HAL 리드미 파일을 참고하세요.
핵심 HAL
AIDL을 사용하는 핵심 HAL의 주요 인터페이스는 다음과 같습니다.
IModule.aidl
은 API로 들어가는 진입점입니다.- 스트림은 단방향이며 AudioFlinger가
IStreamOut.aidl
,IStreamIn.aidl
을 통해 HAL과 오디오를 주고받는 데 사용됩니다. ITelephony.aidl
은 전화 통신 기능과 관련된 컨트롤을 제공합니다.IBluetooth.aidl
은 HIDL API의IPrimaryModule
에 있던 BT SCO 및 HFP 컨트롤을 제공합니다.IConfig.aidl
은 시스템 전체 구성 매개변수를 제공합니다.ISoundDose.aidl
은 음량 지원을 제공합니다. 자세한 내용은 음량을 참고하세요.- 개발 중인 최신 버전의 Core HAL API는
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
에 있습니다. - 출시된 최신 버전의 Core HAL API는
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
에 있습니다.
효과 HAL
AIDL을 사용하는 효과 HAL의 주요 인터페이스는 다음과 같습니다.
IFactory.aidl
은 API로 들어가는 진입점입니다.Descriptor.aidl
에는 효과 구현의 기능 및 속성과 같은 모든 정보가 포함되어 있습니다.Capability.aidl
은 런타임에 변경되지 않는 효과 기능을 정의합니다.Parameter.aidl
은 효과 인스턴스에서 지원되는 모든 매개변수를 정의합니다.IEffect.aidl
은 특정 효과 인스턴스를 구성하고 제어하는 데 사용됩니다.해당 효과의 이름을 딴 효과별 parcelable
개발 중인 최신 버전의 Effects HAL API는
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
에 있습니다.출시된 최신 버전의 Effects HAL API는
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
에 있습니다.
자세한 내용은 오디오 효과를 참고하세요.
공통 HAL
BT HAL, 핵심 및 효과 오디오 HAL 등 다양한 HAL 간에 공유되는 데이터 구조와 인터페이스는 공통 HAL에 있습니다.
개발 중인 최신 버전의 공통 AIDL HAL은
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
에 있습니다.출시된 최신 버전의 Common HAL API는
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
에 있습니다.
일반적인 안정적 데이터 유형
안정적인 데이터 구조 정의는 HAL과 프레임워크에서 모두 사용됩니다.
개발 중인 최신 버전의 안정적인 데이터 유형은
/system/hardware/interfaces/media/aidl/android/media/audio/common/
에 있습니다.출시된 최신 버전의 안정적인 데이터 유형은
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
에 있습니다.
Audio AIDL HAL API 테스트
새로운 VTS 테스트가 AIDL 인터페이스에 대해 제공됩니다.
보안에 영향을 미칠 수 있는 새 HAL 버전의 변경사항은 없습니다.