Android Gradle Plugin 4.2.0 (Mart 2021)
Uyumluluk
Minimum sürüm | Varsayılan sürüm | Notlar | |
---|---|---|---|
Gradle | 6.7.1 | Yok | Daha fazla bilgi edinmek için Gradle'ı güncelleme sayfasına göz atın. |
SDK Derleme Araçları | 30.0.2 | 30.0.2 | SDK Derleme Araçları'nı yükleyin veya yapılandırın. |
NDK | Yok | 21.4.7075529. | NDK'nın farklı bir sürümünü yükleyin veya yapılandırın. |
Yeni özellikler
Android Gradle eklentisinin bu sürümü aşağıdaki yeni özellikleri içerir.
Varsayılan olarak Java dili sürüm 8
Sürüm 4.2'den itibaren, AGP varsayılan olarak Java 8 dil düzeyini kullanacaktır. Java 8, lambda da dahil olmak üzere birçok yeni dil özelliğine erişim sağlar yöntem referansları ve statik arayüz yöntemleri hakkında daha fazla bilgi edindiniz. Tam liste için Java 8 dokümanlarına bakın.
Eski davranışı korumak için modül düzeyinde Java 7'yi açıkça belirtin
build.gradle.kts
veya build.gradle
dosyası:
// build.gradle
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
// For Kotlin projects, compile to Java 6 instead of 7
kotlinOptions {
jvmTarget = "1.6"
}
}
// build.gradle.kts
android {
...
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
// For Kotlin projects, compile to Java 6 instead of 7
kotlinOptions {
jvmTarget = "1.6"
}
}
Yeni JVM kaynak derleyicisi
Android Gradle eklentisi 4.2 aracındaki yeni bir JVM kaynak derleyicisi, bölümlerin yerini alıyor AAPT2 kaynak derleyicisinin özellikle Windows makinelerinde derleme performansını iyileştirmek için kullanılır. Yeni JVM kaynak derleyici varsayılan olarak etkindir.
v3 ve v4 imzalama artık destekleniyor
Android Gradle Eklentisi 4.2 artık APK v3'ü destekliyor
ve APK v4 imzalama biçimlerine göz atın.
Bu biçimlerden birini veya her ikisini birden
derlemesi için aşağıdaki özellikleri modül düzeyindeki build.gradle
veya build.gradle.kts
dosyası:
// build.gradle
android {
...
signingConfigs {
config {
...
enableV3Signing true
enableV4Signing true
}
}
}
// build.gradle.kts
android {
...
signingConfigs {
config {
...
enableV3Signing = true
enableV4Signing = true
}
}
}
APK v4 imzalama özelliği, ADB aracını kullanarak büyük APK'ları hızlı bir şekilde dağıtmanıza olanak tanır. artımlı APK yüklemesi Android 11. Bu yeni işaret, dağıtımdaki APK imzalama adımını halleder bahsedeceğim.
Varyant başına uygulama imzalamayı yapılandırın
Artık Android Gradle'da uygulama imzalamayı etkinleştirmek veya devre dışı bırakmak mümkün eklemeniz gerekir.
Bu örnekte,
onVariants()
yöntemini kullanabilirsiniz:
androidComponents {
onVariants(selector().withName("fooDebug"), {
signingConfig.enableV1Signing.set(false)
signingConfig.enableV2Signing.set(true)
})
Yeni Gradle özelliği:
android.native.buildOutput
.
AGP 4.2, derleme çıktısındaki karmaşayı azaltmak için mesajları filtreler
CMake ve ndk-build
kullanan yerel derlemelerden
varsayılan olarak yalnızca C/C++ derleyici çıkışını görüntüleme. Önceden, bir çıktı satırı
her dosya için ayrı olarak üretildi ve bu da çok miktarda
düşünebilirsiniz.
Yerel çıkışın tamamını görmek isterseniz yeni
Gradle özelliği android.native.buildOutput
to verbose
.
Bu özelliği gradle.properties
dosyasında veya
komut satırından erişebilirsiniz.
gradle.properties
android.native.buildOutput=verbose
Komut satırı
-Pandroid.native.buildOutput=verbose
Bu özelliğin varsayılan değeri: quiet
.
gradle.properties dosyaları için davranış değişikliği
AGP 4.2'den itibaren Gradle özelliklerini geçersiz kılmak artık mümkün değildir
alt projelerde kullanılabilir. Diğer bir deyişle,
gradle.properties
dosyası, kök yerine bir alt projede
yoksa yoksayılır.
Örneğin, önceki sürümlerde AGP,
<var>projectDir</var>/gradle.properties
,
<var>projectDir</var>/app/gradle.properties
,
<var>projectDir</var>/library/gradle.properties
,
uygulama modülleri için de aynı Gradle mülkü her iki
<var>projectDir</var>/gradle.properties
.
ve
<var>projectDir</var>/app/gradle.properties
,
değeri
<var>projectDir</var>/app/gradle.properties
öncelikli hale gelecektir.
AGP 4.2'de bu davranış değiştirilmiştir ve AGP,
Alt projelerde gradle.properties
(ör.
<var>projectDir</var>/app/gradle.properties
) bilgileri gösterilir.
Bu değişiklik,
yeni Gradle davranışı ve özellikleri
yapılandırmayı önbelleğe alma
gradle.properties
ürününde değer ayarlama hakkında daha fazla bilgi
hakkında daha fazla bilgi edinmek için
Gradle dokümanları.
Gradle uyumluluğu ve yapılandırma değişiklikleri
Gradle derleme aracı, Android Studio'da çalışırken Studio'nun paket halinde sunulan JDK'sini kullanır. Önceki sürümlerde JDK 8, Studio ile birlikte sunuluyordu. 4.2'de, bunun yerine JDK 11 paketlenmiştir. Çalıştırmak için paket halinde sunulan yeni JDK'yı Bu durum, bazı uyumsuzluklara neden olabilir veya JVM performansını etkileyebilir. atık toplayıcıda yapılan değişikliklerden kaynaklanabilir. Bu sorunlar aşağıda açıklanmıştır.
Not: Gradle'ı JDK 11 ile çalıştırmanızı önersek de Gradle'ı çalıştırmak için kullanılan JDK'yı Proje Yapısı iletişim kutusu. Bu ayarın değiştirilmesi yalnızca Gradle'ı çalıştırmak için kullanılan JDK'yı değiştirir ve Studio'nun kendisini çalıştırmak için kullanılan JDK'yı değiştirmez.
Android ile Studio uyumluluğu Gradle eklentisi (AGP)
Android Studio 4.2, AGP 3.1 ve ancak AGP, Gradle 4.8.1 ve sonraki sürümleri çalıştırıyorsa daha yüksek değer sunar. Daha fazla Gradle uyumluluğu hakkında bilgi için bkz. Gradle'ı güncelleyin.
JDK 11 için Gradle derlemelerini optimize etme
JDK 11'e yapılan bu güncelleme, JVM çöp kutusunun varsayılan yapılandırmasını etkiler çünkü JDK 8 paralel çöp toplayıcı kullanırken JDK 11 G1 çöp toplayıcı.
Derleme performansını artırabilmek için
Gradle derlemelerinizi test ederek
yardımcı olur. gradle.properties
içinde şunları ayarlayın:
org.gradle.jvmargs=-XX:+UseParallelGC
Bu alanda halihazırda ayarlanmış başka seçenekler varsa yeni bir seçenek ekleyin:
org.gradle.jvmargs=-Xmx1536m -XX:+UseParallelGC
Farklı yapılandırmalarla derleme hızını ölçmek için bkz. Derlemenizin profilini oluşturun.
minSdk
= 28 veya daha yüksek olduğunda APK'larda sıkıştırılmamış DEX dosyaları
AGP artık DEX dosyalarını minSdk
= 28 veya
daha yüksek. Bu durum APK boyutunda artışa neden olur, ancak daha küçük
yükleme boyutu yaklaşık olarak aynı.
AGP'nin sıkıştırılmış DEX dosyalarını paketlemeye zorlamak için
build.gradle
dosyanıza eklenecek:
android {
packagingOptions {
dex {
useLegacyPackaging true
}
}
}
Sıkıştırılmış yerel kitaplıkları paketlemek için DSL'yi kullanma
Yerel kitaplıkları sıkıştırılmamış biçimde paketlemenizi öneririz, çünkü bu
Uygulama daha küçük bir uygulama yükleme boyutu, daha küçük uygulama indirme boyutu ve daha hızlı bir uygulama sağlar.
yükleme süresini ölçer. Ancak Android Gradle eklentisinin
uygulamanızı oluştururken sıkıştırılmış yerel kitaplıkları paketleyin,
useLegacyPackaging
uygulamanızın build.gradle
dosyasındaki true
konumuna:
android {
packagingOptions {
jniLibs {
useLegacyPackaging true
}
}
}
useLegacyPackaging
işareti, extractNativeLibs
manifest özelliğinin yerini alır. Daha fazla bilgi için sürüm notuna bakın
Varsayılan olarak sıkıştırılmamış halde paketlenmiş yerel kitaplıklar.