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 için Gradle'i güncelleme başlıklı makaleyi inceleyin.
SDK Oluşturma Araçları 23.0.2 23.0.2 SDK Oluşturma Araçları'nı yükleyin veya yapılandırın.
Yeni:
  • Performans iyileştirmeleri ve yeni özellikler içeren Gradle 2.14.1'i kullanır ve Gradle daemon'u kullanırken yerel ayrıcalıkların yükseltilmesine olanak tanıyan bir güvenlik açığını düzeltir. Daha fazla bilgi için Gradle sürüm notlarına göz atın.
  • Gradle, externalNativeBuild {} DSL'sini kullanarak artık yerel kaynaklarınıza bağlantı oluşturmanıza ve CMake veya ndk-build'i kullanarak yerel kitaplıkları derlemenize olanak tanıyor. Gradle, yerel kitaplıklarınızı oluşturduktan sonra bunları APK'nıza 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 okuyun.
  • Komut satırından derleme çalıştırdığınızda Gradle artık projenizin ihtiyaç duyduğ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.
  • Deneysel bir önbelleğe alma özelliği, Gradle'in kitaplıklarınızın önceden derlenmiş sürümlerini önceden derleyerek, depolayarak ve yeniden kullanarak derleme sürelerini kısaltmasını sağlar. Bu deneysel özelliği kullanma hakkında daha fazla bilgi edinmek için Önbelleğe Alma kılavuzunu okuyun.
  • Sıkıştırma, imzalama ve zipalign işlemlerini tek bir görevde yürüten yeni bir varsayılan paketleme ardışık düzeni benimseyerek derleme performansını iyileştirir. gradle.properties dosyanıza android.useOldPackaging=true 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 de oluşturabilirsiniz.
  • APK imzalama işleminde artık geleneksel JAR imzalamanın yanı sıra APK İmza Şeması v2 de kullanılmaktadır. Elde edilen APK'lar tüm Android platformları tarafından kabul edilir. İmzalama işleminden sonra bu APK'larda yapılan herhangi bir değişiklik, v2 imzalarını geçersiz kılar ve cihaza yüklemeyi 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
        }
      }
    }
          
  • Multidex derlemelerde, Gradle'ın uygulamanızın ana DEX dosyasında derleyeceği sınıfları belirlemek için artık ProGuard kurallarını kullanabilirsiniz. Android sistemi, uygulamanızı başlatırken önce ana DEX dosyasını yüklediği için belirli sınıfları ana DEX dosyasında derleyerek başlangıçta öncelik verebilirsiniz. Ana DEX dosyanız için özel olarak bir ProGuard yapılandırma dosyası oluşturduktan sonra, buildTypes.multiDexKeepProguard kullanarak yapılandırma dosyasının yolunu Gradle'e iletin. Bu DSL'yi kullanmak, uygulamanız için genel ProGuard kuralları sağlayan ve ana DEX dosyası için sınıf belirtmeyen buildTypes.proguardFiles kullanmaktan farklıdır.
  • android:extractNativeLibs işareti için destek ekler. Bu işaret, uygulamanızı bir cihaza yüklediğinizde uygulamanızın boyutunu küçültebilir. Uygulama manifestinizin <application> öğesinde bu işaretçiyi 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 paketler. Bu, PackageManager'nin yükleme 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ı sağlar.
  • Artık ürün varyantları için versionNameSuffix ve applicationIdSuffix değerlerini belirtebilirsiniz. (Sorun 59614)
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'sındaki dosyaları kullanmıyor.
  • Jack derleyicisinin performansı ve özellikleri iyileştirildi:
    • Jack artık testCoverageEnabled değerini true olarak ayarladığınızda Jacoco test kapsamını destekliyor.
    • Ek açıklama işleyicileri için iyileştirilmiş destek. Yol dizininizdeki compile bağımlılıklarını anımsatan ek açıklama işleyiciler, derlemenize otomatik olarak uygulanır. Ayrıca, derlemenizde bir ek açıklama işleyici 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şleyici uygulamak ancak 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
      }
          
    • Belirleyebileceğ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ın yığın boyutu en az 1, 5 GB ise Jack artık Gradle ile aynı işlemde ç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