Android Gradle प्लगिन 2.2.0 (सितंबर 2016)
- डिपेंडेंसी:
- नया:
- 
    - Gradle 2.14.1 का इस्तेमाल करता है. इसमें परफ़ॉर्मेंस को बेहतर बनाने से जुड़ी सुविधाएं और नई सुविधाएं शामिल हैं. साथ ही, इसमें सुरक्षा से जुड़ी एक ऐसी समस्या को ठीक किया गया है जिसकी वजह से Gradle डेमॉन का इस्तेमाल करते समय, स्थानीय विशेषाधिकारों को बढ़ाया जा सकता है. ज़्यादा जानकारी के लिए, Gradle के रिलीज़ नोट देखें.
- 
      externalNativeBuild {}डीएसएल का इस्तेमाल करके, Gradle अब आपको अपने नेटिव सोर्स से लिंक करने और CMake या ndk-build का इस्तेमाल करके नेटिव लाइब्रेरी कंपाइल करने की सुविधा देता है. नेटिव लाइब्रेरी बनाने के बाद, Gradle उन्हें आपके APK में पैकेज करता है. Gradle के साथ CMake और ndk-build का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, अपने प्रोजेक्ट में C और C++ कोड जोड़ना लेख पढ़ें.
- कमांड लाइन से बिल्ड चलाने पर, Gradle अब उन सभी एसडीके कॉम्पोनेंट या अपडेट को अपने-आप डाउनलोड करने की कोशिश करता है जिन पर आपका प्रोजेक्ट निर्भर करता है. ज़्यादा जानने के लिए, Gradle की मदद से, मौजूद नहीं हैं ऐसे पैकेज अपने-आप डाउनलोड होने की सुविधा लेख पढ़ें.
- कैशिंग की नई एक्सपेरिमेंटल सुविधा की मदद से, Gradle को बिल्ड करने में लगने वाले समय को कम किया जा सकता है. इसके लिए, यह सुविधा आपकी लाइब्रेरी के प्री-डेक्स्ड वर्शन को पहले से ही डेक्स कर लेती है, उन्हें सेव करती है, और उनका फिर से इस्तेमाल करती है. एक्सपेरिमेंट के तौर पर उपलब्ध इस सुविधा के इस्तेमाल के बारे में ज़्यादा जानने के लिए, बिल्ड कैश गाइड पढ़ें.
- यह नई डिफ़ॉल्ट पैकेजिंग पाइपलाइन का इस्तेमाल करके, बिल्ड की परफ़ॉर्मेंस को बेहतर बनाता है. यह पाइपलाइन, एक ही टास्क में ज़िप करने, हस्ताक्षर करने, और ज़िपलाइनिंग को मैनेज करती है. gradle.propertiesफ़ाइल मेंandroid.useOldPackaging=trueजोड़कर, पैकेजिंग के पुराने टूल का इस्तेमाल किया जा सकता है. नए पैकेजिंग टूल का इस्तेमाल करते समय,zipalignDebugटास्क उपलब्ध नहीं होता. हालांकि,createZipAlignTask(String taskName, File inputFile, File outputFile)तरीके को कॉल करके, खुद से एक बनाया जा सकता है.
- अब APK साइन करने के लिए, JAR साइनिंग के साथ-साथ APK सिग्नेचर स्कीम v2 का भी इस्तेमाल किया जाता है. सभी Android प्लैटफ़ॉर्म पर, जनरेट किए गए APK इस्तेमाल किए जा सकते हैं. साइन करने के बाद, इन APK में कोई भी बदलाव करने से, इनके v2 सिग्नेचर अमान्य हो जाते हैं. साथ ही, इन्हें किसी डिवाइस पर इंस्टॉल नहीं किया जा सकता. इस सुविधा को बंद करने के लिए,
      मॉड्यूल-लेवल की build.gradleफ़ाइल में यह कोड जोड़ें:Groovyandroid { ... signingConfigs { config { ... v2SigningEnabled false } } } Kotlinandroid { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } } 
