Après avoir créé règle audio configuration, vous devez empaqueter l'implémentation HAL dans une bibliothèque partagée et copiez-le à l'emplacement approprié:
- Créer un
device/<company>/<device>/audio
contenant les fichiers sources de votre bibliothèque. - Créez un fichier
Android.mk
pour créer la bibliothèque partagée. Assurez-vous que Makefile contient la ligne suivante:
LOCAL_MODULE := audio.primary.<device>
Votre bibliothèque doit être nommée
audio.primary.<device>.so
afin 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 contenu audio principal matériel situé sur l'appareil. Les noms des modulesaudio.a2dp.<device>
etaudio.usb.<device>
sont également disponibles pour les connexions Bluetooth et Interfaces audio USB Voici un exemple deAndroid.mk
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 caractéristiques XML
correspondant dans votre produit. Par exemple, dans votre
device/<company>/<device>/device.mk
du produit 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 \
- Copiez le fichier de configuration de la règle audio que vous avez créé précédemment dans le
Répertoire
system/etc/
dans le répertoiredevice/<company>/<device>/device.mk
. 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
Makefile. Par exemple, le Galaxy Nexus nécessite l'accès principal et le HAL audio Bluetooth. modules:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default