एंड्रॉइड सॉफ्टवेयर प्रबंधन

एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) ओईएम और अन्य डिवाइस कार्यान्वयनकर्ताओं द्वारा पोर्ट किए जाने और अपने स्वयं के हार्डवेयर पर चलने के लिए एक संपूर्ण सॉफ़्टवेयर स्टैक बनाए रखता है। एंड्रॉइड की गुणवत्ता बनाए रखने के लिए, Google ने पूर्णकालिक इंजीनियरों, उत्पाद प्रबंधकों, उपयोगकर्ता इंटरफ़ेस डिजाइनरों, गुणवत्ता आश्वासन परीक्षकों और आधुनिक उपकरणों को बाजार में लाने के लिए आवश्यक अन्य सभी भूमिकाओं में योगदान दिया है।

तदनुसार, हम एंड्रॉइड के वर्तमान स्थिर संस्करण को अस्थिर प्रयोगात्मक कार्य से स्पष्ट रूप से अलग करने के लिए कई कोडलाइन बनाए रखते हैं। हम एंड्रॉइड कोडलाइन के ओपन सोर्स प्रशासन और रखरखाव को बड़े उत्पाद विकास चक्र में शामिल करते हैं।

एओएसपी कोड प्रबंधन

नीचे दिया गया चार्ट AOSP कोड प्रबंधन और रिलीज़ के पीछे की अवधारणाओं को दर्शाता है।

कोडलाइन आरेख
चित्र 1. AOSP कोड और रिलीज़
  1. किसी भी समय, एंड्रॉइड प्लेटफ़ॉर्म की वर्तमान नवीनतम रिलीज़ होती है। यह आमतौर पर पेड़ में एक शाखा का रूप लेता है।
  2. डिवाइस निर्माता और योगदानकर्ता वर्तमान नवीनतम रिलीज़ के साथ काम करते हैं, बग्स को ठीक करते हैं, नए डिवाइस लॉन्च करते हैं, नई सुविधाओं के साथ प्रयोग करते हैं, इत्यादि।
  3. समानांतर में, Google उत्पाद की ज़रूरतों और लक्ष्यों के अनुसार एंड्रॉइड प्लेटफ़ॉर्म और फ्रेमवर्क के अगले संस्करण पर आंतरिक रूप से काम करता है। हम एक फ्लैगशिप डिवाइस पर डिवाइस पार्टनर के साथ काम करके एंड्रॉइड का अगला संस्करण विकसित करते हैं, जिसकी विशिष्टताओं को एंड्रॉइड को उस दिशा में आगे बढ़ाने के लिए चुना जाता है जिस दिशा में हमारा मानना ​​​​है कि इसे जाना चाहिए।
  4. जब n+1वां संस्करण तैयार हो जाता है, तो इसे सार्वजनिक स्रोत ट्री पर प्रकाशित किया जाता है और यह नई नवीनतम रिलीज़ बन जाती है।

शर्तें और चेतावनी

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

निजी कोडलाइन

उपरोक्त स्रोत प्रबंधन रणनीति में एक कोडलाइन शामिल है जिसे Google एंड्रॉइड के वर्तमान सार्वजनिक संस्करण पर ध्यान केंद्रित करने के लिए निजी रखता है।

ओईएम और अन्य डिवाइस निर्माता स्वाभाविक रूप से एंड्रॉइड के नवीनतम संस्करण के साथ डिवाइस शिप करना चाहते हैं। इसी तरह, एप्लिकेशन डेवलपर आवश्यकता से अधिक प्लेटफ़ॉर्म संस्करणों से निपटना नहीं चाहते हैं। इस बीच, Google एक प्लेटफ़ॉर्म और उत्पाद के रूप में Android की रणनीतिक दिशा की ज़िम्मेदारी बरकरार रखता है। हमारा दृष्टिकोण एंड्रॉइड-संबंधित बौद्धिक संपदा की सुरक्षा को सुरक्षित करते हुए सुविधाओं को चलाने के लिए फ्लैगशिप उपकरणों की एक छोटी संख्या पर केंद्रित है।

परिणामस्वरूप, Google के पास अक्सर तृतीय पक्षों की गोपनीय जानकारी होती है और उसे उचित सुरक्षा प्राप्त होने तक संवेदनशील सुविधाओं का खुलासा करने से बचना चाहिए। इसके अलावा, यदि एक समय में बहुत सारे प्लेटफ़ॉर्म संस्करण मौजूद हैं तो प्लेटफ़ॉर्म के लिए वास्तविक जोखिम हैं। इन कारणों से, हमने एंड्रॉइड के वर्तमान सार्वजनिक स्थिर संस्करण पर ध्यान केंद्रित करने के लिए ओपन सोर्स प्रोजेक्ट (तीसरे पक्ष के योगदान सहित) को संरचित किया है। प्लेटफ़ॉर्म के अगले संस्करण पर गहन विकास तब तक निजी तौर पर होता है जब तक कि यह आधिकारिक रिलीज़ बनने के लिए तैयार न हो जाए।

हम मानते हैं कि कई योगदानकर्ता इस दृष्टिकोण से असहमत हैं और हम उनके दृष्टिकोण का सम्मान करते हैं। हालाँकि, यह वह दृष्टिकोण है जो हमें सबसे अच्छा लगता है और जिसे हमने एंड्रॉइड के लिए लागू करने के लिए चुना है।