配置共享库
本文最后更新于 2024年5月6日 晚上
创建音频政策配置后,您必须将 HAL 实现打包到共享库中,并将其复制到相应位置:
创建一个
device/<company>/<device>/audio
目录以包含您的库的源文件。创建一个
Android.mk
文件以构建共享库。确保 Makefile 包含以下行:1
LOCAL_MODULE := audio.primary.<device>
您的库必须命名为
audio.primary.<device>.so
,以便 Android 可以正确加载库。此文件名的primary
部分表示此共享库用于设备上的主要音频硬件。模块名称audio.a2dp.<device>
和audio.usb.<device>
也可用于蓝牙和 USB 音频接口。以下是 Galaxy Nexus 音频硬件的Android.mk
示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15LOCAL_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 中:1
2
3
4PRODUCT_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/
目录下。例如:1
2PRODUCT_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 模块:1
2
3PRODUCT_PACKAGES += \
audio.primary.tuna \
audio.a2dp.default
转载自Android官网,原文地址: https://source.android.com/docs/core/audio/implement-shared-library?hl=zh-cn