इस दस्तावेज़ में, Android Open Source Platform (AOSP) के बारे में पूछे जाने वाले सामान्य सवालों के जवाब दिए गए हैं.
ओपन-सोर्स सवाल
Google ने Android सोर्स कोड क्यों खोला?
Google ने मोबाइल ऐप्लिकेशन लॉन्च करने के अपने अनुभवों के आधार पर, AOSP को शुरू किया था. हम यह पक्का करना चाहते थे कि कैरियर, OEM, और डेवलपर के लिए हमेशा एक ओपन प्लैटफ़ॉर्म उपलब्ध रहे, ताकि वे अपने इनोवेटिव आइडिया को ज़िंदगी में ला सकें. हम किसी भी तरह की गड़बड़ी से बचना चाहते थे, ताकि इंडस्ट्री का कोई भी व्यक्ति किसी दूसरे के इनोवेशन पर पाबंदी न लगा सके या उन्हें कंट्रोल न कर सके. AOSP के लिए हमारा सबसे अहम लक्ष्य यह पक्का करना है कि ओपन सोर्स Android सॉफ़्टवेयर को ज़्यादा से ज़्यादा डिवाइसों पर इस्तेमाल किया जा सके और वह सभी डिवाइसों के साथ काम करे, ताकि सभी को इसका फ़ायदा मिल सके.
Android किस तरह का ओपन-सोर्स प्रोजेक्ट है?
Google, AOSP के मुख्य वर्शन को डेवलप करने की निगरानी करता है. साथ ही, डेवलपर और उपयोगकर्ताओं के लिए बेहतर समुदाय बनाने की कोशिश करता है. ज़्यादातर मामलों में, Android के सोर्स कोड को कॉपीलेफ़्ट लाइसेंस के बजाय, अनुमति देने वाले Apache License 2.0 के तहत लाइसेंस दिया जाता है. हमने Apache 2.0 लाइसेंस को इसलिए चुना है, क्योंकि हमारा मानना है कि इससे Android सॉफ़्टवेयर का इस्तेमाल बड़े पैमाने पर करने के लिए बढ़ावा मिलता है. ज़्यादा जानकारी के लिए, लाइसेंस देखें.
Android का कंट्रोल Google के पास क्यों है?
सॉफ़्टवेयर प्लैटफ़ॉर्म को लॉन्च करना मुश्किल होता है. किसी प्लैटफ़ॉर्म को लंबे समय तक कामयाब बनाने के लिए, उसे सभी के लिए उपलब्ध होना ज़रूरी है. ऐसा इसलिए, क्योंकि इससे डेवलपर का ध्यान खींचा जा सकता है और सभी को एक जैसी सुविधाएं मिलती हैं. यह भी ज़रूरी है कि प्लैटफ़ॉर्म, उपयोगकर्ताओं के लिए एक शानदार प्रॉडक्ट हो.
Google ने यह पक्का करने के लिए ज़रूरी प्रोफ़ेशनल इंजीनियरिंग संसाधन तैयार किए हैं कि Android एक पूरी तरह से प्रतिस्पर्धी सॉफ़्टवेयर प्लैटफ़ॉर्म है. Google, Android प्रोजेक्ट को प्रॉडक्ट डेवलपमेंट के बड़े ऑपरेशन के तौर पर देखता है. साथ ही, कारोबार से जुड़े ऐसे समझौते करता है जिनसे यह पक्का हो सके कि Android पर काम करने वाले बेहतरीन डिवाइस, मार्केट में उपलब्ध हों.
हम यह पक्का करते हैं कि Android, उपयोगकर्ताओं के लिए एक बेहतर प्लैटफ़ॉर्म और ओपन-सोर्स प्रोजेक्ट के तौर पर काम करे. आखिर, कौन किसी ऐसे प्रॉडक्ट का सोर्स कोड चाहेगा जो काम का नहीं है?
हमारा मकसद, Android के लिए एक बेहतर नेटवर्क बनाना है. हमने Android सोर्स कोड खोला, ताकि कोई भी व्यक्ति अपनी ज़रूरत के हिसाब से सॉफ़्टवेयर में बदलाव कर सके और उसे लोगों के साथ शेयर कर सके.
Android प्रॉडक्ट डेवलपमेंट के लिए, Google की रणनीति क्या है?
हमने प्रतिस्पर्धियों के मार्केटप्लेस में शानदार डिवाइस रिलीज़ किए. इसके बाद, हम मुख्य प्लैटफ़ॉर्म में किए गए बदलावों और सुधारों को अगले वर्शन के तौर पर शामिल करते हैं.
इसका मतलब है कि Android की इंजीनियरिंग टीम, कुछ "फ़्लैगशिप" डिवाइसों पर फ़ोकस करती है. साथ ही, उन प्रॉडक्ट के लॉन्च के लिए, Android सॉफ़्टवेयर का अगला वर्शन डेवलप करती है. ये फ़्लैगशिप डिवाइस, प्रॉडक्ट से जुड़े ज़्यादातर जोखिमों को कम करते हैं. साथ ही, ये OEM कम्यूनिटी के लिए एक मिसाल बनते हैं. OEM कम्यूनिटी, इन डिवाइसों के बाद नई सुविधाओं का फ़ायदा देने वाले और भी डिवाइस लॉन्च करती है. इस तरह, हम यह पक्का करते हैं कि Android प्लैटफ़ॉर्म, असल डिवाइसों की ज़रूरतों के हिसाब से बेहतर होता रहे.
Android सॉफ़्टवेयर कैसे डेवलप किया जाता है?
Android के हर प्लैटफ़ॉर्म वर्शन (जैसे, 1.5 या 8.1) के लिए, ओपन-सोर्स ट्री में एक ब्रैंच होती है. सबसे नई ब्रांच को मौजूदा स्टेबल ब्रांच वर्शन माना जाता है. यह वह शाखा है जिसे मैन्युफ़ैक्चरर अपने डिवाइसों पर पोर्ट करते हैं. इस शाखा को हमेशा रिलीज़ के लिए तैयार रखा जाता है.
साथ ही, मौजूदा एक्सपेरिमेंटल ब्रांच भी है. यहां अगली पीढ़ी की बड़ी सुविधाओं जैसे, अनुमानित योगदानों को डेवलप किया जाता है. गड़बड़ियों को ठीक करने और अन्य योगदानों को, एक्सपेरिमेंटल शाखा से मौजूदा स्थिर शाखा में शामिल किया जा सकता है. हालांकि, ऐसा तब ही किया जाएगा, जब यह ज़रूरी हो.
आखिर में, Google किसी फ़्लैगशिप डिवाइस को डेवलप करने के साथ-साथ, Android प्लैटफ़ॉर्म के अगले वर्शन पर भी काम करता है. यह शाखा, ज़रूरत के हिसाब से एक्सपेरिमेंटल और स्टेबल शाखाओं से बदलावों को शामिल करती है.
शाखाओं और रिलीज़ के बारे में जानकारी के लिए, रिलीज़ का लाइफ़साइकल देखें.
Android के कुछ हिस्से निजी तौर पर क्यों डेवलप किए जाते हैं?
आम तौर पर, किसी डिवाइस को मार्केट में लाने में एक साल से ज़्यादा समय लगता है. साथ ही, डिवाइस बनाने वाली कंपनियां भी अपने डिवाइसों में सबसे नया सॉफ़्टवेयर उपलब्ध कराना चाहती हैं. इस बीच, डेवलपर ऐप्लिकेशन लिखते समय, प्लैटफ़ॉर्म के नए वर्शन को लगातार ट्रैक नहीं करना चाहते. दोनों ग्रुप को प्रॉडक्ट शिप करने और बाकी कंपनियों से पीछे न रहने के बीच संतुलन बनाए रखने में परेशानी होती है.
इस समस्या को हल करने के लिए, Android के अगले वर्शन के कुछ हिस्सों को एक निजी शाखा में डेवलप किया गया है. इनमें मुख्य प्लैटफ़ॉर्म एपीआई भी शामिल हैं. ये एपीआई Android का अगला वर्शन हैं. हमारा लक्ष्य प्लैटफ़ॉर्म का अगला वर्शन बनाते समय, Android सोर्स कोड के मौजूदा स्टेबल वर्शन पर ध्यान देना है. इससे डेवलपर और OEM, एक ही वर्शन का इस्तेमाल कर सकते हैं. इसके लिए, उन्हें आने वाले समय में किए जाने वाले अधूरे काम को ट्रैक करने की ज़रूरत नहीं पड़ती. Android सिस्टम के ऐसे अन्य हिस्सों को सार्वजनिक तौर पर डेवलप किया जाता है जो ऐप्लिकेशन के साथ काम करने की सुविधा से जुड़े नहीं होते. आने वाले समय में, हम इनमें से ज़्यादा से ज़्यादा हिस्सों को ओपन डेवलपमेंट के दायरे में लाना चाहते हैं.
सोर्स कोड रिलीज़ कब की जाती हैं?
जब वे तैयार हों. सोर्स कोड को रिलीज़ करना काफ़ी मुश्किल प्रोसेस है. Android के कुछ हिस्सों को सार्वजनिक तौर पर डेवलप किया जाता है और उनका सोर्स कोड हमेशा उपलब्ध होता है. दूसरे हिस्सों को पहले निजी ट्री में डेवलप किया जाता है. प्लैटफ़ॉर्म का अगला वर्शन तैयार होने पर, उस सोर्स कोड को रिलीज़ किया जाता है.
कुछ रिलीज़ में, मुख्य प्लैटफ़ॉर्म के एपीआई काफ़ी पहले से तैयार होते हैं, ताकि डिवाइस के रिलीज़ होने से पहले ही, हम सोर्स कोड को पॉइंट कर सकें. अन्य रिलीज़ में ऐसा नहीं किया जा सकता. हम सभी मामलों में, प्लैटफ़ॉर्म का सोर्स तब रिलीज़ करते हैं, जब हमें लगता है कि वर्शन सही है और डेवलपमेंट की प्रोसेस की अनुमति है.
नए Android वर्शन के लिए सोर्स कोड रिलीज़ करने में किस तरह की गतिविधियां शामिल हैं?
Android प्लैटफ़ॉर्म के नए वर्शन का सोर्स कोड रिलीज़ करना एक अहम प्रोसेस है. सबसे पहले, सॉफ़्टवेयर को किसी डिवाइस के लिए सिस्टम इमेज में बनाया जाता है. इसके बाद, उसे अलग-अलग तरह के सर्टिफ़िकेट दिए जाते हैं. इनमें उन इलाकों के लिए सरकारी नियमों के मुताबिक सर्टिफ़िकेट भी शामिल हैं जहां फ़ोन डिप्लॉय किए जाएंगे. कोड को ऑपरेटर की जांच से भी गुज़रना होता है. यह प्रोसेस का एक अहम चरण है, क्योंकि इससे सॉफ़्टवेयर के बग का पता चलता है.
रेगुलेटर और ऑपरेटर से रिलीज़ को मंज़ूरी मिलने के बाद, मैन्युफ़ैक्चरर बड़े पैमाने पर डिवाइस बनाना शुरू करता है और फिर सोर्स कोड रिलीज़ करना शुरू कर देता है.
बड़े पैमाने पर प्रोडक्शन के साथ-साथ, Google की टीम ओपन-सोर्स रिलीज़ तैयार करने के लिए कई काम शुरू करती है. इनमें एपीआई में किए गए आखिरी बदलाव, दस्तावेज़ों को अपडेट करना (उदाहरण के लिए, क्वालीफ़िकेशन टेस्टिंग के दौरान किए गए बदलावों को दिखाने के लिए), नए वर्शन के लिए SDK टूल तैयार करना, और प्लैटफ़ॉर्म के साथ काम करने की जानकारी लॉन्च करना शामिल है.
कोड को ओपन सोर्स के तौर पर रिलीज़ करने के लिए, हमारी कानूनी टीम आखिरी बार हस्ताक्षर करती है. जिस तरह ओपन सोर्स में योगदान देने वाले लोगों को योगदान देने के लिए, उनकी बौद्धिक संपत्ति के मालिकाना हक को साबित करने वाले योगदान देने वाले लाइसेंस के समझौते पर हस्ताक्षर करना ज़रूरी होता है, उसी तरह Google को इस बात की पुष्टि करनी होगी कि स्रोत को योगदान देने की अनुमति मिल गई है.
बड़े पैमाने पर प्रोडक्शन शुरू होने के बाद से, सॉफ़्टवेयर रिलीज़ की प्रोसेस में आम तौर पर एक महीना लगता है. इसलिए, सोर्स कोड रिलीज़ अक्सर ठीक उसी समय हो जाती हैं, जब डिवाइस उपयोगकर्ताओं तक पहुंचते हैं.
AOSP, Android Compatibility Program से कैसे जुड़ा है?
AOSP, Android सॉफ़्टवेयर को मैनेज करता है और नए वर्शन डेवलप करता है. यह सॉफ़्टवेयर ओपन-सोर्स है. इसलिए, इसका इस्तेमाल किसी भी काम के लिए किया जा सकता है. जैसे, ऐसे डिवाइसों को डेवलप करना जो एक ही सोर्स पर आधारित अन्य डिवाइसों के साथ काम न करते हों.
Android Compatibility Program का मकसद, Android के बेसलाइन को लागू करना है. यह बेसलाइन, डेवलपर के लिखे गए तीसरे पक्ष के ऐप्लिकेशन के साथ काम करता है. Android के साथ काम करने वाले डिवाइस, Google Play के साथ-साथ Android नेटवर्क में शामिल हो सकते हैं. वहीं, Android के साथ काम करने की ज़रूरी शर्तें पूरी न करने वाले डिवाइस, इस नेटवर्क में शामिल नहीं होते.
दूसरे शब्दों में, Android Compatibility Program की मदद से हम Android के साथ काम करने वाले डिवाइसों को, उन डिवाइसों से अलग करते हैं जो सिर्फ़ सोर्स कोड के डेरिवेटिव चलाते हैं. हम Android सोर्स कोड के सभी इस्तेमाल का स्वागत करते हैं. हालांकि, Android नेटवर्क में शामिल होने के लिए, यह ज़रूरी है कि प्रोग्राम में किसी डिवाइस को Android के साथ काम करने वाला डिवाइस माना गया हो.
मैं Android में योगदान कैसे दूं?
इसमें, गड़बड़ियों की शिकायत की जा सकती है, Android के लिए ऐप्लिकेशन लिखे जा सकते हैं या AOSP में सोर्स कोड का योगदान दिया जा सकता है.
हम कुछ हद तक कोड योगदान स्वीकार करते हैं. उदाहरण के लिए, कोई व्यक्ति किसी अन्य ऐप्लिकेशन एपीआई का योगदान देना चाह सकता है. जैसे, C++ पर आधारित पूरा एनवायरमेंट. हम उस योगदान को अस्वीकार कर देंगे, क्योंकि Android, ऐप्लिकेशन को ART रनटाइम में चलाने का सुझाव देता है. इसी तरह, हम GPL या LGPL लाइब्रेरी जैसे योगदान स्वीकार नहीं करेंगे. ये लाइब्रेरी, लाइसेंस देने के हमारे लक्ष्यों के मुताबिक नहीं हैं.
अगर आपको सोर्स कोड में योगदान देना है, तो हमारा सुझाव है कि आप कोई भी काम शुरू करने से पहले, Android कम्यूनिटी में दिए गए चैनलों के ज़रिए हमसे संपर्क करें. ज़्यादा जानकारी के लिए, योगदान देना लेख पढ़ें.
मैं Android कमिटर कैसे बनूं?
AOSP में, असल में कमिटर की कोई सुविधा नहीं है. सभी योगदान (Google के कर्मचारियों के ज़रिए किए गए योगदान भी शामिल हैं) को वेब पर आधारित सिस्टम से भेजा जाता है. इस सिस्टम को गेरिट कहा जाता है. यह Android इंजीनियरिंग प्रोसेस का हिस्सा है. यह सिस्टम, सोर्स कोड के योगदान को सही तरीके से मैनेज करने के लिए, Git के सोर्स कोड मैनेजमेंट सिस्टम के साथ मिलकर काम करता है.
अनुमति देने वाले व्यक्ति को सबमिट किए गए सभी बदलावों को स्वीकार करना होगा. आम तौर पर, मंज़ूरी देने वाले लोग Google के कर्मचारी होते हैं. हालांकि, मंज़ूरी देने वाले ये लोग सभी सबमिशन के लिए ज़िम्मेदार होते हैं. भले ही, वे किसी भी सोर्स से सबमिट किए गए हों.
ज़्यादा जानकारी के लिए, पैच सबमिट करना लेख पढ़ें.