La couche d'abstraction matérielle audio (HAL) d'Android connecte les API de framework de niveau supérieur spécifiques à l'audio dans les pilotes et le matériel audio sous-jacents android.media
. Le HAL audio définit l'interface standard à laquelle les services audio appellent. Le HAL audio doit être implémenté pour que le matériel audio fonctionne correctement.
Cette page présente la HAL audio et fournit des détails sur son API et ses exigences d'implémentation.
Interface audio HAL
À partir d'Android 14, l'interface audio HAL est définie à l'aide d'AIDL. Pour les versions précédentes, l'interface HAL audio est définie à l'aide de HIDL. Les partenaires et les fournisseurs de SoC sont invités à réimplémenter leur HAL audio pour fournir une interface AIDL.
Les nouvelles API HAL pour les fonctionnalités ajoutées dans Android 14 et versions ultérieures ne sont compatibles qu'avec l'implémentation de l'interface AIDL. À partir d'Android 14, aucune nouvelle API n'est ajoutée à l'implémentation HIDL.
Le passage à AIDL, l'abandon et la suppression de la prise en charge des versions principales précédentes de l'HAL audio libère de l'espace disque et de la RAM sur les appareils. Cela permet d'améliorer l'expérience utilisateur et de proposer de nouvelles fonctionnalités visibles par les utilisateurs finaux.
Pour en savoir plus sur les différences entre l'AIDL et le HAL Audio HIDL, consultez la section Comparaison de l'AIDL et du HAL Audio HIDL.
API Audio HAL
Le HAL audio contient les API suivantes:
- Le Core HAL est l'API principale utilisée par AudioFlinger pour lire l'audio et contrôler le routage audio.
L'API HAL Effects est utilisée par le framework d'effets pour contrôler les effets audio. Vous pouvez également configurer des effets de prétraitement tels que la commande de gain automatique et la suppression du bruit via l'API HAL Effects.
L'API HAL commune est une bibliothèque de types de données courants utilisés par les API HAL Core et Effects. La HAL commune n'a pas d'interface ni de test VTS associé, car elle ne définit que des structures de données.
Pour en savoir plus sur AIDL et HIDL, consultez HAL audio AIDL et HAL audio HIDL.
Conditions requises
En plus d'implémenter le HAL Audio et de créer le fichier de configuration des règles audio, vous devez respecter les exigences HAL suivantes:
Si la capture pour Sound Trigger (capture à partir du tampon DSP du mot clé) est prise en charge par un profil d'entrée, l'implémentation doit prendre en charge le nombre de flux actifs sur ce profil correspondant au nombre de sessions simultanées prises en charge par le HAL Sound Trigger.
Concurrency of voice call TX and capture from the app processor as detailed on the Concurrent capture page.