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