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

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