साझा लाइब्रेरी कॉन्फ़िगर करें

ऑडियो नीति कॉन्फ़िगरेशन बनाने के बाद, आपको एचएएल कार्यान्वयन को एक साझा पुस्तकालय में पैकेज करना होगा और इसे उचित स्थान पर कॉपी करना होगा:

  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 का एक उदाहरण यहां दिया गया है:

    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. यदि आपका उत्पाद एंड्रॉइड सीडीडी द्वारा निर्दिष्ट कम विलंबता ऑडियो का समर्थन करता है, तो संबंधित एक्सएमएल फीचर फ़ाइल को अपने उत्पाद में कॉपी करें। उदाहरण के लिए, आपके उत्पाद के device/<company>/<device>/device.mk :
    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. आपके द्वारा पहले बनाई गई ऑडियो नीति कॉन्फ़िगरेशन फ़ाइल को अपने उत्पाद के device/<company>/<device>/device.mk Makefile में system/etc/ निर्देशिका में कॉपी करें। उदाहरण के लिए:
    PRODUCT_COPY_FILES += \
            device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
    
    4

  5. अपने ऑडियो HAL के साझा मॉड्यूल की घोषणा करें जो आपके उत्पाद के लिए उत्पाद के device/<company>/<device>/device.mk Makefile में आवश्यक हैं। उदाहरण के लिए, गैलेक्सी नेक्सस को प्राथमिक और ब्लूटूथ ऑडियो एचएएल मॉड्यूल की आवश्यकता होती है:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default