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
में है.
ज़्यादा जानकारी के लिए, ऑडियो इफ़ेक्ट देखें.
कॉमन एचएएल
डेटा स्ट्रक्चर और इंटरफ़ेस, अलग-अलग एचएएल के बीच शेयर किए जाते हैं. जैसे, BT HAL, कोर, और इफ़ेक्ट ऑडियो एचएएल. ये सभी Common HAL में होते हैं.
कॉमन एआईडीएल एचएएल का नया वर्शन डेवलप किया जा रहा है. यह
/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/
में है.
Audio AIDL HAL API की जांच करना
एआईडीएल इंटरफ़ेस के लिए, नए वीटीएस टेस्ट उपलब्ध कराए गए हैं.
HAL के नए वर्शन में ऐसे कोई बदलाव नहीं किए गए हैं जिनसे सुरक्षा पर असर पड़े.