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

پس‌از ایجاد پیکربندی خط‌مشی صوتی، باید پیاده‌سازی HAL را در کتابخانه مشترک بسته‌بندی کنید و آن را در مکان مناسب کپی کنید:

  1. device/<company>/<device>/audio دایرکتوری‌ای برای نگهداری فایل‌های منبع کتابخانه خود ایجاد کنید.
  2. برای ساختن کتابخانه مشترک، فایل Android.mk ایجاد کنید. مطمئن شوید «فایل ساخت» حاوی خط زیر باشد:
    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. اگر محصولتان از صدای با تأخیر کم که در Android CDD مشخص شده است پشتیبانی می‌کند، فایل ویژگی 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. واحدهای مشترک «لایه انتزاع سخت‌افزاری» صوتی را که محصولتان به آن‌ها نیاز دارد در device/<company>/<device>/device.mk فایل Makefile محصول اعلام کنید. برای مثال، Galaxy Nexus به ماژول‌های HAL صوتی بلوتوث و اصلی نیاز دارد:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default