Android Gradle प्लग इन 2.2.0 (सितंबर 2016)

डिपेंडेंसी:
कम से कम वर्शन डिफ़ॉल्ट वर्शन नोट
ग्रेडल 2.14.1 2.14.1 ज़्यादा जानने के लिए, Gredle को अपडेट करना देखें.
SDK टूल बनाने वाले टूल 23.0.2 23.0.2 SDK बिल्ड टूल इंस्टॉल करें या कॉन्फ़िगर करें.
नया:
  • Gradle 2.14.1 का इस्तेमाल करता है, जिसमें परफ़ॉर्मेंस में सुधार शामिल हैं और नई सुविधाओं के साथ-साथ सुरक्षा से जुड़े जोखिम की आशंका को दूर करता है. ग्रेडल डीमन का इस्तेमाल करते समय, लोकल प्रिविलेज एस्कलेशन. ज़्यादा के लिए जानकारी के लिए, Gradle प्रॉडक्ट की जानकारी.
  • का उपयोग करके externalNativeBuild {} DSL, Gradle अब आपको लिंक किया जा सकता है और इसका इस्तेमाल करके नेटिव लाइब्रेरी को कंपाइल किया जा सकता है CMake या ndk-build. अपनी स्थानीय लाइब्रेरी बनाने के बाद, Gradle आपके APK में पैकेज के रूप में शामिल करता है. CMake की सुविधा इस्तेमाल करने और Gradle के साथ ndk-build, अपने डिवाइस में C और C++ कोड जोड़ें प्रोजेक्ट.
  • जब आप किसी कमांड लाइन से बनाया जाता है, तो Gradle अब अपने-आप डाउनलोड करने की कोशिश करता है SDK टूल के ऐसे कॉम्पोनेंट या अपडेट जो आपके प्रोजेक्ट में मौजूद न हों. ज़्यादा जानने के लिए, अपने-आप डाउनलोड होने की सुविधा के बारे में पढ़ें Gradle के साथ अनुपलब्ध पैकेज.
  • नई एक्सपेरिमेंट के तौर पर कैश मेमोरी में सेव करने की सुविधा से, Gradle बनाने की प्रोसेस तेज़ हो जाती है के प्री-डेक्सिंग, स्टोर, और प्री-डेक्स किए गए वर्शन में से आपकी लाइब्रेरी पर टैप करें. एक्सपेरिमेंट के तौर पर शुरू की गई इस सुविधा के इस्तेमाल के बारे में ज़्यादा जानने के लिए, बिल्ड पढ़ें कैश मेमोरी गाइड.
  • नई डिफ़ॉल्ट पैकेजिंग अपनाकर, बिल्ड की परफ़ॉर्मेंस को बेहतर बनाता है पाइपलाइन जो एक ही टास्क में ज़िप करना, साइन इन करना, और ज़िपलाइन करना मैनेज करती है. आपने लोगों तक पहुंचाया मुफ़्त में पुराने पैकेजिंग टूल का इस्तेमाल फिर से शुरू करने के लिए किया जा सकता है. android.useOldPackaging=true को आपके gradle.properties फ़ाइल. नई पैकेजिंग का इस्तेमाल करते समय टूल की मदद से, zipalignDebug टास्क उपलब्ध नहीं है. हालांकि, तो खुद ही एक खाता बनाया जा सकता है. इसके लिए, createZipAlignTask(String taskName, File inputFile, File outputFile) तरीका.
  • APK साइनिंग की सुविधा में, अब APK सिग्नेचर स्कीम का इस्तेमाल किया जाता है v2 का इस्तेमाल कर सकते हैं. सभी Android प्लैटफ़ॉर्म नतीजे देने वाले APK. हस्ताक्षर करने के बाद, इन APKs में कोई भी बदलाव करने पर, v2 हस्ताक्षर का इस्तेमाल करता है और डिवाइस पर इंस्टॉल होने से रोकता है. इस सुविधा को बंद करने के लिए, अपने मॉड्यूल-लेवल की build.gradle फ़ाइल में यह जोड़ें:

    ग्रूवी

    android {
      ...
      signingConfigs {
        config {
          ...
          v2SigningEnabled false
        }
      }
    }
          

    Kotlin

    android {
      ...
      signingConfigs {
        create("config") {
          ...
          v2SigningEnabled = false
        }
      }
    }
          
  • मल्टीडेक्स बिल्ड के लिए अब ProGuard नियमों का इस्तेमाल करके यह तय किया जा सकता है कि क्लास Gradle को आपके ऐप्लिकेशन की मुख्य DEX फ़ाइल में कंपाइल करना चाहिए. क्योंकि आपका ऐप्लिकेशन शुरू करते समय, Android सिस्टम मुख्य DEX फ़ाइल को सबसे पहले लोड करता है, स्टार्टअप के समय कुछ क्लास को मुख्य DEX में कंपाइल करके उन्हें प्राथमिकता दे सकता है फ़ाइल से लिए जाते हैं. जब आप खास तौर पर अपने मुख्य DEX फ़ाइल का इस्तेमाल किया जाता है, तो कॉन्फ़िगरेशन फ़ाइल के पाथ को Gradle में पास करें buildTypes.multiDexKeepProguard. इस DSL का उपयोग करना अलग है इस्तेमाल करने से buildTypes.proguardFiles, जो सामान्य ProGuard की सुविधा देता है आपके ऐप्लिकेशन के नियम सेट करता है और मुख्य DEX फ़ाइल के लिए क्लास की जानकारी नहीं देता.
  • android:extractNativeLibs फ़्लैग के लिए सहायता जोड़ी जाती है, इस तरह, आपके ऐप्लिकेशन को किसी डिवाइस पर इंस्टॉल करने पर उसका साइज़ कम हो सकता है डिवाइस. जब आप इसमें इस फ़्लैग को false पर सेट करते हैं, <application> आपके ऐप्लिकेशन मेनिफ़ेस्ट के एलिमेंट के साथ-साथ, Gradle पैकेज को कंप्रेस नहीं किया गया है और आपकी मूल लाइब्रेरी के APK के साथ अलाइन किए गए वर्शन. यह PackageManager को रोकता है आपकी मूल लाइब्रेरी को APK से डिवाइस में कॉपी करने से लेकर फ़ाइल सिस्टम इंस्टॉल करते हैं और इसे आपके ऐप्लिकेशन के डेल्टा अपडेट कम हो जाते हैं.
  • अब आप निर्दिष्ट कर सकते हैं versionNameSuffix और प्रॉडक्ट के फ़्लेवर के लिए applicationIdSuffix. (समस्या 59614)
