Android 14 और इसके बाद वाले वर्शन में, ऑडियो एचएएल इंटरफ़ेस को स्टेबल एआईडीएल का इस्तेमाल करके तय किया जाता है. पार्टनर और एसओसी वेंडर को, एआईडीएल इंटरफ़ेस उपलब्ध कराने के लिए, अपने ऑडियो एचएएल को फिर से लागू करने का सुझाव दिया जाता है.
libaudiohal लाइब्रेरी को बढ़ाने से, एआईडीएल एचएएल के लिए फ़्रेमवर्क का सपोर्ट मिलता है.
एआईडीएल को लागू करने के बाद, ऑडियो नीति कॉन्फ़िगरेशन की खास जानकारी को एआईडीएल एचएएल में ले जाया जाता है. इस बदलाव के बाद, ऑडियो पॉलिसी मैनेजर (एपीएम) को वेंडर की ओर से उपलब्ध कराई गई एक्सएमएल फ़ाइल से कॉन्फ़िगरेशन नहीं मिलता. इसके बजाय, उसे एचएएल से कॉन्फ़िगरेशन मिलता है.
ऑडियो एआईडीएल एचएएल एपीआई
इस सेक्शन में, एआईडीएल के लिए कोर, इफ़ेक्ट, और कॉमन एचएएल एपीआई के बारे में बताया गया है.
कर्नल ड्राइवर के साथ इंटरैक्ट करने वाले ऑडियो एचएएल के नए वर्शन लागू करते समय, रेफ़रंस के तौर पर
/hardware/interfaces/audio/aidl/default/
पर मौजूद, एआईडीएल एपीआई के डिफ़ॉल्ट तरीके का इस्तेमाल करें.
एआईडीएल के लिए, ऑडियो एचएएल डायरेक्ट्री स्ट्रक्चर के बारे में जानने के लिए, ऑडियो एचएएल की README फ़ाइल देखें.
कोर एचएएल
एआईडीएल का इस्तेमाल करने वाले कोर एचएएल के कुछ मुख्य इंटरफ़ेस, यहां दिए गए हैं:
IModule.aidlएपीआई में एंट्री पॉइंट है.- स्ट्रीम एकतरफ़ा होती हैं. इनका इस्तेमाल AudioFlinger, एचएएल को ऑडियो भेजने या उससे ऑडियो पाने के लिए करता है.
IStreamOut.aidlIStreamIn.aidl ITelephony.aidlटेलीफ़ोनी फ़ंक्शन के लिए खास कंट्रोल उपलब्ध कराता है.IBluetooth.aidlबीटी एसओसी और एचएफ़पी कंट्रोल उपलब्ध कराता है. ये कंट्रोल, एचआईडीएल एपीआई मेंIPrimaryModuleपर मौजूद थे.IConfig.aidlसिस्टम-वाइड कॉन्फ़िगरेशन पैरामीटर उपलब्ध कराता है.ISoundDose.aidlसाउंड डोज़ का सपोर्ट उपलब्ध कराता है. ज़्यादा जानकारी के लिए, साउंड डोज़ देखें.- कोर एचएएल एपीआई का डेवलप किया जा रहा सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/android/hardware/audio/core/में मौजूद है. - कोर एचएएल एपीआई का रिलीज़ किया गया सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/में मौजूद है.
इफ़ेक्ट एचएएल
एआईडीएल का इस्तेमाल करने वाले इफ़ेक्ट एचएएल के कुछ मुख्य इंटरफ़ेस यहां दिए गए हैं:
IFactory.aidlएपीआई में एंट्री पॉइंट है.Descriptor.aidlमें, इफ़ेक्ट को लागू करने से जुड़ी सभी जानकारी होती है. जैसे, क्षमताएं और एट्रिब्यूट.Capability.aidlमें, इफ़ेक्ट की उन क्षमताओं के बारे में बताया जाता है जिनमें रनटाइम के दौरान बदलाव नहीं होता.Parameter.aidlमें, इफ़ेक्ट इंस्टेंस के साथ काम करने वाले सभी पैरामीटर के बारे में बताया जाता है.IEffect.aidlका इस्तेमाल, इफ़ेक्ट के खास इंस्टेंस को कॉन्फ़िगर और कंट्रोल करने के लिए किया जाता है.इफ़ेक्ट के नाम पर रखे गए, इफ़ेक्ट के हिसाब से पार्सल किए जा सकने वाले डेटा.
इफ़ेक्ट एचएएल एपीआई का डेवलप किया जा रहा सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/में मौजूद है.इफ़ेक्ट एचएएल एपीआई का रिलीज़ किया गया सबसे नया वर्शन
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effectमें मौजूद है.
ज़्यादा जानकारी के लिए, ऑडियो इफ़ेक्ट देखें.
कॉमन एचएएल
डेटा स्ट्रक्चर और इंटरफ़ेस, कॉमन एचएएल में मौजूद होते हैं. इन्हें बीटी एचएएल, कोर और इफ़ेक्ट ऑडियो एचएएल जैसे कई एचएएल के बीच शेयर किया जाता है.
कॉमन एआईडीएल एचएएल का डेवलप किया जा रहा सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/android/hardware/audio/common/में मौजूद है.कॉमन एचएएल एपीआई का रिलीज़ किया गया सबसे नया वर्शन,
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/में मौजूद है.
कॉमन स्टेबल डेटा टाइप
स्टेबल डेटा स्ट्रक्चर की परिभाषाओं का इस्तेमाल, एचएएल और फ़्रेमवर्क, दोनों के लिए किया जाता है.
स्टेबल डेटा टाइप का डेवलप किया जा रहा सबसे नया वर्शन
/system/hardware/interfaces/media/aidl/android/media/audio/common/में मौजूद है.स्टेबल डेटा टाइप का रिलीज़ किया गया सबसे नया वर्शन,
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/में मौजूद है.
ऑडियो एआईडीएल एचएएल एपीआई की जांच करना
एआईडीएल इंटरफ़ेस के लिए, नए वीटीएस टेस्ट उपलब्ध कराए गए हैं.
एचएएल के नए वर्शन में कोई ऐसा बदलाव नहीं किया गया है जिससे सुरक्षा पर असर पड़ सकता है.