एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) ओईएम और अन्य डिवाइस कार्यान्वयनकर्ताओं द्वारा पोर्ट किए जाने और अपने हार्डवेयर पर चलाने के लिए एक पूर्ण सॉफ्टवेयर स्टैक रखता है। एंड्रॉइड की गुणवत्ता बनाए रखने के लिए, Google ने पूर्णकालिक इंजीनियरों, उत्पाद प्रबंधकों, उपयोगकर्ता इंटरफ़ेस डिजाइनरों, गुणवत्ता आश्वासन परीक्षकों और आधुनिक उपकरणों को बाजार में लाने के लिए आवश्यक अन्य सभी भूमिकाओं में योगदान दिया है।
तदनुसार, हम एंड्रॉइड के वर्तमान स्थिर संस्करण को अस्थिर प्रयोगात्मक कार्य से स्पष्ट रूप से अलग करने के लिए कई कोडलाइन बनाए रखते हैं। हम एंड्रॉइड कोडलाइन के ओपन सोर्स प्रशासन और रखरखाव को बड़े उत्पाद विकास चक्र में रोल करते हैं।
एओएसपी कोड प्रबंधन
नीचे दिया गया चार्ट एओएसपी कोड प्रबंधन और रिलीज के पीछे की अवधारणाओं को दर्शाता है।
- किसी भी समय, Android प्लेटफ़ॉर्म की नवीनतम नवीनतम रिलीज़ होती है। यह आमतौर पर पेड़ में एक शाखा का रूप ले लेता है।
- डिवाइस निर्माता और योगदानकर्ता वर्तमान नवीनतम रिलीज़ के साथ काम करते हैं, बग्स को ठीक करते हैं, नए डिवाइस लॉन्च करते हैं, नई सुविधाओं के साथ प्रयोग करते हैं, आदि।
- समानांतर में, Google उत्पाद की ज़रूरतों और लक्ष्यों के अनुसार Android प्लेटफ़ॉर्म और फ्रेमवर्क के अगले संस्करण पर आंतरिक रूप से काम करता है। हम एक फ्लैगशिप डिवाइस पर डिवाइस पार्टनर के साथ काम करके एंड्रॉइड का अगला संस्करण विकसित करते हैं, जिसके विनिर्देशों को एंड्रॉइड को उस दिशा में धकेलने के लिए चुना जाता है, जिस दिशा में हम मानते हैं कि इसे जाना चाहिए।
- जब n+1वां संस्करण तैयार हो जाता है, तो यह सार्वजनिक स्रोत ट्री पर प्रकाशित हो जाता है और नई नवीनतम रिलीज़ बन जाता है।
नियम और चेतावनी
- रिलीज़ Android प्लेटफ़ॉर्म के औपचारिक संस्करण से मेल खाती है, जैसे कि 1.5 या 8.1। प्लेटफ़ॉर्म की रिलीज़
AndroidManifest.xml
फ़ाइलों केSdkVersion
फ़ील्ड के संस्करण से मेल खाती है और स्रोत ट्री मेंframeworks/base/api
के भीतर परिभाषित है। - अपस्ट्रीम प्रोजेक्ट एक ओपन सोर्स प्रोजेक्ट है जिससे एंड्रॉइड स्टैक कोड खींचता है। लिनक्स कर्नेल और वेबकिट जैसी परियोजनाओं के अलावा, हम अपस्ट्रीम परियोजनाओं के रूप में काम करने के लिए एआरटी, एंड्रॉइड एसडीके टूल्स और बायोनिक जैसे कुछ अर्ध-स्वायत्त एंड्रॉइड प्रोजेक्ट्स को माइग्रेट करना जारी रखते हैं। आम तौर पर, इन परियोजनाओं को पूरी तरह से सार्वजनिक पेड़ में विकसित किया जाता है। कुछ अपस्ट्रीम परियोजनाओं के लिए, डेवलपर्स सीधे अपस्ट्रीम परियोजना में योगदान करते हैं। विवरण के लिए, अपस्ट्रीम प्रोजेक्ट देखें। दोनों ही मामलों में, स्नैपशॉट को समय-समय पर रिलीज़ में खींचा जाता है।
- हर समय, एक रिलीज़ कोडलाइन (जिसमें git में एक से अधिक शाखाएँ शामिल हो सकती हैं) को किसी दिए गए Android प्लेटफ़ॉर्म संस्करण के लिए एकमात्र विहित स्रोत कोड माना जाता है। ओईएम और अन्य समूह निर्माण उपकरण केवल रिलीज शाखा से ही खींचे जाने चाहिए।
- प्रायोगिक कोडलाइन समुदाय से परिवर्तनों को पकड़ने के लिए स्थापित की जाती हैं ताकि स्थिरता की ओर नज़र रखते हुए उन्हें पुनरावृत्त किया जा सके।
- स्थिर साबित होने वाले परिवर्तन अंततः एक रिलीज़ शाखा में खींच लिए जाते हैं। यह केवल बग फिक्स, एप्लिकेशन सुधार और अन्य परिवर्तनों पर लागू होता है जो प्लेटफॉर्म के एपीआई को प्रभावित नहीं करते हैं।
- आवश्यकतानुसार अपस्ट्रीम प्रोजेक्ट्स (एंड्रॉइड अपस्ट्रीम प्रोजेक्ट्स सहित) से रिलीज़ शाखाओं में परिवर्तन खींचे जाते हैं।
- n+1 वां संस्करण (फ्रेमवर्क और प्लेटफॉर्म एपीआई का अगला प्रमुख संस्करण) Google द्वारा आंतरिक रूप से विकसित किया गया है। विवरण के लिए, निजी कोडलाइन देखें।
- परिवर्तन अपस्ट्रीम, रिलीज़ और प्रायोगिक शाखाओं से आवश्यकतानुसार Google की निजी शाखा में खींचे जाते हैं।
- जब अगले संस्करण के लिए प्लेटफ़ॉर्म एपीआई को स्थिर और पूरी तरह से परीक्षण किया जाता है, तो Google अगले प्लेटफ़ॉर्म संस्करण (विशेष रूप से, एक नया
SdkVersion
) की रिलीज़ में कटौती करता है। यह आंतरिक कोडलाइन को सार्वजनिक रिलीज़ शाखा और नए वर्तमान प्लेटफ़ॉर्म कोडलाइन के रूप में बनाया जा रहा है। - जब एक नया प्लेटफ़ॉर्म संस्करण काटा जाता है, तो उसी समय एक संबंधित प्रयोगात्मक कोडलाइन बनाई जाती है।
निजी कोडलाइन
उपरोक्त स्रोत प्रबंधन रणनीति में एक कोडलाइन शामिल है जिसे Google Android के वर्तमान सार्वजनिक संस्करण पर ध्यान केंद्रित करने के लिए निजी रखता है।
ओईएम और अन्य डिवाइस निर्माता स्वाभाविक रूप से एंड्रॉइड के नवीनतम संस्करण के साथ उपकरणों को शिप करना चाहते हैं। इसी तरह, एप्लिकेशन डेवलपर आवश्यकता से अधिक प्लेटफ़ॉर्म संस्करणों से निपटना नहीं चाहते हैं। इस बीच, Google एक प्लेटफ़ॉर्म और उत्पाद के रूप में Android की रणनीतिक दिशा की ज़िम्मेदारी रखता है। हमारा दृष्टिकोण एंड्रॉइड से संबंधित बौद्धिक संपदा की सुरक्षा हासिल करते हुए सुविधाओं को चलाने के लिए कम संख्या में प्रमुख उपकरणों पर केंद्रित है।
परिणामस्वरूप, Google के पास अक्सर तृतीय पक्षों की गोपनीय जानकारी होती है और उचित सुरक्षा प्राप्त करने तक संवेदनशील विशेषताओं को प्रकट करने से बचना चाहिए। इसके अलावा, यदि एक समय में बहुत से प्लेटफ़ॉर्म संस्करण मौजूद हैं, तो प्लेटफ़ॉर्म के लिए वास्तविक जोखिम हैं। इन कारणों से, हमने Android के वर्तमान में सार्वजनिक स्थिर संस्करण पर ध्यान केंद्रित करने के लिए ओपन सोर्स प्रोजेक्ट (तृतीय-पक्ष योगदान सहित) को संरचित किया है। प्लेटफ़ॉर्म के अगले संस्करण पर गहन विकास तब तक निजी रूप से होता है जब तक कि यह आधिकारिक रिलीज़ बनने के लिए तैयार न हो जाए।
हम मानते हैं कि कई योगदानकर्ता इस दृष्टिकोण से असहमत हैं और हम उनके दृष्टिकोण का सम्मान करते हैं। हालांकि, यह वह तरीका है जो हमें सबसे अच्छा लगता है और जिसे हमने Android के लिए लागू करने के लिए चुना है।