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