शेयर की जा सकने वाली लाइब्रेरी कॉन्फ़िगर करना

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

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

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