創建音頻策略配置後,您必須將 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 模塊:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default