শেয়ার করা লাইব্রেরি কনফিগার করা

একটি অডিও নীতি কনফিগারেশন তৈরি করার পরে, আপনাকে অবশ্যই HAL ইমপ্লিমেন্টেশনকে একটি শেয়ার করা লাইব্রেরিতে প্যাকেজ করতে হবে এবং এটি উপযুক্ত লোকেশনে কপি করতে হবে:

  1. আপনার লাইব্রেরির সোর্স ফাইল রাখার জন্য একটি device/<company>/<device>/audio ডিরেক্টরি তৈরি করুন।
  2. শেয়ার করা লাইব্রেরি তৈরি করতে Android.mk ফাইল তৈরি করুন। Makefile-এ নিম্নলিখিত লাইন আছে কিনা দেখুন:
    LOCAL_MODULE := audio.primary.<device>
    

    আপনার লাইব্রেরির নাম অবশ্যই audio.primary.<device>.so হতে হবে যাতে Android সঠিকভাবে লাইব্রেরি লোড করতে পারে। এই ফাইলের নামের primary অংশটি ইঙ্গিত করে যে এই শেয়ার করা লাইব্রেরিটি ডিভাইসে থাকা প্রাথমিক অডিও হার্ডওয়্যারের জন্য। এছাড়াও, Bluetooth এবং USB অডিও ইন্টারফেসের জন্য মডিউলের নাম 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-তে উল্লেখ করা লো ল্যাটেন্সি অডিওতে কাজ করলে, সংশ্লিষ্ট 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. আপনার প্রোডাক্টের device/<company>/<device>/device.mk Makefile-এ system/etc/ ডিরেক্টরিতে আগে তৈরি করা অডিও নীতি কনফিগারেশন ফাইল কপি করুন। যেমন:
    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