یک کتابخانه مشترک را پیکربندی کنید

پس از ایجاد یک پیکربندی خط مشی صوتی ، باید اجرای 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 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 \
    

  4. فایل پیکربندی خط مشی صوتی را که قبلاً ایجاد کرده‌اید در پوشه system/etc/ موجود در device/<company>/<device>/device.mk Makefile محصول خود کپی کنید. به عنوان مثال:
    PRODUCT_COPY_FILES += \
            device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
    

  5. ماژول های مشترک HAL صوتی خود را که مورد نیاز محصول شما هستند در device/<company>/<device>/device.mk Makefile اعلام کنید. برای مثال، Galaxy Nexus به ماژول‌های صوتی HAL اولیه و بلوتوث نیاز دارد:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default