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