Android Gradle eklentisi 3.4.0 (Nisan 2019)
Android eklentisinin bu sürümü için aşağıdakiler gerekir:
| Minimum sürüm | Varsayılan sürüm | Notlar | |
|---|---|---|---|
| Gradle | 5.1.1 | 5.1.1 | Daha fazla bilgi edinmek için Gradle'ı güncelleme başlıklı makaleyi inceleyin. Gradle 5.0 ve sonraki sürümler 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ında gerilemeye 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 | 28.0.3 | SDK Derleme Araçları'nı yükleyin veya yapılandırın. |
Bu küçük güncelleme, Android 11'deki paket görünürlüğü için 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)
Bu küçük güncelleme, Android Studio 3.4.2'yi destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
3.4.1 (Mayıs 2019)
Bu küçük güncelleme, Android Studio 3.4.1'i destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Önemli hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.
Yeni özellikler
-
Yeni lint kontrolü bağımlılığı yapılandırmaları:
lintChecksdavranışında değişiklik yapıldı ve Android kitaplıklarınıza hangi lint kontrollerinin dahil edileceği konusunda daha fazla kontrol sahibi olmanızı sağlamak içinlintPublishadlı 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 kontrolleri için kullanmanız gereken mevcut bir yapılandırmadır. Yayınlanan AAR'ye lint kontrollerini dahil etmek için daha öncelintChecksbağımlılık yapılandırmasını kullanıyorsanız bu bağımlılıkları taşıyarak bunun yerine aşağıda açıklanan yenilintPublishyapılandırmasını kullanmanız gerekir. -
lintPublish: Yayınlanan AAR'ye dahil etmek istediğiniz lint kontrolleri için kitaplık projelerinde bu yeni yapılandırmayı aşağıdaki şekilde kullanın. Bu nedenle, kitaplığınızı kullanan projeler de bu lint kontrollerini uygular.
Aşağıdaki kod örneğinde, yerel bir Android kitaplığı 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ı iyileşmesi görülmelidir. Bu görevlerle ilgili performans düşüşü fark ederseniz lütfen hatayı bildirin.
-
Davranış değişiklikleri
-
Android Instant Apps Feature eklentisinin desteği sonlandırıldı uyarısı: Hazır uygulamanızı oluşturmak için hâlâ
com.android.featureeklentisini kullanıyorsanız Android Gradle eklentisi 3.4.0 size kullanımdan kaldırma uyarısı verecektir. Eklentinin gelecekteki sürümlerinde hazır uygulamanızı oluşturmaya devam edebilmek için hazır uygulamanızı dinamik özellik eklentisini kullanacak şekilde taşıyın. Bu eklenti, hem yüklü uygulama hem de hazır uygulama deneyimlerinizi tek bir Android App Bundle'dan yayınlamanıza da olanak tanır. -
R8 varsayılan olarak etkindir: R8, desugaring, küçültme, karartma, optimizasyon ve dexing işlemlerini tek bir adımda entegre ederek gözle görülür derleme performansı iyileştirmeleri sağlar. R8, Android Gradle eklentisi 3.3.0'da kullanıma sunuldu ve artık 3.4.0 ve sonraki sürümleri kullanan hem uygulama hem de Android kitaplık projelerinde varsayılan olarak etkinleştirildi.
Aşağıdaki resimde, R8'in kullanıma sunulmasından önceki derleme sürecine genel bir bakış sunulmaktadır.
R8 ile birlikte, aşağıda gösterildiği gibi, desugaring, küçültme, karartma, optimizasyon ve dexing (D8) tek bir adımda tamamlanır.
R8'in mevcut ProGuard kurallarınızla çalışacak şekilde tasarlandığını unutmayın. Bu nedenle, R8'den yararlanmak için herhangi bir işlem yapmanız gerekmeyebilir. Ancak, ProGuard'dan farklı bir teknoloji olduğu ve özellikle Android projeleri için tasarlandığı için küçültme ve optimizasyon, ProGuard'ın kaldırmadığı kodların kaldırılmasına neden olabilir. Bu nedenle, bu olası olmayan durumda, söz konusu kodu derleme çıktınızda tutmak için ek kurallar eklemeniz gerekebilir.
R8'i kullanırken sorun yaşıyorsanız sorununuzun çözümü olup olmadığını kontrol etmek için R8 uyumluluğuyla ilgili SSS bölümünü inceleyin. Çözüm belgelenmemişse lütfen hata bildirin.
Aşağıdaki satırlardan birini projenizin gradle.properties dosyasına 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ü için uygulama modülünüzün build.gradle dosyasında useProguard değerini false olarak ayarlarsanız Android Gradle eklentisi, projenizin gradle.properties dosyasında R8'i devre dışı bırakıp bırakmadığınıza bakılmaksızın bu derleme türü için uygulamanızın kodunu küçültmek üzere R8'i kullanır.
-
ndkCompiledesteği sonlandırıldı: Yerel kitaplıklarınızı derlemek içinndkBuildkullanmaya çalışırsanız artık derleme hatası alırsınız. Bunun yerine, projenize C ve C++ kodu eklemek için CMake veya ndk-build'i kullanmanız gerekir.
Bilinen sorunlar
-
Benzersiz paket adlarının doğru kullanımı şu anda zorunlu tutulmamaktadır ancak eklentinin sonraki sürümlerinde daha katı olacaktır. Android'de Gradle eklentisi 3.4.0 sürümünde, aşağıdaki satırı
gradle.propertiesdosyanıza ekleyerek projenizin kabul edilebilir paket adları bildirip bildirmediğini kontrol etmeyi etkinleştirebilirsiniz.android.uniquePackageNames = trueAndroid Gradle eklentisi aracılığıyla paket adı ayarlama hakkında daha fazla bilgi edinmek için Uygulama kimliğini ayarlama başlıklı makaleyi inceleyin.