एंड्रॉइड 14 से शुरू होकर, ऑडियो एचएएल इंटरफ़ेस को स्थिर एआईडीएल का उपयोग करके परिभाषित किया गया है। साझेदारों और एसओसी विक्रेताओं को एआईडीएल इंटरफ़ेस प्रदान करने के लिए अपने ऑडियो एचएएल को फिर से लागू करने के लिए प्रोत्साहित किया जाता है।
libaudiohal
लाइब्रेरी का विस्तार एआईडीएल एचएएल के लिए फ्रेमवर्क समर्थन जोड़ता है। एआईडीएल कार्यान्वयन के साथ, ऑडियो नीति कॉन्फ़िगरेशन विनिर्देश एआईडीएल एचएएल में स्थानांतरित हो गया है। इस परिवर्तन के साथ, ऑडियो पॉलिसी मैनेजर (एपीएम) को विक्रेता द्वारा प्रदत्त XML फ़ाइल से उपभोग करने के बजाय HAL से कॉन्फ़िगरेशन प्राप्त होता है।
ऑडियो एआईडीएल एचएएल एपीआई
यह अनुभाग एआईडीएल के लिए कोर, इफेक्ट्स और सामान्य एचएएल एपीआई का वर्णन करता है।
कर्नेल ड्राइवरों के साथ इंटरैक्ट करने वाले ऑडियो एचएएल के नए संस्करणों को लागू करते समय संदर्भ के रूप में /hardware/interfaces/audio/aidl/default/
पर एआईडीएल एपीआई के डिफ़ॉल्ट कार्यान्वयन का उपयोग करें।
AIDL के लिए ऑडियो HAL निर्देशिका संरचना के लिए ऑडियो HAL README फ़ाइल देखें।
कोर एचएएल
एआईडीएल का उपयोग करते हुए कोर एचएएल के कुछ प्रमुख इंटरफेस इस प्रकार हैं:
-
IModule.aidl
एपीआई में प्रवेश बिंदु है। - स्ट्रीम यूनिडायरेक्शनल हैं और ऑडियोफ्लिंगर द्वारा
IStreamOut.aidl
औरIStreamIn.aidl
के माध्यम से HAL को ऑडियो भेजने या प्राप्त करने के लिए उपयोग की जाती हैं। -
ITelephony.aidl
टेलीफोनी कार्यों के लिए विशिष्ट नियंत्रण प्रदान करता है। -
IBluetooth.aidl
BT SCO और HFP नियंत्रण प्रदान करता है जो HIDL API में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
का उपयोग विशेष प्रभाव उदाहरणों को कॉन्फ़िगर और नियंत्रित करने के लिए किया जाता है। प्रभाव-विशिष्ट पार्सलेबल्स को प्रभाव के नाम पर रखा गया है।
इफ़ेक्ट्स HAL API का नवीनतम संस्करण विकास में है
/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/
में है।
ऑडियो एआईडीएल एचएएल एपीआई का परीक्षण
एआईडीएल इंटरफ़ेस के लिए नए वीटीएस परीक्षण प्रदान किए गए हैं।
नए एचएएल संस्करण में ऐसा कोई बदलाव नहीं है जो सुरक्षा को प्रभावित कर सके।