Android Gradle Plugin 3.4.0 (Nisan 2019)
Android eklentisinin bu sürümü için gerekenler:
-
Gradle 5.1.1 veya sonraki sürümler. Daha fazla bilgi için Gradle'ı güncelleme bölümünü okuyun.
Not: Gradle 5.0 ve sonraki sürümleri kullanılırken varsayılan Gradle arka plan programı bellek yığın boyutu 1 GB'tan 512 MB'a düşer. Bu durum, derleme performansının gerilemesine neden olabilir. Bu varsayılan ayarı geçersiz kılmak için projenizin
gradle.properties
dosyasında Gradle arka plan programı yığın boyutunu belirtin. -
SDK Derleme Araçları 28.0.3 veya sonraki sürümler.
Bu küçük güncelleme, Android 11'de paket görünürlüğü ile ilgili yeni varsayılan ayarlar ve özelliklerle uyumluluğu destekler.
Ayrıntılar için 4.0.1 sürüm notlarına bakın.
3.4.2 (Temmuz 2019)
Android Studio 3.4.2'yi destekleyen bu küçük güncelleme, çeşitli hata düzeltmeleri ve performans iyileştirmeleri içerir. Dikkate değer hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.4.1 (Mayıs 2019)
Android Studio 3.4.1'i destekleyen bu küçük güncelleme, çeşitli hata düzeltmeleri ve performans iyileştirmeleri içerir. Dikkate değer hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
Yeni özellikler
-
Yeni lint denetimi bağımlılık yapılandırmaları:
lintChecks
davranışı değişti ve Android kitaplıklarınızda hangi lint denetimlerinin paketleneceği üzerinde daha fazla kontrol sahibi olmanızı sağlamak içinlintPublish
adlı yeni bir bağımlılık yapılandırması kullanıma sunuldu.-
lintChecks
: Bu, yalnızca projenizi yerel olarak oluştururken çalıştırmak istediğiniz lint denetimleri için kullanmanız gereken mevcut bir yapılandırmadır. Yayınlanan AAR'ye lint kontrollerini dahil etmek için daha öncelintChecks
bağımlılık yapılandırmasını kullandıysanız bu bağımlılıkları, aşağıda açıklanan yenilintPublish
yapılandırmasını kullanacak şekilde taşımanız gerekir. -
lintPublish
: Yayınlanan AAR'ye eklemek istediğiniz lint kontrolleri için kitaplık projelerinde bu yeni yapılandırmayı aşağıda gösterildiği gibi kullanın. Bu, kitaplığınızı kullanan projelerin bu lint kontrollerini de uyguladığı anlamına gelir.
Aşağıdaki kod örneğinde, yerel bir Android kitaplık projesinde her iki bağımlılık yapılandırması da kullanılmaktadır.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
Genel olarak, paketleme ve imzalama görevlerinde genel bir derleme hızı artışı olması gerekir. Bu görevlerle ilgili bir performans gerilemesi fark ederseniz lütfen hata bildiriminde bulunun.
-
Davranış değişiklikleri
-
Android Hazır Uygulamalar Özelliği eklentisinin kullanımdan kaldırılmasıyla ilgili uyarı: Hazır uygulamanızı oluşturmak için hâlâ
com.android.feature
eklentisini kullanıyorsanız Android Gradle eklentisi 3.4.0 tarafından kullanımdan kaldırma uyarısı verilir. Eklentinin gelecekteki sürümlerinde hazır uygulama oluşturmaya devam edebileceğinizden emin olmak için hazır uygulamanızı, tek bir Android App Bundle'dan hem yüklü hem de hazır uygulama deneyimlerinizi yayınlamanıza olanak tanıyan dinamik özellik eklentisini kullanarak taşıyın. -
R8 varsayılan olarak etkindir: R8; şeker giderme, küçültme, karartma, optimize etme ve kopyalama işlemlerini tek bir adımda birleştirerek derleme performansında gözle görülür iyileşmeler sağlar. Android Gradle eklentisi 3.3.0'da kullanıma sunulan R8, artık eklenti 3.4.0 ve üst sürümlerini kullanan uygulama ve Android kitaplığı projelerinde varsayılan olarak etkin.
Aşağıdaki resimde, R8 kullanıma sunulmadan önceki derleme işlemine üst düzey bir genel bakış sunulmaktadır.
Artık R8 ile şeker giderme, küçültme, karartma, optimize etme ve dexing (D8) işlemleri aşağıda gösterildiği gibi tek adımda tamamlanır.
R8'in mevcut ProGuard kurallarınızla çalışacak şekilde tasarlandığını hatırlatmak isteriz. Dolayısıyla, R8'den yararlanmak için muhtemelen herhangi bir işlem yapmanız gerekmeyecektir. Ancak özel olarak Android projeleri için tasarlanmış olan ProGuard'dan farklı bir teknoloji olduğundan, küçültme ve optimizasyon, ProGuard'ın sahip olmadığı kodun kaldırılmasıyla sonuçlanabilir. Dolayısıyla, çok düşük olasılıkla da olsa bu kodu derleme çıkışınızda tutmak için ek kurallar eklemeniz gerekebilir.
R8'i kullanırken sorun yaşıyorsanız sorununuzun
bir çözümü olup olmadığını kontrol etmek için
R8 uyumluluğuyla ilgili SSS
sayfasını okuyun. Çözüm belgelenmemişse lütfen hata bildiriminde bulunun.
Projenizin gradle.properties
dosyasına aşağıdaki satırlardan birini ekleyerek R8'i devre dışı bırakabilirsiniz:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Not: Belirli bir derleme türünde, uygulama modülünüzün build.gradle
dosyasında useProguard
öğesini false
olarak ayarlarsanız Android Gradle eklentisi, projenizin gradle.properties
dosyasında R8'i devre dışı bırakıp bırakmamanızdan bağımsız olarak, R8'i kullanarak uygulamanızın kodunu bu derleme türü için küçültür.
-
ndkCompile
desteği sonlandırıldı: Yerel kitaplıklarınızı derlemek içinndkBuild
kullanmayı denediğinizde artık bir derleme hatası alıyorsunuz. Bunun yerine, Projenize C ve C++ kodu eklemek için CMake veya ndk-build kullanmanız gerekir.
Bilinen sorunlar
-
Benzersiz paket adlarının doğru kullanımı şu anda zorunlu değil ancak eklentinin sonraki sürümlerinde daha katı olacak. Android Gradle eklentisinin 3.4.0 sürümünde, aşağıdaki satırı
gradle.properties
dosyanıza ekleyerek projenizin kabul edilebilir paket adları tanımlayıp tanımlamadığını kontrol etmek için kaydolabilirsiniz.android.uniquePackageNames = true
Android Gradle eklentisi aracılığıyla paket adı ayarlama hakkında daha fazla bilgi edinmek için Uygulama kimliğini ayarlama bölümüne bakın.