بعد إنشاء تكوين نهج صوتي ، يجب عليك حزم تنفيذ 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)
- إذا كان منتجك يدعم الصوت منخفض التأخير كما هو محدد بواسطة 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/
في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