ऑडियो

Android ऑडियो HAL आइकन

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

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

ऑडियो वास्तुकला

चित्र 1. Android ऑडियो आर्किटेक्चर

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

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

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