לאחר היצירה של מדיניות בנושא אודיו , עליכם לארוז את הטמעת ה-HAL בספרייה משותפת ומעתיקים אותו למיקום המתאים:
- יצירת
device/<company>/<device>/audio
כדי להכיל את קובצי המקור של הספרייה. - כדי ליצור את הספרייה המשותפת צריך ליצור קובץ
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)
- אם המוצר שלכם תומך באודיו בזמן אחזור קצר, כפי שצוין ב-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 \
- מעתיקים את קובץ התצורה של מדיניות האודיו שיצרתם קודם אל
תיקייה אחת (
system/etc/
) של המוצרdevice/<company>/<device>/device.mk
Makerfile. לדוגמה:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- להצהיר על המודולים המשותפים של ה-HAL של האודיו שנדרשים על ידי
במוצר
device/<company>/<device>/device.mk
Makefile. לדוגמה, ל-Galaxy Nexus יש צורך במכשיר ראשי וחיבור אודיו HAL ב-Bluetooth מודולים:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default