Dopo aver creato una configurazione delle norme relative all'audio, devi pacchettizzare l'implementazione HAL in una libreria condivisa e copiarla nella posizione appropriata:
- Crea una directory
device/<company>/<device>/audio
per contenere i file di origine della libreria. - Crea un file
Android.mk
per compilare la libreria condivisa. Assicurati che il file Makefile contenga la seguente riga:
LOCAL_MODULE := audio.primary.<device>
La libreria deve avere il nome
audio.primary.<device>.so
in modo che Android possa caricarla correttamente. La parteprimary
di questo nome file indica che questa raccolta condivisa è destinata all'hardware audio principale situato sul dispositivo. I nomi dei moduliaudio.a2dp.<device>
eaudio.usb.<device>
sono disponibili anche per le interfacce audio Bluetooth e USB. Ecco un esempio diAndroid.mk
dall'hardware audio di 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)
- Se il tuo prodotto supporta l'audio a bassa latenza come specificato dal CDD di Android,
copia il file delle funzionalità XML corrispondente nel tuo prodotto. Ad esempio, nel
device/<company>/<device>/device.mk
Makefile del tuo prodotto: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 \
- Copia il file di configurazione dei criteri audio che hai creato in precedenza nella directory
system/etc/
nel file Makefilesystem/etc/
del tuo prodotto.device/<company>/<device>/device.mk
Ad esempio:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Dichiara i moduli condivisi dell'HAL audio richiesti dal prodotto nel
device/<company>/<device>/device.mk
Makefile del prodotto. Ad esempio, Galaxy Nexus richiede i moduli HAL audio principali e Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default