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