ऑडियो

एंड्रॉइड ऑडियो एचएएल आइकन

एंड्रॉइड का ऑडियो हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) एंड्रॉइड.मीडिया में उच्च-स्तरीय, ऑडियो-विशिष्ट फ्रेमवर्क एपीआई को अंतर्निहित ऑडियो ड्राइवर और हार्डवेयर से जोड़ता है। इस अनुभाग में प्रदर्शन में सुधार के लिए कार्यान्वयन निर्देश और युक्तियाँ शामिल हैं।

एंड्रॉइड ऑडियो आर्किटेक्चर परिभाषित करता है कि ऑडियो कार्यक्षमता कैसे लागू की जाती है और कार्यान्वयन में शामिल प्रासंगिक स्रोत कोड को इंगित करता है।

ऑडियो आर्किटेक्चर

चित्र 1. एंड्रॉइड ऑडियो आर्किटेक्चर

अनुप्रयोग ढाँचा
एप्लिकेशन फ्रेमवर्क में ऐप कोड शामिल है, जो ऑडियो हार्डवेयर के साथ इंटरैक्ट करने के लिए android.media API का उपयोग करता है। आंतरिक रूप से, यह कोड ऑडियो हार्डवेयर के साथ इंटरैक्ट करने वाले मूल कोड तक पहुंचने के लिए संबंधित जेएनआई गोंद कक्षाओं को कॉल करता है।
जेएनआई
android.media से जुड़ा जेएनआई कोड ऑडियो हार्डवेयर तक पहुंचने के लिए निचले स्तर के मूल कोड को कॉल करता है। जेएनआई frameworks/base/core/jni/ और frameworks/base/media/jni में स्थित है।
मूल ढाँचा
नेटिव फ्रेमवर्क android.media पैकेज के बराबर एक नेटिव प्रदान करता है, जो मीडिया सर्वर की ऑडियो-विशिष्ट सेवाओं तक पहुंचने के लिए बाइंडर आईपीसी प्रॉक्सी को कॉल करता है। नेटिव फ्रेमवर्क कोड frameworks/av/media/libmedia में स्थित है।
बाइंडर आईपीसी
बाइंडर आईपीसी प्रॉक्सी प्रक्रिया सीमाओं पर संचार की सुविधा प्रदान करते हैं। प्रॉक्सी frameworks/av/media/libmedia में स्थित होते हैं और "I" अक्षर से शुरू होते हैं।
मीडिया सर्वर
मीडिया सर्वर में ऑडियो सेवाएँ शामिल हैं, जो वास्तविक कोड हैं जो आपके HAL कार्यान्वयन के साथ इंटरैक्ट करते हैं। मीडिया सर्वर frameworks/av/services/audioflinger में स्थित है।
एचएएल
एचएएल मानक इंटरफ़ेस को परिभाषित करता है जिसमें ऑडियो सेवाएं कॉल करती हैं और आपको अपने ऑडियो हार्डवेयर को सही ढंग से काम करने के लिए इसे लागू करना होगा। अधिक विवरण के लिए, ऑडियो एचएएल इंटरफ़ेस और संबंधित एचएएल संस्करण निर्देशिका की *.hal फ़ाइलों में टिप्पणियाँ देखें।
कर्नेल ड्राइवर
ऑडियो ड्राइवर आपके हार्डवेयर और HAL कार्यान्वयन के साथ इंटरैक्ट करता है। आप उन्नत लिनक्स साउंड आर्किटेक्चर (एएलएसए), ओपन साउंड सिस्टम (ओएसएस), या एक कस्टम ड्राइवर (एचएएल ड्राइवर-अज्ञेयवादी है) का उपयोग कर सकते हैं।

नोट : यदि आप एएलएसए का उपयोग करते हैं, तो हम इसके संगत लाइसेंसिंग (मानक उपयोगकर्ता-मोड लाइब्रेरी जीपीएल-लाइसेंस प्राप्त है) के कारण ड्राइवर के उपयोगकर्ता भाग के लिए external/tinyalsa की अनुशंसा करते हैं।

ओपन एसएल ईएस पर आधारित एंड्रॉइड मूल ऑडियो (दिखाया नहीं गया)
यह API Android NDK के भाग के रूप में प्रदर्शित है और android.media के समान आर्किटेक्चर स्तर पर है।