建立音訊政策設定後,您必須將 HAL 實作項目封裝至共用程式庫,並複製至適當位置:
- 建立
device/<company>/<device>/audio
目錄,用於容納程式庫的來源檔案。 - 建立
Android.mk
檔案來建構共用程式庫。確認 Makefile 包含下列程式碼行:
LOCAL_MODULE := audio.primary.<device>
您的程式庫必須命名為
audio.primary.<device>.so
,才能讓 Android 正確載入程式庫。檔案名稱中的primary
部分表示這個共用程式庫適用於裝置上的主要音訊硬體。藍牙和 USB 音訊介面也適用於模組名稱audio.a2dp.<device>
和audio.usb.<device>
。以下是 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