创建音频政策配置后,您必须将 HAL 实现打包到共享库中,并将其复制到相应位置:
- 创建一个
device/<company>/<device>/audio
目录以包含您的库的源文件。 - 创建一个
Android.mk
文件以构建共享库。确保 Makefile 包含以下行:
LOCAL_MODULE := audio.primary.<device>
您的库必须命名为
audio.primary.<device>.so
,以便 Android 可以正确加载库。此文件名的primary
部分表示此共享库用于设备上的主要音频硬件。模块名称audio.a2dp.<device>
和audio.usb.<device>
也可用于蓝牙和 USB 音频接口。以下是 Galaxy Nexus 音频硬件的Android.mk
示例:LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := audio.primary.tuna LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_SRC_FILES := audio_hw.c ril_interface.c LOCAL_C_INCLUDES += \ external/tinyalsa/include \ $(call include-path-for, audio-utils) \ $(call include-path-for, audio-effects) LOCAL_SHARED_LIBRARIES := liblog libcutils libtinyalsa libaudioutils libdl LOCAL_MODULE_TAGS := optional include $(BUILD_SHARED_LIBRARY)
- 如果您的产品支持 Android CDD 指定的低延迟音频,请将相应的 XML 功能文件复制到您的产品中。例如,在您产品的
device/<company>/<device>/device.mk
Makefile 中:PRODUCT_COPY_FILES := ... PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \
- 将您之前创建的音频政策配置文件复制到您产品的
device/<company>/<device>/device.mk
Makefile 的system/etc/
目录下。例如:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- 在您产品的
device/<company>/<device>/device.mk
Makefile 中声明您的产品所需的音频 HAL 的共享模块。例如,Galaxy Nexus 需要主要音频 HAL 模块和蓝牙音频 HAL 模块:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default