إعداد مكتبة مشتركة

بعد إنشاء سياسة المحتوى الصوتي ، يجب حزم تنفيذ HAL في مكتبة مشتركة ونسخه إلى الموقع المناسب:

  1. إنشاء device/<company>/<device>/audio الدليل لاحتواء الملفات المصدر في مكتبتك.
  2. أنشئ ملف 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)
    

  3. إذا كان منتجك يتيح استخدام وقت استجابة سريع كما هو محدّد في 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 \
    

  4. انسخ ملف إعداد سياسة الصوت الذي أنشأته سابقًا إلى دليل system/etc/ في نطاق منتجك ملف Makefile device/<company>/<device>/device.mk. مثلاً:
    PRODUCT_COPY_FILES += \
            device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
    

  5. يُرجى الإفصاح عن الوحدات المشتركة الخاصة بـ HAL الصوتية والتي يتطلبها المنتج في قائمة ملف device/<company>/<device>/device.mk على سبيل المثال، يتطلب Galaxy Nexus وجود HAL للصوت الأساسي والمزود بالبلوتوث الوحدات:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default