बदलाव:
  • getDefaultProguardFile अब डिफ़ॉल्ट ProGuard को लौटाता है ऐसी फ़ाइलें जिन्हें Gradle के लिए Android प्लगिन ने उपलब्ध कराया है और जो अब नहीं दी गई हैं का इस्तेमाल करता है.
  • जैक कंपाइलर की बेहतर परफ़ॉर्मेंस और सुविधाएं:
    • जैक अब सेटिंग करते समय जैको को टेस्ट कवरेज का समर्थन करता है true के लिए testCoverageEnabled.
    • एनोटेशन प्रोसेसर के लिए बेहतर सहायता. व्याख्या आपके क्लासपाथ पर मौजूद प्रोसेसर, जैसे कि compile डिपेंडेंसी, आपके बिल्ड पर अपने-आप लागू हो जाती हैं. आप आपके बिल्ड और पास में एनोटेशन प्रोसेसर भी तय करें का इस्तेमाल करके आर्ग्युमेंट बनाएं javaCompileOptions.annotationProcessorOptions {} DSL मॉड्यूल-लेवल की build.gradle फ़ाइल:

      ग्रूवी

      android {
        ...
        defaultConfig {
          ...
          javaCompileOptions {
            annotationProcessorOptions {
              className 'com.example.MyProcessor'
              // Arguments are optional.
              arguments = [ foo : 'bar' ]
            }
          }
        }
      }
          

      Kotlin

      android {
        ...
        defaultConfig {
          ...
          javaCompileOptions {
            annotationProcessorOptions {
              className = "com.example.MyProcessor"
              // Arguments are optional.
              arguments(mapOf(foo to "bar"))
            }
          }
        }
      }
          

      अगर आपको कंपाइलेशन के दौरान कोई एनोटेशन प्रोसेसर लागू करना है समय है, लेकिन इसे अपने APK में शामिल न करें, तो annotationProcessor डिपेंडेंसी का स्कोप:

      ग्रूवी

      dependencies {
          compile 'com.google.dagger:dagger:2.0'
          annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
         // or use buildVariantAnnotationProcessor to target a specific build variant
      }
          

      Kotlin

      dependencies {
          implementation("com.google.dagger:dagger:2.0")
          annotationProcessor("com.google.dagger:dagger-compiler:2.0")
         // or use buildVariantAnnotationProcessor to target a specific build variant
      }
          
    • जो पैरामीटर सेट किए जा सकते हैं उनकी सूची के लिए, नीचे दिए गए निर्देशों का पालन करें कमांड लाइन:

      java -jar /build-tools/jack.jar --help-properties
      

    • डिफ़ॉल्ट रूप से, अगर ग्रेडल डीमन का हीप साइज़ कम से कम 1.5 है जीबी, जैक अब Gradle की तरह ही काम करता है. इसे एडजस्ट करने के लिए डीमन हीप साइज़ की वैल्यू के तौर पर, इन्हें अपने gradle.properties फ़ाइल:

      # This sets the daemon heap size to 1.5GB.
      org.gradle.jvmargs=-Xmx1536M