Android Gradle Eklentisi 2.2.0 (Eylül 2016)
- Bağımlılıklar:
- 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ızagradle.properties
ekleyerek eski paketleme araçlarını kullanmaya geri dönebilirsiniz. Yeni paketleme aracı kullanılırkenzipalignDebug
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ı belirtmeyenbuildTypes.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şaretifalse
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
veapplicationIdSuffix
ö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ü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ş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 }
- 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
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
- Jack artık
-
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. |