एंड्रॉइड स्टूडियो 3.5 कैनरी एक त्वरित रन प्रतिस्थापन "परिवर्तन लागू करें" जोड़ता है

click fraud protection

एंड्रॉइड स्टूडियो 3.5 लोकप्रिय ऐप डेवलपमेंट टूल के इंस्टेंट रन फीचर के उत्तराधिकारी, अप्लाई चेंजेस को पेश करता है।

एंड्रॉइड स्टूडियो 3.5 (वर्तमान में कैनरी और डेव चैनलों में) अब आपके ऐप में कोड परिवर्तनों को पुश करने और ऐप को पुनरारंभ किए बिना तुरंत उनके प्रभाव देखने का एक नया तरीका पेश करता है। इसे केवल "परिवर्तन लागू करें" नाम दिया गया है, यह पिछले संस्करणों में "इंस्टेंट रन" सुविधा का उत्तराधिकारी है एंड्रॉइड स्टूडियो.

गूगल का एंड्रॉइड डेवलपर्स ब्लॉग परिवर्तन लागू करने के बारे में निम्नलिखित कहता है:

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

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

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

  • किसी वर्ग, विधि या फ़ील्ड को जोड़ना या हटाना
  • मैनिफ़ेस्ट बदलना
  • विधि हस्ताक्षर बदलना
  • विधियों या वर्गों के संशोधक बदलना
  • कक्षाओं का नाम बदलना
  • वर्ग विरासत बदलना
  • किसी संसाधन को जोड़ना या हटाना

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

"परिवर्तन लागू करें" और "तत्काल रन" के बीच अंतर के अधिक विस्तृत विवरण के लिए, एंड्रॉइड स्टूडियो टीम के एक Google कर्मचारी ने यह कहा reddit:

यह कुछ बहुत, बहुत अलग करता है। इंस्टेंट रन का निर्माण पर बहुत विशिष्ट प्रभाव पड़ा, आपकी प्रत्येक कक्षा को संकलित समय पर उपकरणित किया गया ताकि उन्हें कक्षा के नए संस्करण के साथ रनटाइम के दौरान प्रतिस्थापित करने के लिए तैयार किया जा सके। यह आपके ऐप को अधिक क्रमिक रूप से पुनः अपलोड करने के लिए आपके एपीके को कई एपीके में विभाजित करता है।

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

उम्मीद है कि "परिवर्तन लागू करें" अंततः बीटा और स्थिर चैनलों में "इंस्टेंट रन" को प्रतिस्थापित कर देगा क्योंकि Google अपने प्रदर्शन और स्थिरता में सुधार कर रहा है।


स्रोत: एंड्रॉइड डेवलपर्स ब्लॉग