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 के लिए तीसरे पक्ष के ऐप्लिकेशन डेवलप करने हैं, तो developers.android.com
देखें. इस वेबसाइट पर दी गई जानकारी, सिर्फ़ उन लोगों के लिए है जो सीधे तौर पर AOSP के साथ काम करते हैं.
- Android डीबग ब्रिज (adb)
- यह एक कमांड-लाइन टूल (
adb
) है, जिसकी मदद से आपके वर्कस्टेशन को वर्चुअल, सॉफ़्टवेयर से एमुलेट किए गए या फ़िज़िकल डिवाइस से कम्यूनिकेट करने की सुविधा मिलती है. - Android के साथ काम करने वाला डिवाइस
- ऐसा डिवाइस जो Android SDK और NDK का इस्तेमाल करके, तीसरे पक्ष के डेवलपर के लिखे गए किसी भी तीसरे पक्ष के ऐप्लिकेशन को चला सकता है. Android के साथ काम करने वाले डिवाइसों को कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी) की ज़रूरी शर्तों का पालन करना होगा. साथ ही, उन्हें कंपैटबिलिटी टेस्ट सुइट (सीटीएस) पास करना होगा. 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 से संपर्क करें.
- कंपैटिबिलिटी टेस्ट सुइट (CTS)
मुफ़्त में उपलब्ध, व्यावसायिक ग्रेड का टेस्ट सुइट. इसे AOSP में बाइनरी या सोर्स के तौर पर डाउनलोड किया जा सकता है. सीटीएस, यूनिट टेस्ट का एक सेट है. इसे आपके रोज़ के वर्कफ़्लो में इंटिग्रेट करने के लिए डिज़ाइन किया गया है. सीटीएस का मकसद, काम न करने वाले कॉन्फ़िगरेशन की जानकारी देना है. साथ ही, यह पक्का करना है कि डेवलपमेंट की पूरी प्रोसेस के दौरान सॉफ़्टवेयर काम करता रहे.
- कटलफ़िश
कॉन्फ़िगर किया जा सकने वाला वर्चुअल Android डिवाइस, जो तीसरे पक्ष के क्लाउड ऑफ़र का इस्तेमाल करके, किसी दूसरी जगह से चलाया जा सकता है. जैसे, Google Cloud Engine. साथ ही, इसे Linux x86 मशीनों पर भी चलाया जा सकता है.
- डेवलपर
AOSP के संदर्भ में, डेवलपर वह व्यक्ति होता है जो किसी भी तरह से AOSP के साथ काम करता है. "डेवलपर" शब्द का इस्तेमाल, आम तौर पर उन अलग-अलग लोगों के लिए किया जाता है जो इस दस्तावेज़ को पढ़ सकते हैं. जैसे, ओरिजनल इक्विपमेंट मैन्युफ़ैक्चरर (ओईएम), हैंडसेट बनाने वाली कंपनियां, मोबाइल और इंटरनेट सेवा देने वाली कंपनियां, और सिस्टम-ऑन-एक-चिप (SoC) बनाने वाली कंपनियां.
- Google मोबाइल सेवाएं (GMS)
Google के ऐसे ऐप्लिकेशन और एपीआई का कलेक्शन जिन्हें डिवाइसों पर पहले से इंस्टॉल किया जा सकता है.
- Target
किसी डिवाइस का कोई वैरिएंट, जैसे कि कोई खास मॉडल या फ़ॉर्म फ़ैक्टर. उदाहरण के लिए,
aosp_cf_x86_64_phone-userdebug
, x86 65MB फ़ोन को दिखाता है. इसमें, डिबग करने से जुड़ी जानकारी होती है. इसे cuttlefish एमुलेटर पर चलाने के लिए डिज़ाइन किया गया है.
मैनेजमेंट का फ़िलॉसफ़ी
Google की अगुवाई वाली कंपनियों के ग्रुप, Open Handset Alliance (OHA) ने Android को शुरू किया था. आज, कई कंपनियों ने Android में काफ़ी निवेश किया है. इनमें OHA के ओरिजनल सदस्य और अन्य कंपनियां शामिल हैं. इन कंपनियों ने Android को बेहतर बनाने और Android डिवाइसों को मार्केट में लाने के लिए, इंजीनियरिंग से जुड़े ज़रूरी संसाधनों को तय किया है.
Android में निवेश करने वाली कंपनियों का मानना है कि एक खुला प्लैटफ़ॉर्म ज़रूरी है. Android को जान-बूझकर और साफ़ तौर पर ओपन सोर्स के तौर पर बनाया गया है, न कि मुफ़्त सॉफ़्टवेयर के तौर पर. एक जैसे मकसद वाले संगठनों के एक ग्रुप ने, एक जैसे प्रॉडक्ट को लागू करने के लिए मिलकर काम किया है. सबसे पहले, Android का फ़िलॉसफ़ी व्यावहारिक है. मकसद, शेयर किया गया ऐसा प्रॉडक्ट बनाना है जिसे हर योगदान देने वाला अपने हिसाब से बना सके और पसंद के मुताबिक बदल सके.
हालांकि, बिना किसी कंट्रोल के कस्टमाइज़ेशन करने से, हो सकता है कि आपका कस्टमाइज़ किया गया वर्शन, Google Ads के साथ काम न करे. डिवाइसों के काम न करने से रोकने के लिए, Android Open Source Project (AOSP) Android Compatibility Program को मैनेज करता है. इस प्रोग्राम में बताया गया है कि Android के साथ काम करने का क्या मतलब है और डिवाइस बनाने वालों को यह स्टेटस पाने के लिए क्या करना होगा. कोई भी व्यक्ति किसी भी मकसद के लिए, Android के सोर्स कोड का इस्तेमाल कर सकता है. Google, इसके सभी सही इस्तेमाल का स्वागत करता है. हालांकि, डिवाइस बनाने वाली कंपनियों को Android के लिए बनाए जा रहे OHA के ऐप्लिकेशन के शेयर किए गए नेटवर्क में हिस्सा लेने के लिए, Android के साथ काम करने वाले डिवाइसों के लिए बने प्रोग्राम में शामिल होना होगा.
AOSP को Google मैनेज करता है. साथ ही, Android को डेवलप और मैनेज भी करता है. Android में कई सब-प्रोजेक्ट होते हैं, लेकिन AOSP सिर्फ़ प्रोजेक्ट मैनेजमेंट है. Google, Android को एक पूरे सॉफ़्टवेयर प्रॉडक्ट के तौर पर देखता और मैनेज करता है, न कि डिस्ट्रिब्यूशन, स्पेसिफ़िकेशन या बदले जा सकने वाले हिस्सों के कलेक्शन के तौर पर. Google का मकसद यह है कि डिवाइस बनाने वाली कंपनियां, Android को किसी डिवाइस पर पोर्ट करें. वे किसी स्पेसिफ़िकेशन को लागू नहीं करतीं या डिस्ट्रिब्यूशन को क्यूरेट नहीं करतीं.
आगे क्या करना है?
अगर आपने पहले कभी AOSP का इस्तेमाल नहीं किया है और आपको AOSP के डेवलपमेंट के बारे में ट्यूटोरियल चाहिए, तो AOSP ट्यूटोरियल पर जाएं.
अगर आपको लगता है कि आपके डिवाइस पर Android Auto काम करना चाहिए, तो Android Compatibility Program देखें.
अगर आपको AOSP के बारे में जानना है, तो AOSP के बारे में अक्सर पूछे जाने वाले सवाल देखें. इसमें, इस प्लैटफ़ॉर्म में Google की भूमिका के बारे में भी जानकारी दी गई है.