Android Gradle Plugin 2.2.0 (Eylül 2016)

Bağımlılıklar:
Yeni:
  • Performans iyileştirmelerini ve yeni özellikleri içeren Gradle 2.14.1'i kullanır ve Gradle arka plan programı kullanılırken yerel ayrıcalık artırmaya izin veren bir güvenlik açığını düzeltir. Daha fazla bilgi için Gradle sürüm notlarına göz atın.
  • externalNativeBuild {} DSL kullanan Gradle, artık yerel kaynaklarınıza bağlantı oluşturmanıza ve CMake veya ndk-build kullanarak yerel kitaplıkları derlemenize olanak tanır. Gradle, yerel kitaplıklarınızı oluşturduktan sonra bunları APK'nızda paketler. CMake ve Gradle ile ndk-build kullanımı hakkında daha fazla bilgi edinmek için Projenize C ve C++ Kodu Ekleme başlıklı makaleyi okuyun.
  • Komut satırından bir derleme çalıştırdığınızda, Gradle artık projenizin bağımlı olduğu eksik SDK bileşenlerini veya güncellemeleri otomatik olarak indirmeyi dener. Daha fazla bilgi edinmek için Gradle ile eksik paketleri otomatik olarak indirme bölümünü okuyun.
  • Yeni deneysel önbelleğe alma özelliği, Gradle'ın kitaplıklarınızın önceden dizine alınmış sürümlerini depolayarak, depolayarak ve yeniden kullanarak derleme sürelerini hızlandırmasını sağlar. Bu deneysel özelliği kullanma hakkında daha fazla bilgi edinmek için Önbellek Oluşturma kılavuzunu okuyun.
  • Tek bir görevde sıkıştırma, imzalama ve zipaligning işlemlerini gerçekleştiren yeni bir varsayılan paketleme ardışık düzenini benimseyerek derleme performansını iyileştirir. gradle.properties dosyanıza android.useOldPackaging=true ekleyerek eski paketleme araçlarını kullanmaya geri dönebilirsiniz. Yeni sunum aracı kullanılırken zipalignDebug görevi kullanılamaz. Ancak createZipAlignTask(String taskName, File inputFile, File outputFile) yöntemini çağırarak kendiniz bir tane oluşturabilirsiniz.
  • APK imzalama özelliği, artık geleneksel JAR imzalamasının yanı sıra APK İmza Şeması v2'yi de kullanıyor. Tüm Android platformları oluşturulan APK'ları kabul eder. İmzalandıktan sonra bu APK'larda yapılacak herhangi bir değişiklik, v2 imzalarını geçersiz kılar ve bir cihaza yüklenmesini engeller. Bu özelliği devre dışı bırakmak için modül düzeyindeki build.gradle dosyanıza aşağıdakileri ekleyin:

    Modern

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

    Kotlin

    android {
      ...
      signingConfigs {
        create("config") {
          ...
          v2SigningEnabled = false
        }
      }
    }
          
  • Multidex derlemelerinde artık ProGuard kurallarını kullanarak Gradle'ın uygulamanızın ana DEX dosyasında hangi sınıfları derleyeceğini belirleyebilirsiniz. Uygulamanızı başlatırken önce Android sistemi ana DEX dosyasını yüklediğinden, başlangıçta belirli sınıfları ana DEX dosyasında derleyerek öncelik sırasına koyabilirsiniz. Özel olarak ana DEX dosyanız için bir ProGuard yapılandırma dosyası oluşturduktan sonra, buildTypes.multiDexKeepProguard kullanarak yapılandırma dosyasının yolunu Gradle'a 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 kullanımından farklıdır.
  • Uygulamanızı bir cihaza yükleyeceğiniz zaman boyutunu küçültebilen android:extractNativeLibs işareti için destek ekler. 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 APK'nızla uyumlu sürümlerini paketler. Bu, PackageManager'in yükleme sırasında yerel kitaplıklarınızı APK'dan cihazın dosya sistemine kopyalamasını engeller ve uygulamanızın delta güncellemelerini küçültme avantajını sunar.
  • Artık ürün aromaları 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 artık Android SDK'daki dosyaları kullanmıyor.
  • İyileştirilmiş Jack derleyici performansı ve özellikleri:
    • Jack artık testCoverageEnabled değerini true olarak ayarlarken Jacoco test kapsamını destekliyor.
    • Ek açıklama işlemcileri için geliştirilmiş destek. Sınıf yolunuzdaki ek açıklama işlemcileri (tüm compile bağımlılıkları gibi) 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'yi kullanarak bağımsız değişkenler iletebilirsiniz:

      Modern

      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şlemcisi uygulamak ancak APK'nıza dahil etmek istemiyorsanız annotationProcessor bağımlılık kapsamını kullanın:

      Modern

      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ğıdaki komutu çalıştırın:

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

    • Varsayılan olarak, Gradle arka plan programının yığın boyutu en az 1, 5 GB ise Jack artık Gradle ile aynı süreçte çalışır. Arka plan 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