Android Gradle eklentisi 3.3.0 (Ocak 2019)
Android eklentisinin bu sürümü için aşağıdakiler gereklidir:
Minimum sürüm | Varsayılan sürüm | Notlar | |
---|---|---|---|
Gradle | 4.10.1 | 4.10.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 daemon 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 daemon yığın boyutunu belirtin. |
SDK Build Tools | 28.0.3 | 28.0.3 | SDK oluşturma 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.3.2 (Mart 2019)
Bu küçük güncelleme, Android Studio 3.3.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.3.1 (Şubat 2019)
Bu küçük güncelleme, Android Studio 3.3.1'i destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir.
Yeni özellikler
-
Geliştirilmiş sınıf yolu senkronizasyonu: Çalışma zamanı ve derleme zamanı sınıf yollarınızdaki bağımlılıkları çözerken Android Gradle eklentisi, birden fazla sınıf yolunda görünen bağımlılıklar için belirli aşağı akış sürümü çakışmalarını düzeltmeye çalışır.
Örneğin, çalışma zamanı sınıf yolu Kitaplık A 2.0 sürümünü, derleme sınıf yolu ise Kitaplık A 1.0 sürümünü içeriyorsa eklenti, hataları önlemek için derleme sınıf yolundaki bağımlılığı otomatik olarak Kitaplık A 2.0 sürümüne günceller.
Ancak çalışma zamanı sınıf yolu, A kitaplığı 1.0 sürümünü içeriyorsa ve derleme, A kitaplığı 2.0 sürümünü içeriyorsa eklenti, derleme sınıf yolundaki bağımlılığı A kitaplığı 1.0 sürümüne düşürmez ve hata alırsınız. Daha fazla bilgi edinmek için Sınıf yolları arasındaki çakışmaları düzeltme başlıklı makaleyi inceleyin.
-
Açıklama işlemcileri kullanılırken artımlı Java derlemesi iyileştirildi: Bu güncelleme, açıklama işlemcileri kullanılırken artımlı Java derlemesi desteğini iyileştirerek derleme süresini kısaltır.
Not: Bu özellik, Gradle issue 8194 nedeniyle Gradle 5.1 hariç Gradle 4.10.1 ve sonraki sürümleriyle uyumludur.
-
Kapt'ı kullanan projelerde (çoğu yalnızca Kotlin projesi ve Kotlin-Java karma projeleri): Veri bağlama veya retro-lambda eklentisini kullandığınızda bile artımlı Java derlemesi etkinleştirilir. Kapt görevi tarafından yapılan ek açıklama işleme henüz artımlı değil.
-
Kapt'ın kullanılmadığı projeler (yalnızca Java projeleri) için: Kullandığınız ek açıklama işlemcilerinin tümü artımlı ek açıklama işlemeyi destekliyorsa artımlı Java derlemesi varsayılan olarak etkindir. Artımlı ek açıklama işlemcisinin benimsenmesini izlemek için Gradle sorunu 5277'yi takip edin.
Ancak bir veya daha fazla ek açıklama işlemcisi artımlı derlemeleri desteklemiyorsa artımlı Java derlemesi etkinleştirilmez. Bunun yerine,
gradle.properties
dosyanıza aşağıdaki işareti ekleyebilirsiniz:android.enableSeparateAnnotationProcessing=true
Bu işareti eklediğinizde Android Gradle eklentisi, ek açıklama işlemcilerini ayrı bir görevde yürütür ve Java derleme görevinin artımlı olarak çalışmasına izin verir.
-
-
Eski API kullanılırken daha iyi hata ayıklama bilgileri: Eklenti, artık desteklenmeyen bir API kullandığınızı algıladığında bu API'nin nerede kullanıldığını belirlemenize yardımcı olmak için daha ayrıntılı bilgiler sağlayabilir. Ek bilgileri görmek için projenizin
gradle.properties
dosyasına aşağıdakileri eklemeniz gerekir:android.debug.obsoleteApi=true
Ayrıca komut satırından
-Pandroid.debug.obsoleteApi=true
ileterek de işareti etkinleştirebilirsiniz. -
Komut satırından özellik modüllerinde enstrümantasyon testleri çalıştırabilirsiniz.
Davranış değişiklikleri
-
Gecikmeli görev yapılandırması: Eklenti artık Gradle'ın yeni görev oluşturma API'sini kullanarak mevcut derlemenin tamamlanması için gerekli olmayan (veya yürütme görev grafiğinde bulunmayan) görevlerin başlatılmasını ve yapılandırılmasını önler. Örneğin, "release" ve "debug" derleme varyantları gibi birden fazla derleme varyantınız varsa ve uygulamanızın "debug" sürümünü oluşturuyorsanız eklenti, uygulamanızın "release" sürümü için görevleri başlatmaktan ve yapılandırmaktan kaçınır.
Varyantlar API'sinde
variant.getJavaCompile()
gibi belirli eski yöntemlerin çağrılması, görev yapılandırmasını zorunlu kılmaya devam edebilir. Derlemenizin geç görev yapılandırması için optimize edildiğinden emin olmak üzere,variant.getJavaCompileProvider()
gibi TaskProvider nesnesi döndüren yeni yöntemleri çağırın.Özel derleme görevleri yürütüyorsanız Gradle'ın yeni görev oluşturma API'sine nasıl uyum sağlayacağınızı öğrenin.
-
Belirli bir derleme türü için
useProguard false
ayarlanırken eklenti artık uygulamanızın kodunu ve kaynaklarını küçültmek ve karartmak için ProGuard yerine R8'i kullanıyor. R8 hakkında daha fazla bilgi edinmek için Android Geliştiricileri Blogu'ndaki bu blog yayınını okuyun. -
Kitaplık projeleri için daha hızlı R sınıfı oluşturma: Android Gradle eklentisi daha önce projenizin her bağımlılığı için bir
R.java
dosyası oluşturur ve bu R sınıflarını uygulamanızın diğer sınıflarıyla birlikte derlerdi. Eklenti artık önce araR.java
sınıflarını oluşturmadan doğrudan uygulamanızın derlenmiş R sınıfını içeren bir JAR oluşturuyor. Bu optimizasyon, çok sayıda kitaplık alt projesi ve bağımlılık içeren projelerde derleme performansını önemli ölçüde artırabilir ve Android Studio'da indeksleme hızını iyileştirebilir. -
Android App Bundle oluştururken bu uygulama paketinden oluşturulan ve Android 6.0'ı (API düzeyi 23) veya sonraki sürümleri hedefleyen APK'lar artık yerel kitaplıklarınızın sıkıştırılmamış sürümlerini varsayılan olarak içeriyor. Bu optimizasyon, cihazın kitaplığın bir kopyasını oluşturmasını önler ve böylece uygulamanızın diskteki boyutunu küçültür. Bu optimizasyonu devre dışı bırakmayı tercih ederseniz
gradle.properties
dosyanıza aşağıdakileri ekleyin:android.bundle.enableUncompressedNativeLibs = false
-
Eklenti, bazı üçüncü taraf eklentilerinin minimum sürümlerini zorunlu kılar.
-
Tek varyantlı proje senkronizasyonu: Projenizi derleme yapılandırmanızla senkronize etmek, Android Studio'nun projenizin nasıl yapılandırıldığını anlaması için önemli bir adımdır. Ancak bu süreç büyük projelerde zaman alabilir. Projenizde birden fazla derleme varyantı kullanılıyorsa proje senkronizasyonlarını yalnızca şu anda seçtiğiniz varyantla sınırlayarak optimize edebilirsiniz.
Bu optimizasyonu etkinleştirmek için Android Gradle Eklentisi 3.3.0 veya sonraki bir sürümüyle Android Studio 3.3 ya da sonraki bir sürümünü kullanmanız gerekir. Bu koşulları karşıladığınızda IDE, projenizi senkronize ederken bu optimizasyonu etkinleştirmenizi ister. Optimizasyon, yeni projelerde de varsayılan olarak etkindir.
Bu optimizasyonu manuel olarak etkinleştirmek için Dosya > Ayarlar > Deneysel (Mac'te Android Studio > Tercihler > Deneysel > Gradle) seçeneğini tıklayın ve Yalnızca etkin varyantı senkronize et onay kutusunu işaretleyin.
Not: Bu optimizasyon, Java ve C++ dillerini içeren projeleri tam olarak destekler ve Kotlin için kısmi destek sunar. Kotlin içeriği olan projelerde optimizasyon etkinleştirildiğinde Gradle senkronizasyonu, dahili olarak tam varyantları kullanmaya geri döner.
-
Eksik SDK paketlerinin otomatik olarak indirilmesi: Bu işlev, NDK'yı destekleyecek şekilde genişletildi. Daha fazla bilgi edinmek için Gradle ile eksik paketleri otomatik olarak indirme başlıklı makaleyi inceleyin.
Hata Düzeltmeleri
-
Android Gradle eklentisi 3.3.0 aşağıdaki sorunları düzeltir:
- Jetifier etkin olmasına rağmen AndroidX sürümü yerine
android.support.v8.renderscript.RenderScript
çağıran derleme işlemi - Statik olarak paketlenmiş
androidx-rs.jar
dahil olmak üzereandroidx-rs.jar
nedeniyle oluşan çakışmalarannotation.AnyRes
- RenderScript kullanırken artık
build.gradle
dosyalarınızda Build Tools sürümünü manuel olarak ayarlamanız gerekmez.
- Jetifier etkin olmasına rağmen AndroidX sürümü yerine