Android Gradle eklentisi 2.2.0 (Eylül 2016)
- Bağımlılıklar:
- 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ızaandroid.useOldPackaging=true
ekleyerek eski paketleme araçlarını kullanmaya geri dönebilirsiniz. Yeni paketleme aracı kullanılırkenzipalignDebug
görevi kullanılamaz. AncakcreateZipAlignTask(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ında kabul edilir. Bu APK'larda imzalama işleminden sonra 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 belirtmeyenbuildTypes.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çiyifalse
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
veapplicationIdSuffix
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ğerinitrue
olarak ayarladığınızda Jacoco test kapsamını destekliyor. - Ek açıklama işleyicileri için iyileştirilmiş destek. Yol sınıfınızdaki
compile
bağımlılıklarını anımsatan ek açıklama işleyicileri, derlemenize otomatik olarak uygulanır. Ayrıca, derlemenizde bir ek açıklama işleyici belirtebilir ve modül düzeyindekibuild.gradle
dosyanızdajavaCompileOptions.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 }
- 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
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
- Jack artık
-
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. |