- मल्टीडेक्स बिल्ड के लिए, अब ProGuard के नियमों का इस्तेमाल किया जा सकता है. इससे यह तय किया जा सकता है कि Gradle को आपके ऐप्लिकेशन की main DEX फ़ाइल में किन क्लास को कंपाइल करना चाहिए. ऐसा इसलिए होता है, क्योंकि Android सिस्टम आपके ऐप्लिकेशन को शुरू करते समय, सबसे पहले मुख्य DEX फ़ाइल लोड करता है. इसलिए, मुख्य DEX फ़ाइल में कंपाइल करके, स्टार्टअप के दौरान कुछ क्लास को प्राथमिकता दी जा सकती है. अपनी मुख्य DEX फ़ाइल के लिए ProGuard कॉन्फ़िगरेशन फ़ाइल बनाने के बाद, buildTypes.multiDexKeepProguardका इस्तेमाल करके, कॉन्फ़िगरेशन फ़ाइल का पाथ Gradle को पास करें. इस डीएसएल का इस्तेमाल करना,buildTypes.proguardFilesका इस्तेमाल करने से अलग है.buildTypes.proguardFilesआपके ऐप्लिकेशन के लिए ProGuard के सामान्य नियम उपलब्ध कराता है और मुख्य DEX फ़ाइल के लिए क्लास तय नहीं करता है.
- android:extractNativeLibsफ़्लैग के लिए सहायता जोड़ता है. इससे किसी डिवाइस पर ऐप्लिकेशन इंस्टॉल करते समय, उसका साइज़ कम किया जा सकता है. जब इस फ़्लैग को अपने ऐप्लिकेशन मेनिफ़ेस्ट के- <application>एलिमेंट में- falseपर सेट किया जाता है, तो Gradle, आपकी नेटिव लाइब्रेरी के बिना कंप्रेस किए गए और अलाइन किए गए वर्शन को आपके APK के साथ पैकेज करता है. इससे- PackageManagerको, इंस्टॉल करने के दौरान APK से डिवाइस के फ़ाइल सिस्टम में आपकी नेटिव लाइब्रेरी कॉपी करने से रोका जाता है. साथ ही, इससे आपके ऐप्लिकेशन के डेल्टा अपडेट का साइज़ कम हो जाता है.
- अब प्रॉडक्ट के फ़्लेवर के लिए, 
      versionNameSuffixऔरapplicationIdSuffixएट्रिब्यूट की वैल्यू दी जा सकती है. (समस्या 59614)
 
- बदलाव:
- 
  - 
    getDefaultProguardFileअब ProGuard की डिफ़ॉल्ट फ़ाइलें दिखाता है. ये फ़ाइलें, Gradle के लिए Android प्लगिन उपलब्ध कराता है. अब यह Android SDK में मौजूद फ़ाइलों का इस्तेमाल नहीं करता.
- Jack कंपाइलर की परफ़ॉर्मेंस और सुविधाओं में सुधार किया गया है:
    - Jack अब Jacoco टेस्ट कवरेज के साथ काम करता है. इसके लिए, testCoverageEnabledकोtrueपर सेट करना होगा.
- एनोटेशन प्रोसेसर के लिए बेहतर सहायता. आपके क्लासपाथ पर मौजूद एनोटेशन प्रोसेसर, जैसे कि कोई भी compileडिपेंडेंसी, आपके बिल्ड पर अपने-आप लागू हो जाती हैं. अपने बिल्ड में एनोटेशन प्रोसेसर भी तय किया जा सकता है. साथ ही, मॉड्यूल-लेवल कीbuild.gradleफ़ाइल मेंjavaCompileOptions.annotationProcessorOptions {}डीएसएल का इस्तेमाल करके, आर्ग्युमेंट पास किए जा सकते हैं:Groovyandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } } Kotlinandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } } अगर आपको कंपाइल करने के समय एनोटेशन प्रोसेसर लागू करना है, लेकिन उसे अपने APK में शामिल नहीं करना है, तो annotationProcessorडिपेंडेंसी स्कोप का इस्तेमाल करें:Groovydependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant } Kotlindependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant } 
- डिफ़ॉल्ट रूप से, अगर Gradle डेमॉन का हीप साइज़ कम से कम 1.5 जीबी है, तो Jack अब Gradle की तरह ही प्रोसेस में चलता है. डेमॉन हीप का साइज़ बदलने के लिए, अपनी gradle.propertiesफ़ाइल में यह जोड़ें:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M 
 सेट किए जा सकने वाले पैरामीटर की सूची देखने के लिए, कमांड लाइन में यह कमांड चलाएं: java -jar /build-tools/jack.jar --help-properties 
- Jack अब Jacoco टेस्ट कवरेज के साथ काम करता है. इसके लिए, 
 
- 
    
| कम से कम वर्शन | डिफ़ॉल्ट वर्शन | नोट | |
|---|---|---|---|
| Gradle | 2.14.1 | 2.14.1 | ज़्यादा जानने के लिए, Gradle को अपडेट करने का तरीका देखें. | 
| एसडीके बिल्ड टूल | 23.0.2 | 23.0.2 | एसडीके बिल्ड टूल इंस्टॉल करें या कॉन्फ़िगर करें. | 
