Android Gradle प्लगिन 3.2.0 (सितंबर 2018)
Android प्लगिन के इस वर्शन के लिए, ये ज़रूरी हैं:
| कम से कम वर्शन | डिफ़ॉल्ट वर्शन | नोट | |
|---|---|---|---|
| Gradle | 4.6 | 4.6 | ज़्यादा जानने के लिए, Gradle को अपडेट करने का तरीका देखें. |
| एसडीके बिल्ड टूल | 28.0.3 | 28.0.3 | एसडीके बिल्ड टूल इंस्टॉल करें या कॉन्फ़िगर करें. |
3.2.1 (अक्टूबर 2018)
इस अपडेट के बाद, आपको एसडीके बिल्ड टूल के लिए वर्शन तय करने की ज़रूरत नहीं होगी. Android Gradle प्लग इन अब डिफ़ॉल्ट रूप से 28.0.3 वर्शन का इस्तेमाल करता है.
नई सुविधाएं
-
Android ऐप्लिकेशन बंडल बनाने की सुविधा: ऐप्लिकेशन बंडल, अपलोड करने का एक नया फ़ॉर्मैट है. इसमें आपके ऐप्लिकेशन का कंपाइल किया गया पूरा कोड और संसाधन शामिल होते हैं. साथ ही, APK जनरेट करने और साइन करने की प्रोसेस को Google Play Store पर ट्रांसफ़र कर दिया जाता है. अब आपको एक से ज़्यादा APK बनाने, साइन करने, और मैनेज करने की ज़रूरत नहीं है. साथ ही, लोगों को उनके डिवाइस के लिए ऑप्टिमाइज़ किए गए छोटे डाउनलोड मिलते हैं. ज़्यादा जानने के लिए, Android ऐप्लिकेशन बंडल के बारे में जानकारी लेख पढ़ें.
-
एनोटेशन प्रोसेसर का इस्तेमाल करते समय, इंक्रीमेंटल बिल्ड की स्पीड को बेहतर बनाने के लिए सहायता:
AnnotationProcessorOptionsDSL अबCommandLineArgumentProviderतक पहुंच गया है. इससे आपको या एनोटेशन प्रोसेसर के लेखक को, इंक्रीमेंटल बिल्ड प्रॉपर्टी टाइप एनोटेशन का इस्तेमाल करके, प्रोसेसर के लिए आर्ग्युमेंट को एनोटेट करने की सुविधा मिलती है. इन एनोटेशन का इस्तेमाल करने से, इंक्रीमेंटल और कैश मेमोरी में सेव किए गए क्लीन बिल्ड की परफ़ॉर्मेंस और सटीकता बेहतर होती है. ज़्यादा जानने के लिए, एनोटेशन प्रोसेसर को पास किए जाने वाले आर्ग्युमेंट लेख पढ़ें. -
AndroidX के लिए माइग्रेशन टूल: Android 3.2 और उसके बाद के वर्शन के साथ Android Gradle plugin 3.2.0 का इस्तेमाल करते समय, अपने प्रोजेक्ट की लोकल और Maven डिपेंडेंसी को नई AndroidX लाइब्रेरी का इस्तेमाल करने के लिए माइग्रेट किया जा सकता है. इसके लिए, मेन्यू बार में जाकर रीफ़ैक्टर > AndroidX पर माइग्रेट करें को चुनें. इस माइग्रेशन टूल का इस्तेमाल करने पर, आपकी
gradle.propertiesफ़ाइल में मौजूद इन फ़्लैग की वैल्यू भीtrueपर सेट हो जाती है:-
android.useAndroidX:trueपर सेट होने पर, Android प्लगिन Support Library के बजाय, सही AndroidX लाइब्रेरी का इस्तेमाल करता है. इस फ़्लैग को तय न करने पर, प्लगिन इसे डिफ़ॉल्ट रूप सेfalseपर सेट कर देता है. -
android.enableJetifier:trueपर सेट होने पर, Android प्लगिन अपने-आप मौजूदा तीसरे पक्ष की लाइब्रेरी को AndroidX का इस्तेमाल करने के लिए माइग्रेट कर देता है. इसके लिए, वह उनके बाइनरी कोड को फिर से लिखता है. अगर इस फ़्लैग को सेट नहीं किया जाता है, तो प्लगिन इसे डिफ़ॉल्ट रूप सेfalseपर सेट कर देता है. इस फ़्लैग को सिर्फ़ तबtrueपर सेट किया जा सकता है, जबandroid.useAndroidXको भीtrueपर सेट किया गया हो. ऐसा न करने पर, आपको बिल्ड से जुड़ी गड़बड़ी दिखेगी.ज़्यादा जानने के लिए, AndroidX की खास जानकारी पढ़ें.
-
-
नया कोड श्रिंकर, R8: R8, कोड को छोटा करने और उसे अस्पष्ट करने का नया टूल है. यह ProGuard की जगह लेता है. R8 के प्रीव्यू वर्शन का इस्तेमाल शुरू करने के लिए, अपने प्रोजेक्ट की
gradle.propertiesफ़ाइल में यह शामिल करें:android.enableR8 = true
android.enableR8 = true
व्यवहार में बदलाव
-
D8 की मदद से डिसुगरिंग की सुविधा अब डिफ़ॉल्ट रूप से चालू होती है.
-
AAPT2 अब Google की मेवन रिपो पर उपलब्ध है. AAPT2 का इस्तेमाल करने के लिए, पक्का करें कि आपकी
build.gradleफ़ाइल मेंgoogle()डिपेंडेंसी मौजूद हो. यहां दिए गए उदाहरण में देखें:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
नेटिव मल्टीडेक्स की सुविधा अब डिफ़ॉल्ट रूप से चालू होती है. Android Studio के पिछले वर्शन, Android API लेवल 21 या उसके बाद के वर्शन पर चलने वाले डिवाइस पर ऐप्लिकेशन का डीबग वर्शन डिप्लॉय करते समय, नेटिव मल्टीडेक्स की सुविधा चालू करते थे. अब, चाहे आपको किसी डिवाइस पर ऐप्लिकेशन डिप्लॉय करना हो या रिलीज़ के लिए कोई एपीके बनाना हो, Android Gradle प्लगिन उन सभी मॉड्यूल के लिए नेटिव मल्टीडेक्स की सुविधा चालू करता है जो
minSdkVersion=21या इससे ज़्यादा पर सेट हैं. -
यह प्लगिन अब protobuf प्लगिन (0.8.6), Kotlin प्लगिन (1.2.50), और Crashlytics प्लगिन (1.25.4) के कम से कम वर्शन को लागू करता है.
-
फ़ीचर मॉड्यूल प्लगिन,
com.android.feature, अब मॉड्यूल का नाम तय करते समय सिर्फ़ अक्षरों, अंकों, और अंडरस्कोर का इस्तेमाल करने की अनुमति देता है. उदाहरण के लिए, अगर आपके फ़ीचर मॉड्यूल के नाम में डैश शामिल हैं, तो आपको बिल्ड से जुड़ी गड़बड़ी दिखेगी. यह व्यवहार, डाइनैमिक फ़ीचर प्लगिन के व्यवहार से मेल खाता है.
गड़बड़ियां ठीक की गईं
- डेटा बाइंडिंग की सुविधा वाले प्रोजेक्ट में, अब JavaCompile को कैश मेमोरी में सेव किया जा सकता है. (समस्या #69243050)
- डेटा बाइंडिंग की सुविधा वाले लाइब्रेरी मॉड्यूल के लिए, कंपाइल करने से बचने की बेहतर सुविधा. (समस्या #77539932)
- अगर आपने बिल्ड से जुड़ी कुछ गड़बड़ियों की वजह से, पिछले वर्शन में configure-on-demand सुविधा बंद कर दी थी, तो अब इसे फिर से चालू किया जा सकता है. (समस्या #77910727)