Android Gradle Eklentisi 2.2.0 (Eylül 2016)

Bağımlılıklar:
Minimum sürüm Varsayılan sürüm Notlar
Gradle 2.14.1 2.14.1 Daha fazla bilgi edinmek için Gradle'ı güncelleme başlıklı makaleyi inceleyin.
SDK Build Tools 23.0.2 23.0.2 SDK oluşturma araçlarını yükleyin veya yapılandırın.
Yeni:
  • Gradle 2.14.1 kullanılır. Bu sürümde performans iyileştirmeleri ve yeni özellikler yer alır. Ayrıca Gradle daemon'ı kullanılırken yerel ayrıcalık yükseltmesine izin veren bir güvenlik açığı düzeltilir. Daha fazla bilgi için Gradle sürüm notlarına bakın.
  • Gradle, externalNativeBuild {} DSL'yi kullanarak artık yerel kaynaklarınıza bağlantı oluşturmanıza ve CMake veya ndk-build kullanarak yerel kitaplıkları derlemenize olanak tanıyor. Yerel kitaplıklarınızı oluşturduktan sonra Gradle bunları APK'nize paketler. CMake ve ndk-build'i Gradle ile kullanma hakkında daha fazla bilgi edinmek için Projenize C ve C++ Kodu Ekleme başlıklı makaleyi inceleyin.
  • Komut satırından derleme çalıştırdığınızda Gradle artık projenizin bağlı olduğu eksik SDK bileşenlerini veya güncellemeleri otomatik olarak indirmeye çalışır. Daha fazla bilgi edinmek için Gradle ile eksik paketleri otomatik olarak indirme başlıklı makaleyi inceleyin.
  • Yeni bir deneysel önbelleğe alma özelliği, Gradle'ın kitaplıklarınızın önceden dexlenmiş sürümlerini önceden dexleyerek, depolayarak ve yeniden kullanarak derleme sürelerini hızlandırmasına olanak tanır. Bu deneysel özelliği kullanma hakkında daha fazla bilgi edinmek için Önbellek Oluşturma kılavuzunu okuyun.
  • Sıkıştırma, imzalama ve zipaligning işlemlerini tek bir görevde gerçekleştiren yeni bir varsayılan paketleme işlem hattı kullanılarak derleme performansı iyileştirilir. android.useOldPackaging=true dosyanıza gradle.properties ekleyerek eski paketleme araçlarını kullanmaya geri dönebilirsiniz. Yeni paketleme aracı kullanılırken zipalignDebug görevi kullanılamaz. Ancak, createZipAlignTask(String taskName, File inputFile, File outputFile) yöntemini çağırarak kendiniz oluşturabilirsiniz.
  • APK imzalama artık geleneksel JAR imzalamaya ek olarak APK İmza Şeması v2'yi kullanıyor. Tüm Android platformları, sonuçta elde edilen APK'ları kabul eder. İmzalama işleminden sonra bu APK'larda yapılan değişiklikler, v2 imzalarını geçersiz kılar ve cihazlara yüklenmelerini engeller. Bu özelliği devre dışı bırakmak için modül düzeyindeki build.gradle dosyanıza aşağıdakileri ekleyin:

    Groovy

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

    Kotlin

    android {
      ...
      signingConfigs {
        create("config") {
          ...
          v2SigningEnabled = false
        }
      }
    }
          
  • Çoklu DEX derlemelerinde artık Gradle'ın hangi sınıfları uygulamanızın main DEX dosyasına derleyeceğini belirlemek için ProGuard kurallarını kullanabilirsiniz. Android sistemi, uygulamanızı başlatırken önce ana DEX dosyasını yüklediğinden, belirli sınıfları ana DEX dosyasına derleyerek başlangıçta öncelik verebilirsiniz. Ana DEX dosyanız için özel olarak bir ProGuard yapılandırma dosyası oluşturduktan sonra, yapılandırma dosyasının yolunu buildTypes.multiDexKeepProguard kullanarak Gradle'a iletin. Bu DSL'nin kullanımı, uygulamanız için genel ProGuard kuralları sağlayan ve ana DEX dosyası için sınıfları belirtmeyen buildTypes.proguardFiles kullanımından farklıdır.
  • Uygulamanızı bir cihaza yüklediğinizde boyutunu küçültebilen android:extractNativeLibs işaretinin desteği eklendi. Uygulama manifestinizin <application> öğesinde bu işareti false olarak ayarladığınızda Gradle, yerel kitaplıklarınızın sıkıştırılmamış ve hizalanmış sürümlerini APK'nızla birlikte paketler. Bu, PackageManager'ın kurulum sırasında yerel kitaplıklarınızı APK'dan cihazın dosya sistemine kopyalamasını önler ve uygulamanızın delta güncellemelerini daha küçük hale getirmenin ek avantajını sunar.
  • Artık ürün aromaları için versionNameSuffix ve applicationIdSuffix özelliklerini belirtebilirsiniz. (59614 numaralı sorun)
Değişiklikler:
  • getDefaultProguardFile artık Gradle için Android eklentisinin sağladığı varsayılan ProGuard dosyalarını döndürüyor ve Android SDK'daki dosyaları kullanmıyor.
  • Jack derleyici performansında ve özelliklerinde iyileştirmeler:
    • Jack artık testCoverageEnabled, true olarak ayarlandığında Jacoco test kapsamını destekliyor.
    • Açıklama işlemcileri için destek iyileştirildi. Sınıf yolunuzdaki ek açıklama işlemcileri (ör. compile bağımlılıkları) derlemenize otomatik olarak uygulanır. Ayrıca, derlemenizde bir ek açıklama işlemcisi belirtebilir ve modül düzeyindeki build.gradle dosyanızda javaCompileOptions.annotationProcessorOptions {} DSL'sini kullanarak bağımsız değişkenler iletebilirsiniz:

      Groovy

      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"))
            }
          }
        }
      }
          

      Derleme sırasında bir ek açıklama işleme birimi uygulamak ancak bunu APK'nıza dahil etmek istemiyorsanız annotationProcessor bağımlılık kapsamını kullanın:

      Groovy

      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
      }
          
    • Ayarlayabileceğiniz parametrelerin listesi için komut satırından aşağıdakileri çalıştırın:

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

    • Varsayılan olarak, Gradle daemon'ın yığın boyutu en az 1, 5 GB ise Jack artık Gradle ile aynı süreçte çalışır. Daemon yığın boyutunu ayarlamak için gradle.properties dosyanıza aşağıdakileri ekleyin:

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