הגדר ספרייה משותפת

לאחר יצירת תצורת מדיניות שמע , עליך לארוז את יישום 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> זמינים גם עבור ממשקי שמע Bluetooth ו-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 דורש את מודולי השמע הראשיים וה-Bluetooth HAL:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default