Android एक ऑपरेटिंग सिस्टम है. इसका इस्तेमाल अलग-अलग नाप या आकार वाले कई डिवाइसों में किया जाता है. Android के लिए दस्तावेज़ और सोर्स कोड, Android ओपन सोर्स प्रोजेक्ट (AOSP) के तौर पर सभी के लिए उपलब्ध है. अपने डिवाइसों के लिए Android OS के कस्टम वैरिएंट बनाने के लिए, AOSP का इस्तेमाल किया जा सकता है.
AOSP को इस तरह से डिज़ाइन किया गया है कि इसमें कोई सेंट्रल पॉइंट ऑफ़ फ़ेलियर न हो. इसका मतलब है कि इंडस्ट्री का कोई भी प्लेयर, दूसरे प्लेयर के इनोवेशन को सीमित या कंट्रोल नहीं कर सकता. इसलिए, AOSP एक ऐसा डेवलपर प्रॉडक्ट है जो पूरी तरह से तैयार है और प्रोडक्शन क्वालिटी का है. इसका सोर्स कोड, पसंद के मुताबिक बनाने और पोर्ट करने के लिए उपलब्ध है.
दस्तावेज़ के इस सेक्शन से, AOSP के नए डेवलपर को प्लैटफ़ॉर्म का इस्तेमाल शुरू करने और डेवलपमेंट से जुड़े ज़रूरी टास्क पूरे करने में मदद मिलती है.
ज़रूरी शर्तें
यहां उन शब्दों और उनकी परिभाषाओं की सूची दी गई है जिनका इस्तेमाल, 'शुरू करें' दस्तावेज़ में किया गया है. आगे बढ़ने से पहले, आपको हर परिभाषा को ध्यान से पढ़ना चाहिए.
- Android ऐप्लिकेशन डेवलपर
Android ऐप्लिकेशन डेवलपर, Android ऐप्लिकेशन या Android पर चलने वाले ऐप्लिकेशन बनाते हैं. ऐप्लिकेशन डेवलपर दो तरह के होते हैं: पहले पक्ष (1p) और तीसरे पक्ष (3p) के ऐप्लिकेशन डेवलपर.
- Android के लिए, पहले पक्ष का ऐप्लिकेशन डेवलपर
- Android ऐप्लिकेशन डेवलपर, जिसके पास AOSP सिस्टम एपीआई का ऐक्सेस है. साथ ही, वह खास सुविधाओं वाले ऐप्लिकेशन और डिवाइस बनाने वाली कंपनी के ऐप्लिकेशन लिखता है.
- Android के लिए तीसरे पक्ष के ऐप्लिकेशन का डेवलपर
- Android ऐप्लिकेशन डेवलपर, जो Android ऐप्लिकेशन बनाने के लिए सिर्फ़ Android के सार्वजनिक SDK का इस्तेमाल करता है.
अगर आपको Android के लिए तीसरे पक्ष के ऐप्लिकेशन डेवलप करने हैं, तो developer.android.com
पर जाएं. इस वेबसाइट पर दी गई जानकारी सिर्फ़ उन लोगों के लिए है जो सीधे तौर पर AOSP के साथ काम करते हैं.
- Android डीबग ब्रिज (adb)
- यह एक कमांड-लाइन टूल (
adb
) है. इसकी मदद से, आपका वर्कस्टेशन किसी वर्चुअल, सॉफ़्टवेयर-एम्युलेटेड या फ़िज़िकल डिवाइस से कम्यूनिकेट कर सकता है. - Android के साथ काम करने वाला डिवाइस
- ऐसा डिवाइस जिस पर तीसरे पक्ष के डेवलपर की ओर से Android SDK और NDK का इस्तेमाल करके लिखा गया कोई भी ऐप्लिकेशन चल सकता हो. Android के साथ काम करने वाले डिवाइसों को, कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी) में दी गई ज़रूरी शर्तों का पालन करना होगा. साथ ही, उन्हें Compatibility Test Suite (CTS) पास करना होगा. Android के साथ काम करने वाले डिवाइस, Android के नेटवर्क में शामिल हो सकते हैं. इसमें Android Play Store का लाइसेंस पाने की संभावना, Google Mobile Services (GMS) के ऐप्लिकेशन और एपीआई के सुइट का लाइसेंस पाने की संभावना, और Android ट्रेडमार्क का इस्तेमाल करना शामिल है. Android के सोर्स कोड का इस्तेमाल कोई भी कर सकता है. हालांकि, किसी डिवाइस को Android के इकोसिस्टम का हिस्सा माना जाने के लिए, यह ज़रूरी है कि वह Android के साथ काम करता हो. संगतता और सीटीएस के बारे में ज़्यादा जानने के लिए, Android Compatibility Program की खास जानकारी देखें
- कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी)
- ऐसा दस्तावेज़ जिसमें Android के साथ काम करने वाले डिवाइस के सॉफ़्टवेयर और हार्डवेयर से जुड़ी ज़रूरी शर्तों के बारे में जानकारी दी गई हो.
- योगदान देने वाला
वह व्यक्ति जो AOSP के सोर्स कोड में योगदान देता है. योगदान देने वाले लोग, Google के कर्मचारी, दूसरी कंपनियों के कर्मचारी, और ऐसे लोग हो सकते हैं जो किसी कंपनी से नहीं जुड़े हैं. AOSP में योगदान देने वाला हर व्यक्ति एक ही टूल का इस्तेमाल करता है. साथ ही, कोड की समीक्षा करने की एक ही प्रोसेस का पालन करता है. इसके अलावा, कोडिंग की एक ही स्टाइल का इस्तेमाल करता है. AOSP का इस्तेमाल करने के लिए, आपको योगदान देने वाले व्यक्ति की भूमिका में होना ज़रूरी नहीं है. AOSP को डाउनलोड किया जा सकता है. साथ ही, अपनी ज़रूरतों के हिसाब से इसमें बदलाव किया जा सकता है. इसके अलावा, इसे किसी डिवाइस पर डिप्लॉय किया जा सकता है. इसके लिए, आपको दूसरों के इस्तेमाल के लिए कोड का योगदान करने की ज़रूरत नहीं है.
Google, कोड के योगदानों को स्वीकार करने के लिए कुछ सीमाएं तय करता है. उदाहरण के लिए, आपको कोई अन्य ऐप्लिकेशन एपीआई जोड़ना हो सकता है. जैसे, पूरी तरह से C++ पर आधारित एनवायरमेंट. Google उस योगदान को अस्वीकार कर देगा, क्योंकि Android, ऐप्लिकेशन को ART रनटाइम में चलाने के लिए बढ़ावा देता है. इसी तरह, Google ऐसे योगदान स्वीकार नहीं करता है जो लाइसेंसिंग के लक्ष्यों के साथ काम नहीं करते. जैसे, GPL या LGPL लाइब्रेरी.
अगर आपको सोर्स कोड में योगदान देना है, तो काम शुरू करने से पहले Google से संपर्क करें.
- Compatibility Test Suite (CTS)
यह एक कमर्शियल-ग्रेड टेस्ट सुइट है, जो बिना किसी शुल्क के उपलब्ध है. इसे AOSP में बाइनरी या सोर्स के तौर पर डाउनलोड किया जा सकता है. CTS, यूनिट टेस्ट का एक सेट है. इसे आपके रोज़ के वर्कफ़्लो में इंटिग्रेट करने के लिए डिज़ाइन किया गया है. सीटीएस का मकसद, असंगतताओं का पता लगाना है. साथ ही, यह पक्का करना है कि डेवलपमेंट की पूरी प्रोसेस के दौरान सॉफ़्टवेयर काम करता रहे.
- Cuttlefish
यह Android पर चलने वाला एक ऐसा वर्चुअल डिवाइस है जिसे कॉन्फ़िगर किया जा सकता है. इसे रिमोटली चलाया जा सकता है. इसके लिए, तीसरे पक्ष की क्लाउड सेवाएं इस्तेमाल की जा सकती हैं. जैसे, Google Cloud Engine. इसे Linux x86 मशीनों पर भी चलाया जा सकता है.
- डेवलपर
AOSP के संदर्भ में, डेवलपर वह व्यक्ति होता है जो किसी भी तरह से AOSP के साथ काम करता है. "डेवलपर" शब्द का इस्तेमाल, इस दस्तावेज़ को पढ़ने वाले अलग-अलग लोगों के लिए किया जाता है. जैसे, ओरिजनल इक्विपमेंट मैन्युफ़ैक्चरर (ओईएम), हैंडसेट बनाने वाली कंपनियां, कैरियर, और सिस्टम-ऑन-ए-चिप (एसओसी) बनाने वाली कंपनियां.
- Google मोबाइल सेवाएं (GMS)
Google ऐप्लिकेशन और एपीआई का एक कलेक्शन, जिसे डिवाइसों पर पहले से इंस्टॉल किया जा सकता है.
- Target
किसी डिवाइस का क्रमपरिवर्तन, जैसे कि कोई खास मॉडल या फ़ॉर्म फ़ैक्टर. उदाहरण के लिए,
aosp_cf_x86_64_only_phone-userdebug
एक x86 65 एमबी फ़ोन को दिखाता है. इसमें डीबग करने से जुड़ी जानकारी होती है. इसे कटलफ़िश एम्युलेटर पर चलाने के लिए डिज़ाइन किया गया है.
गवर्नेंस फ़िलॉसफ़ी
Android को Google के नेतृत्व में, Open Handset Alliance (OHA) नाम की कंपनियों के एक ग्रुप ने बनाया है. आज, कई कंपनियों ने Android में काफ़ी निवेश किया है. इनमें OHA की मूल सदस्य कंपनियां और अन्य कंपनियां शामिल हैं. इन कंपनियों ने Android को बेहतर बनाने और Android डिवाइसों को बाज़ार में लाने के लिए, इंजीनियरिंग के कई संसाधन उपलब्ध कराए हैं.
Android में निवेश करने वाली कंपनियों का मानना है कि ओपन प्लैटफ़ॉर्म ज़रूरी है. Android को जान-बूझकर और साफ़ तौर पर ओपन सोर्स बनाया गया है. यह मुफ़्त सॉफ़्टवेयर नहीं है. एक जैसे मकसद वाले संगठनों के एक ग्रुप ने, एक ही प्रॉडक्ट को लागू करने के लिए संसाधनों को इकट्ठा किया है, ताकि वे मिलकर काम कर सकें. सबसे पहले और सबसे ज़रूरी बात यह है कि Android का सिद्धांत व्यावहारिक है. लक्ष्य एक शेयर किया गया प्रॉडक्ट है. इसमें योगदान देने वाला हर व्यक्ति, इसे अपनी ज़रूरत के हिसाब से बना सकता है और इसमें बदलाव कर सकता है.
ज़ाहिर है कि बिना किसी नियंत्रण के बदलाव करने से, लागू करने से जुड़ी समस्याएं हो सकती हैं. Android Open Source Project (AOSP), Android Compatibility program को मैनेज करता है. इससे यह पक्का किया जाता है कि डिवाइस, Android के साथ काम करे. इसमें यह बताया जाता है कि Android के साथ काम करने का क्या मतलब है और डिवाइस बनाने वाली कंपनियों को यह स्टेटस पाने के लिए क्या करना होगा. Android के सोर्स कोड का इस्तेमाल कोई भी व्यक्ति किसी भी मकसद से कर सकता है. Google, सभी सही इस्तेमाल का स्वागत करता है. हालांकि, Android के लिए OHA के सदस्य जो ऐप्लिकेशन बना रहे हैं उनके शेयर किए गए इकोसिस्टम में हिस्सा लेने के लिए, डिवाइस बनाने वाली कंपनियों को Android Compatibility Program में शामिल होना होगा.
AOSP को Google मैनेज करता है. Google ही Android को मैनेज करता है और उसे बेहतर बनाता है. Android में कई सबप्रोजेक्ट शामिल हैं. हालांकि, AOSP सिर्फ़ प्रोजेक्ट मैनेजमेंट है. Google, Android को एक संपूर्ण सॉफ़्टवेयर प्रॉडक्ट के तौर पर देखता और मैनेज करता है. इसे डिस्ट्रिब्यूशन, स्पेसिफ़िकेशन या बदले जा सकने वाले पार्ट्स के कलेक्शन के तौर पर नहीं देखा जाता. Google का मकसद यह है कि डिवाइस बनाने वाली कंपनियां, Android को किसी डिवाइस पर पोर्ट करें. वे किसी स्पेसिफ़िकेशन को लागू नहीं करती हैं या डिस्ट्रिब्यूशन को मैनेज नहीं करती हैं.
आगे क्या करना है?
अगर आपको AOSP के बारे में नहीं पता और आपको AOSP डेवलपमेंट के बारे में ट्यूटोरियल देखना है, तो AOSP ट्यूटोरियल पर जाएं.
अगर आपको लगता है कि आपके डिवाइस में Android के साथ काम करने की सुविधा होनी चाहिए, तो Android Compatibility Program देखें.
अगर आपको AOSP के बारे में ज़्यादा जानना है, तो AOSP के बारे में अक्सर पूछे जाने वाले सवाल पढ़ें. इसमें Google की इस प्लैटफ़ॉर्म में भागीदारी के बारे में भी बताया गया है.