หลังจากสร้าง คอนฟิกูเรชันนโยบายเสียง คุณต้องทำแพ็กเกจการนำ 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>
สามารถใช้ได้กับอินเทอร์เฟซเสียง Bluetooth และ USB นี่คือตัวอย่างของAndroid.mk
จากฮาร์ดแวร์เสียงของ Galaxy Nexus: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 \
- คัดลอกไฟล์การกำหนดค่านโยบายเสียงที่คุณสร้างไว้ก่อนหน้านี้ไปยังไดเร็กทอรี
system/etc/
ในdevice/<company>/<device>/device.mk
Makefile ของผลิตภัณฑ์ของคุณ ตัวอย่างเช่น:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- ประกาศโมดูลที่ใช้ร่วมกันของ HAL เสียงของคุณที่จำเป็นสำหรับผลิตภัณฑ์ของคุณใน
device/<company>/<device>/device.mk
Makefile ตัวอย่างเช่น Galaxy Nexus ต้องใช้โมดูล HAL แบบเสียงหลักและบลูทูธ:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default