Après avoir créé une configuration de politique audio , vous devez regrouper l'implémentation HAL dans une bibliothèque partagée et la copier à l'emplacement approprié :
- Créez un répertoire
device/<company>/<device>/audio
pour contenir les fichiers source de votre bibliothèque. - Créez un fichier
Android.mk
pour créer la bibliothèque partagée. Assurez-vous que le Makefile contient la ligne suivante :LOCAL_MODULE := audio.primary.<device>
Votre bibliothèque doit être nommée
audio.primary.<device>.so
pour qu'Android puisse charger correctement la bibliothèque. La partieprimary
de ce nom de fichier indique que cette bibliothèque partagée est destinée au matériel audio principal situé sur l'appareil. Les noms de moduleaudio.a2dp.<device>
etaudio.usb.<device>
sont également disponibles pour les interfaces audio Bluetooth et USB. Voici un exemple d'Android.mk
du matériel audio 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)
- Si votre produit prend en charge l'audio à faible latence comme spécifié par le CDD Android, copiez le fichier de fonction XML correspondant dans votre produit. Par exemple, dans le
device/<company>/<device>/device.mk
de votre produit :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 \
- Copiez le fichier de configuration de la politique audio que vous avez créé précédemment dans le répertoire
system/etc/
du fichierdevice/<company>/<device>/device.mk
de votre produit. Par exemple :PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Déclarez les modules partagés de votre HAL audio requis par votre produit dans le
device/<company>/<device>/device.mk
du produit. Par exemple, le Galaxy Nexus nécessite les modules HAL audio principal et Bluetooth :PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default