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

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