ऑडियो

Android Audio HAL आइकॉन

Android का ऑडियो हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल), android.media में मौजूद ऑडियो से जुड़े फ़्रेमवर्क एपीआई को ऑडियो ड्राइवर और हार्डवेयर से कनेक्ट करता है. इस सेक्शन में, लागू करने के निर्देश और परफ़ॉर्मेंस को बेहतर बनाने के लिए सुझाव दिए गए हैं.

Android का ऑडियो आर्किटेक्चर यह तय करता है कि ऑडियो फ़ंक्शन को कैसे लागू किया जाता है. साथ ही, यह लागू करने से जुड़े सोर्स कोड के बारे में बताता है.

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

पहली इमेज. Android ऑडियो आर्किटेक्चर

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

ध्यान दें: अगर ALSA का इस्तेमाल किया जाता है, तो हमारा सुझाव है कि ड्राइवर के उपयोगकर्ता वाले हिस्से के लिए external/tinyalsa का इस्तेमाल करें. ऐसा इसलिए, क्योंकि यह लाइसेंस के साथ काम करता है. स्टैंडर्ड यूज़र-मोड लाइब्रेरी, GPL के तहत लाइसेंस की गई है.

Android का नेटिव ऑडियो, Open SL ES पर आधारित है (दिखाया नहीं गया)
यह एपीआई, Android NDK के हिस्से के तौर पर उपलब्ध है. साथ ही, यह android.media के आर्किटेक्चर लेवल पर ही है.