بعد إنشاء إعدادات سياسة الصوت، عليك تجميع تنفيذ 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.mkMakefile الخاص بمنتجاتك: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