بعد إنشاء سياسة المحتوى الصوتي ، يجب حزم تنفيذ 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 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
للمنتج ملف Make: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/
في نطاق منتجك ملف Makefiledevice/<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
على سبيل المثال، يتطلب Galaxy Nexus وجود HAL للصوت الأساسي والمزود بالبلوتوث الوحدات:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default