หลังจากสร้างการกำหนดค่านโยบายเสียงแล้ว คุณต้องแพ็กเกจการติดตั้งใช้งาน 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 ด้วย ต่อไปนี้คือตัวอย่างAndroid.mk
จากฮาร์ดแวร์เสียงของ Galaxy NexusLOCAL_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)
- หากผลิตภัณฑ์รองรับเสียงที่มีเวลาในการตอบสนองต่ำตามที่ CDD ของ Android ระบุ ให้คัดลอกไฟล์ฟีเจอร์ 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/
ใน Makefile ของผลิตภัณฑ์device/<company>/<device>/device.mk
เช่น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