Android Gradle प्लगिन 3.2.0 (सितंबर 2018)
Android प्लगिन के इस वर्शन के लिए, ये ज़रूरी शर्तें पूरी होनी चाहिए:
| सबसे पुराना वर्शन | डिफ़ॉल्ट वर्शन | नोट | |
|---|---|---|---|
| ग्रेडल | 4.6 | 4.6 | ज़्यादा जानकारी के लिए, Gradle को अपडेट करने का तरीका देखें. |
| एसडीके बिल्ड टूल | 28.0.3 | 28.0.3 | इंस्टॉल करें या कॉन्फ़िगर करें एसडीके बिल्ड टूल. |
3.2.1 (अक्टूबर 2018)
इस अपडेट के बाद, आपको एसडीके बिल्ड टूल के लिए कोई वर्शन तय करने की ज़रूरत नहीं है. Android Gradle प्लगिन अब डिफ़ॉल्ट रूप से, वर्शन 28.0.3 का इस्तेमाल करता है.
नई सुविधाएं
-
Android ऐप्लिकेशन बंडल बनाने की सुविधा: ऐप्लिकेशन बंडल, अपलोड करने का एक नया फ़ॉर्मैट है. इसमें आपके ऐप्लिकेशन का कंपाइल किया गया सारा कोड और संसाधन शामिल होते हैं. साथ ही, Google Play Store पर APK जनरेट करने और उस पर साइन करने की प्रोसेस को टाला जा सकता है. अब आपको एक से ज़्यादा APK बनाने, उन पर साइन करने, और उन्हें मैनेज करने की ज़रूरत नहीं है. साथ ही, उपयोगकर्ताओं को अपने डिवाइस के लिए ऑप्टिमाइज़ किए गए छोटे डाउनलोड मिलते हैं. ज़्यादा जानने के लिए, Android ऐप्लिकेशन बंडल के बारे में जानकारी पढ़ें.
-
एनोटेशन प्रोसेसर का इस्तेमाल करते समय, इंक्रीमेंटल बिल्ड की स्पीड बेहतर करने की सुविधा:
AnnotationProcessorOptionsDSL अबCommandLineArgumentProviderका इस्तेमाल करता है. इससे, या तो आप या एनोटेशन प्रोसेसर का लेखक, इंक्रीमेंटल बिल्ड प्रॉपर्टी टाइप एनोटेशन का इस्तेमाल करके, प्रोसेसर के लिए आर्ग्युमेंट को एनोटेट कर सकता है. . इन एनोटेशन का इस्तेमाल करने से, इंक्रीमेंटल और कैश किए गए क्लीन बिल्ड की परफ़ॉर्मेंस और सटीकता बेहतर होती है. ज़्यादा जानने के लिए, एनोटेशन प्रोसेसर को आर्ग्युमेंट पास करना लेख पढ़ें. -
AndroidX के लिए माइग्रेशन टूल: Android 3.2 और इसके बाद वाले वर्शन के साथ Android Gradle प्लगिन 3.2.0 का इस्तेमाल करते समय, अपने प्रोजेक्ट की लोकल और मेवन डिपेंडेंसी को नई AndroidX लाइब्रेरी का इस्तेमाल करने के लिए माइग्रेट किया जा सकता है. इसके लिए, मेन्यू बार में जाकर रीफ़ैक्टर करें > AndroidX पर माइग्रेट करें को चुनें. इस माइग्रेशन टूल का इस्तेमाल करने से, आपकी
gradle.propertiesफ़ाइल में ये फ़्लैग भीtrueपर सेट हो जाते हैं:-
android.useAndroidX: जब इसेtrueपर सेट किया जाता है, तो Android प्लगिन, सपोर्ट लाइब्रेरी के बजाय सही 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 या इसके बाद वाले वर्शन पर काम करने वाले डिवाइस पर, ऐप्लिकेशन का डीबग वर्शन डिप्लॉय करते समय, नेटिव मल्टीडेक्स की सुविधा चालू हो जाती थी. अब, चाहे किसी डिवाइस पर डिप्लॉय किया जा रहा हो या रिलीज़ के लिए APK बनाया जा रहा हो, Android Gradle प्लगिन उन सभी मॉड्यूल के लिए नेटिव मल्टीडेक्स की सुविधा चालू कर देता है जिनके लिए
minSdkVersion=21या इसके बाद का वर्शन सेट किया गया है. -
प्लगिन अब protobuf प्लगिन (0.8.6), Kotlin प्लगिन (1.2.50) और Crashlytics प्लगिन (1.25.4) के सबसे नए वर्शन का इस्तेमाल करने की ज़रूरी शर्त लागू करता है.
-
फ़़ीचर मॉड्यूल प्लगिन,
com.android.feature, अब मॉड्यूल का नाम तय करते समय, सिर्फ़ अक्षरों, अंकों, और अंडरस्कोर का इस्तेमाल करने की ज़रूरी शर्त लागू करता है. उदाहरण के लिए, अगर आपके फ़ीचर मॉड्यूल के नाम में डैश शामिल हैं, आपको बिल्ड से जुड़ी गड़बड़ी का मैसेज मिलेगा. यह सेटिंग, डाइनैमिक फ़ीचर प्लगिन की सेटिंग से मेल खाती है.
गड़बड़ियां ठीक की गईं
- डेटा बाइंडिंग वाले प्रोजेक्ट में, JavaCompile को अब कैश किया जा सकता है. (समस्या #69243050)
- डेटा बाइंडिंग वाली लाइब्रेरी मॉड्यूल के लिए, कंपाइल करने से बचने की बेहतर सुविधा. (समस्या #77539932)
- अगर आपने पहले के वर्शन में, बिल्ड से जुड़ी कुछ अनचाही गड़बड़ियों की वजह से, कॉन्फ़िगर-ऑन-डिमांड की सुविधा बंद कर दी है, तो अब इसे फिर से चालू किया जा सकता है. (समस्या #77910727)