Android ओपन सोर्स प्रोजेक्ट (AOSP) सार्वजनिक रूप से उपलब्ध है और उसमें बदलाव किया जा सकता है Android सोर्स कोड. कोई भी व्यक्ति अपने डिवाइस के लिए AOSP डाउनलोड कर सकता है और उसमें बदलाव कर सकता है. एओएसपी Android मोबाइल का पूरा और पूरी तरह से काम करने का तरीका लागू करता है प्लैटफ़ॉर्म.
एओएसपी को लागू करने वाले डिवाइसों के साथ काम करने के दो लेवल हैं: AOSP साथ काम करता है और Android पर काम करता है. AOSP के साथ काम करने वाला डिवाइस शर्तों की सूची का पालन करते हैं. कंपैटबिलिटी डेफ़िनिशन दस्तावेज़ (सीडीडी). अगर आप Android के साथ काम करने वाला डिवाइस, सीसीडी की शर्तों की सूची का पालन करता हो और वेंडर सॉफ़्टवेयर की ज़रूरी शर्तें (वीएसआर) और टेस्ट ऐसे होते हैं जो वेंडर टेस्ट सुइट (वीटीएस) और कंपैटबिलिटी टेस्ट सुइट (सीटीएस). आगे के लिए Android डिवाइसों के साथ काम करने की सुविधा के बारे में ज़्यादा जानने के लिए, Android के साथ काम करने वाला प्रोग्राम.
एओएसपी आर्किटेक्चर
AOSP के लिए सॉफ़्टवेयर स्टैक में ये लेयर होती हैं:
पहला डायग्राम. AOSP सॉफ़्टवेयर स्टैक आर्किटेक्चर.
पहली इमेज में इस्तेमाल किए गए शब्दों की परिभाषाओं की सूची नीचे दी गई है:
- Android ऐप्लिकेशन
- ऐसा ऐप्लिकेशन जिसे सिर्फ़ Android API का इस्तेमाल करके बनाया गया हो. Google Play Store का इस्तेमाल ज़्यादातर Android ऐप्लिकेशन ढूंढने और उन्हें डाउनलोड करने के लिए किया जाता है. हालांकि, अन्य विकल्पों का इस्तेमाल कर सकते हैं. कुछ मामलों में, डिवाइस बनाने वाली कंपनी को डिवाइस के मुख्य फ़ंक्शन में मदद करने के लिए, कोई Android ऐप्लिकेशन पहले से इंस्टॉल करें. अगर आपने आपको Android ऐप्लिकेशन डेवलप करने में दिलचस्पी है, तो यहां जाएं: developers.android.com.
- खास तौर पर बनाया गया ऐप्लिकेशन
- Android और सिस्टम एपीआई के कॉम्बिनेशन का इस्तेमाल करके बनाया गया ऐप्लिकेशन. ये ऐप्लिकेशन डिवाइस पर, खास अधिकार वाले ऐप्लिकेशन के तौर पर पहले से इंस्टॉल होना चाहिए.
- डिवाइस बनाने वाली कंपनी का ऐप्लिकेशन
- Android API, सिस्टम एपीआई, और डायरेक्ट ट्रैफ़िक के कॉम्बिनेशन का इस्तेमाल करके बनाया गया ऐप्लिकेशन Android फ़्रेमवर्क को लागू करने की अनुमति दे. क्योंकि डिवाइस बनाने वाली एक कंपनी 'Android फ़्रेमवर्क' में ठीक से काम न करने वाले एपीआई को सीधे ऐक्सेस कर सकता है, तो ये ऐप्लिकेशन डिवाइस पर पहले से इंस्टॉल होना चाहिए और इसे सिर्फ़ तब अपडेट किया जा सकता है, जब डिवाइस सिस्टम सॉफ़्टवेयर अपडेट हो गया.
- सिस्टम एपीआई
- System API सिर्फ़ पार्टनर के लिए उपलब्ध Android एपीआई और बंडल किए गए ऐप्लिकेशन में शामिल करने के लिए OEM. इन एपीआई को @SystemApi के तौर पर मार्क किया गया है को सोर्स कोड में डालें.
- Android एपीआई
- Android API, तीसरे पक्ष के Android ऐप्लिकेशन के लिए सार्वजनिक तौर पर उपलब्ध एपीआई है डेवलपर. Android API के बारे में जानकारी के लिए, यहां जाएं: Android API के लिए रेफ़रंस.
- Android फ़्रेमवर्क
- Java क्लास, इंटरफ़ेस, और पहले से कंपाइल किए गए कोड का ग्रुप, जिस पर ऐप बनाए जाते हैं. फ़्रेमवर्क के कुछ हिस्से, सार्वजनिक तौर पर Android API का इस्तेमाल करते हैं. फ़्रेमवर्क के अन्य हिस्से यह सुविधा सिर्फ़ OEM को उपलब्ध कराई गई है. इसके लिए, सिस्टम एपीआई का इस्तेमाल किया जा रहा है. Android पर फ़्रेमवर्क कोड ऐप्लिकेशन की प्रोसेस के अंदर चलता है.
- सिस्टम से जुड़ी सेवाएं
- सिस्टम से जुड़ी सेवाएं मॉड्यूलर और फ़ोकस किए गए कॉम्पोनेंट हैं. जैसे,
system_server
, SurfaceFlinger, और MediaService. Android फ़्रेमवर्क एपीआई के ज़रिए दिखाई गई सुविधाएं यह ऐप्लिकेशन, इसके हार्डवेयर को ऐक्सेस करने के लिए सिस्टम की सेवाओं से संपर्क करता है. - Android रनटाइम (ART)
- AOSP से मिला Java रनटाइम एनवायरमेंट. ART यह प्रदर्शन करता है ऐप्लिकेशन के बाइटकोड का प्रोसेसर-विशिष्ट निर्देशों में अनुवाद इन्हें डिवाइस के रनटाइम एनवायरमेंट से एक्ज़ीक्यूट किया जाता है.
- हार्डवेयर ऐब्स्ट्रक्शन लेयर (एचएएल)
- एचएएल एक ऐब्स्ट्रक्शन लेयर है, जिसमें हार्डवेयर वेंडर के लिए स्टैंडर्ड इंटरफ़ेस होता है . एचएएल, Android को लोअर-लेवल ड्राइवर के बारे में एनोटेप्ट करने देते हैं लागू करना. एचएएल का इस्तेमाल करने पर, बिना किसी गड़बड़ी के कोई भी सुविधा मिलती है हाई लेवल सिस्टम पर असर डाल सकता है या उसमें बदलाव कर सकता है. ज़्यादा जानकारी के लिए, एचएएल की खास जानकारी देखें.
- नेटिव डीमन और लाइब्रेरी
इस लेयर के नेटिव डीमन में
init
,healthd
,logd
, और शामिल हैंstoraged
. ये डीमन सीधे कर्नेल या अन्य इंटरफ़ेस के साथ इंटरैक्ट करते हैं साथ ही, आपको यूज़रस्पेस-आधारित एचएएल को लागू करने पर निर्भर नहीं होना चाहिए.इस लेयर में मौजूद नेटिव लाइब्रेरी में
libc
,liblog
,libutils
,libbinder
औरlibselinux
. ये स्थानीय लाइब्रेरी सीधे कर्नेल या अन्य इंटरफ़ेस हो और वे यूज़रस्पेस-आधारित एचएएल पर निर्भर न हों लागू करना.- केर्नेल
कर्नेल किसी भी ऑपरेटिंग सिस्टम का मुख्य हिस्सा होता है और पहले से मौजूद हार्डवेयर होता है. जहां संभव हो, एओएसपी कर्नेल को अलग-अलग किया जाता है के मॉड्यूल और वेंडर ऐग्नोस्टिक मॉड्यूल में इस्तेमाल किए जा सकते हैं. ब्यौरे के लिए, एओएसपी कर्नेल कॉम्पोनेंट की परिभाषाएं शामिल हैं. कर्नेल के बारे में खास जानकारी.
आगे क्या करना है?
- अगर आप एओएसपी में नए हैं और डेवलपमेंट शुरू करना चाहते हैं, तो यहां जाएं: 'शुरू करें' सेक्शन में.
- अगर आपको एओएसपी की किसी खास लेयर के बारे में ज़्यादा जानना है, तो सेक्शन के नाम लिखें और उस सेक्शन की खास जानकारी से शुरुआत करें.