Android Studio 3.1 (Mart 2018)
Android Studio 3.1.0, çeşitli yeni özellikler ve iyileştirmeler içeren ana bir sürümdür.
3.1.4 (Ağustos 2018)
Android Studio 3.1'e yapılan bu güncelleme, aşağıdaki değişiklikleri ve düzeltmeleri içerir:
- Paketlenmiş Kotlin'in sürümü 1.2.50 oldu.
-
Yeni projeler, desteği sonlandırılan
kotlin-stdlib-jre*
yapıları yerinekotlin-stdlib-jdk* artifacts
ile oluşturulur. - ProGuard kurallarının R8 ayrıştırması iyileştirildi.
- Aşağıdaki hatalar düzeltildi:
-
Kotlin Ana sınıfını çalıştırma denemesi bir hata nedeniyle başarısız oldu:
"Error: Could not find or load main class..."
- R8, bazı optimizasyonlar yaparken sonsuz döngüye girdi.
- Çalıştır penceresinde Başarısız testleri yeniden çalıştır komutunun kullanılması bazen yanlışlıkla "Test bulunamadı" mesajını döndürüyordu.
-
D8,
invoke-virtual
örneklerini doğru şekilde işlemediğindenVerifyError
ile kilitlenmeye neden oldu:invoke-super/virtual can't be used on private method
-
Veri Bağlama derleyicisi,
com.android.tools:annotations
'ın eski bir sürümüne bağlıydı. Derleyici artık, varsa temel projedeki araç ek açıklamalarını kullanıyor. - Android Studio, profilleyiciler kullanılırken parça geçişleri sırasında kilitleniyordu.
- Metin kutusu içeren bir düzende hata ayıklama işlemi yapılırken hata ayıklayıcı kilitlendi.
- D8, özel karakter içeren bazı ZIP dosyalarını okuyamadı.
3.1.3 (Haziran 2018)
Android Studio 3.1'deki bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:
- Bellek sızıntısı, Layout Editor'ı kullandıktan sonra Android Studio'nun yavaşlamasına ve yanıt vermemesine neden oldu. Bu güncelleme, bu sorunların çoğuna yönelik düzeltmeler içerir. Yakında, ek bellek sızıntılarını gidermek için başka bir güncelleme yayınlamayı planlıyoruz.
- D8 ile oluşturulan bazı uygulamalar, bazı Verizon Ellipsis tabletlerinde çöküyordu.
-
D8 ile oluşturulan uygulamaların yüklenmesi, Android 5.0 veya 5.1 (API seviyesi 21 veya 22) çalıştıran cihazlarda
INSTALL_FAILED_DEXOPT
hatasıyla başarısız oldu. - OkHttp kitaplığını kullanan ve D8 ile oluşturulan bazı uygulamalar, Android 4.4 (API düzeyi 19) çalıştıran cihazlarda kilitleniyordu.
-
Android Studio bazen
com.intellij.psi.jsp.JspElementType
sınıfının başlatılması sırasındaProcessCanceledException
hatasıyla başlatılamadı.
3.1.2 (Nisan 2018)
Android Studio 3.1'deki bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:
- Bazı durumlarda Android Studio, çıkış sırasında süresiz olarak takılıyordu.
-
Kaynak grupları ile yapılandırılan derlemeler, Anında Çalıştırma etkinleştirildiğinde aşağıdaki mesajla başarısız oldu:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Anında Çalıştır etkinleştirildiğinde, yeni Kotlin projelerinin derlemeleri Çalıştır komutuyla tetiklendiğinde başarısız oluyordu.
-
build.gradle
dosyasının düzenlenmesi sırasında, bazen bir karakterin yazılmasıyla ekranda görünmesi arasında belirgin bir gecikme yaşanıyordu. -
Çok sayıda modülü veya harici bağımlılığı olan bazı projelerde, dizin oluşturma işlemi sırasında aşağıdaki hata mesajıyla birlikte derleme hataları meydana geldi:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- D8 ana DEX listesinin hesaplanmasında bazı yansıtıcı çağrılar dikkate alınmadı.
Bu güncelleme, bazı senaryolarda Gradle'dan lint kontrollerini çok daha hızlı hale getiren değişiklikleri de içerir.
3.1.1 (Nisan 2018)
Android Studio 3.1'deki bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:
-
Android Studio 3.0'da oluşturulan bir proje, Android Studio 3.1'de ilk kez açıldığında bazı durumlarda, Gradle'a Duyarlı Yapma görevi, Çalıştır/Hata Ayıklama Yapılandırmaları'ndaki Lansmandan önce alanından kaldırılır. Bunun sonucunda projeler, Çalıştır veya Hata Ayıkla düğmesi tıklandığında oluşturulamamış ve buna bağlı olarak yanlış APK'ların dağıtılması ve Anında Çalıştırma kullanılırken kilitlenmeler gibi hatalara neden olmuştur.
Android Studio 3.1.1, bu girişin eksik olduğu projelerin çalıştırma yapılandırmasına Gradle farkında Make görevini ekleyerek bu sorunu çözer. Bu değişiklik, ilk Gradle senkronizasyonundan sonra proje yüklendiğinde gerçekleşir.
- Gelişmiş profil oluşturma etkinse metin kutusu içeren bir düzende hata ayıklama yapılırken hata ayıklayıcı kilitleniyordu.
- Derleme Varyantları'nı tıkladıktan sonra Android Studio dondu.
- AAR (Android arşivi) dosyaları bir kez Gradle senkronizasyon işlemi sırasında ve bir kez Gradle derleme işlemi sırasında iki kez ayıklandı.
- SVG dosyalarından içe aktarılan bazı vektör çekilebilirlerinde öğe eksikti.
-
compile
bağımlılık yapılandırmasının desteğinin sonlandırılmasıyla ilgili uyarı,implementation
veapi
yapılandırmalarıyla ilgili daha iyi bir kılavuz olacak şekilde güncellendi.compile
yapılandırmasını kullanmayı bırakmayla ilgili ayrıntılar için yeni bağımlılık yapılandırmalarıyla ilgili dokümanlara bakın.
Kodlama/IDE
IntelliJ 2017.3.3
Temel Android Studio IDE'si, IntelliJ IDEA'daki 2017.3.3 sürümüne kadarki iyileştirmelerle güncellendi. Koleksiyonlar ve dizeler için daha iyi kontrol akışı analizi, geliştirilmiş boşluk inferansı, yeni hızlı düzeltmeler ve daha fazlası bu iyileştirmeler arasındadır.
Ayrıntılar için IntelliJ IDEA 2017.2 ve 2017.3 sürümlerinin yanı sıra hata düzeltme güncellemeleri ile ilgili JetBrains sürüm notlarına bakın.
Oda ile SQL düzenleme iyileştirmeleri
Room veritabanı kitaplığını kullandığınızda SQL düzenlemeyle ilgili çeşitli iyileştirmelerden yararlanabilirsiniz:
Query
içindeki kod tamamlama, SQL tablolarını (varlıkları), sütunları, sorgu parametrelerini, takma adları, birleştirme işlemlerini, alt sorguları ve WITH yan tümcelerini anlar.- SQL söz dizimi vurgulama artık çalışıyor.
- SQL'de bir tablo adını sağ tıklayıp yeniden adlandırabilirsiniz. Bu işlem, karşılık gelen Java veya Kotlin kodunu da (örneğin, sorgunun dönüş türü dahil) yeniden yazar. Yeniden adlandırma işlemi diğer yönde de çalışır. Bu nedenle, bir Java sınıfının veya alanının yeniden adlandırılması, ilgili SQL kodunun yeniden yazılmasını sağlar.
- SQL kullanımları, Kullanım yerlerini bul'u kullanırken gösterilir (sağ tıklayıp bağlam menüsünden Kullanım yerlerini bul'u seçin).
- Java veya Kotlin kodunda bir SQL öğesinin tanımına gitmek için öğeyi tıklarken Ctrl (Mac'te Komut) tuşunu basılı tutabilirsiniz.
SQL'i Room ile kullanma hakkında bilgi edinmek için Room'u kullanarak verileri yerel bir veritabanına kaydetme başlıklı makaleyi inceleyin.
Veri bağlamayla ilgili güncellemeler
Bu güncelleme, veri bağlama ile ilgili çeşitli iyileştirmeler içerir:
-
Artık veri bağlama ifadelerinde gözlemlenebilir alan olarak bir
LiveData
nesnesi kullanabilirsiniz.ViewDataBinding
sınıfına,LiveData
öğelerini gözlemlemek için kullanabileceğiniz yeni birsetLifecycle()
yöntemi eklendi. -
ObservableField
sınıfı artık oluşturucusuna başkaObservable
nesneleri kabul edebilir. -
Veri bağlama sınıflarınız için yeni bir artımlı derleyiciyi önizleyebilirsiniz. Bu yeni derleyicinin ayrıntıları ve etkinleştirme talimatları için Veri Bağlama Derleyicisi V2 başlıklı makaleyi inceleyin.
Yeni derleyicinin avantajları arasında şunlar yer alır:
-
ViewBinding
sınıfları, Java derleyicisinden önce Gradle için Android Eklentisi tarafından oluşturulur. - Kitaplıklar, uygulama derlenirken her seferinde yeniden oluşturulmak yerine oluşturulan bağlama sınıflarını korur. Bu, çok modüllü projelerin performansını önemli ölçüde artırabilir.
-
Derleyici ve Gradle
D8, varsayılan DEX derleyicisidir
DEX bayt kodu oluşturmak için artık varsayılan olarak D8 derleyicisi kullanılmaktadır.
Bu yeni DEX derleyici, aşağıdakiler gibi çeşitli avantajlar sunar:
- Daha hızlı dizin oluşturma
- Daha düşük bellek kullanımı
- İyileştirilmiş kod oluşturma (daha iyi kayıt ataması, daha akıllı dize tabloları)
- Kodda adım atarken daha iyi hata ayıklama deneyimi
Daha önce D8 derleyicisini manuel olarak devre dışı bırakmadıysanız bu avantajlardan yararlanmak için kodunuzda veya geliştirme iş akışınızda herhangi bir değişiklik yapmanız gerekmez.
gradle.properties
öğenizdeki android.enableD8
değerini false
olarak ayarladıysanız bu işareti silin veya true
olarak ayarlayın:
android.enableD8=true
Ayrıntılar için Yeni DEX derleyici başlıklı makaleyi inceleyin.
Artımlı şekeri azaltma
Java 8 dil özelliklerini kullanan projelerde, artımlı şeker azaltma işlemi varsayılan olarak etkindir. Bu, derleme sürelerini iyileştirebilir.
Şeker çıkarma işlemi, söz dizimi şekerini derleyicinin daha verimli bir şekilde işleyebileceği bir forma dönüştürür.
Projenizin gradle.properties
dosyasında aşağıdakileri belirterek artımlı çözümlemeyi devre dışı bırakabilirsiniz:
android.enableIncrementalDesugaring=false
Basitleştirilmiş çıkış penceresi
Gradle Console, Sync ve Build sekmelerinin bulunduğu Build penceresiyle değiştirildi.
Yeni ve basitleştirilmiş Derleme penceresinin nasıl kullanılacağı hakkında ayrıntılı bilgi için Derleme sürecini izleme başlıklı makaleyi inceleyin.
Toplu güncellemeler ve dizine ekleme işlemlerinin eşzamanlılığı
Gradle senkronizasyonu ve IDE dizine ekleme işlemleri artık çok daha verimli olduğundan, birçok gereksiz dizine ekleme işleminde boşa harcanan süre azalıyor.
C++ ve LLDB
C++ geliştirmenin kodlama, senkronizasyon, oluşturma ve hata ayıklama aşamalarında birçok kalite ve performans iyileştirmesi yaptık. İyileştirmeler şunları içerir:
-
Büyük C++ projeleriyle çalışıyorsanız simge oluşturmak için harcanan sürenin azalmasında önemli bir iyileşme göreceksiniz. Büyük projelerde senkronizasyon süresi de büyük oranda azalır.
-
Önbelleğe alınan sonuçların daha agresif bir şekilde yeniden kullanılması sayesinde CMake ile uygulama oluşturma ve senkronize etme performansı artırıldı.
-
Daha fazla C++ veri yapısı için biçimlendiricilerin ("güzel yazıcılar") eklenmesi, LLDB çıkışının okunmasını kolaylaştırır.
-
LLDB artık yalnızca Android 4.1 (API düzeyi 16) ve sonraki sürümlerde çalışır.
Not: Android Studio 3.0 veya sonraki sürümlerde doğal hata ayıklama, 32 bit Windows'ta çalışmaz. 32 bit Windows kullanıyorsanız ve yerel kodda hata ayıklama yapmanız gerekiyorsa Android Studio 2.3'ü kullanın.
Kotlin
Kotlin 1.2.30 sürümüne yükseltildi
Android Studio 3.1, Kotlin 1.2.30 sürümünü içerir.
Kotlin kodu artık komut satırı lint kontrolüyle analiz ediliyor
Komut satırından lint çalıştırma artık Kotlin sınıflarınızı analiz ediyor.
Linting çalıştırmak istediğiniz her proje için üst düzey build.gradle
dosyasına Google'ın Maven deposu eklenmelidir. Maven deposu, Android Studio 3.0 ve sonraki sürümlerde oluşturulan projelere zaten dahildir.
Performans araçları
CPU Profiler ile yerel C++ işlemlerini örnekleme
CPU Profilleyici artık uygulamanızın yerel iş parçacıklarının örneklenmiş izlerini kaydetmek için varsayılan bir yapılandırma içeriyor. Uygulamanızı Android 8.0 (API seviyesi 26) veya sonraki bir sürüm çalıştıran bir cihaza dağıtıp CPU Profilleyici'nin kayıt yapılandırmaları açılır menüsünden Sanalandırılmış (Yerel)'i seçerek bu yapılandırmayı kullanabilirsiniz. Ardından, normalde yaptığınız gibi bir izleme kaydetme ve inceleme
Örnekleme aralığı gibi varsayılan ayarları kayıt yapılandırması oluşturarak değiştirebilirsiniz.
Java iş parçacıklarını izlemeye geri dönmek için örneklenmiş (Java) veya araç eklenmiş (Java) bir yapılandırma seçin.
CPU izlerini, bellek ayırma sonuçlarını ve yığın dökümlerini filtreleyin
CPU Profiler ve Memory Profiler, bir yöntem izleme kaydından, bellek ayırmalarından veya yığın dökümünden elde edilen sonuçları filtrelemenize olanak tanıyan bir arama özelliği içerir.
Arama yapmak için bölmenin sağ üst köşesindeki Filtrele'yi tıklayın, sorgunuzu yazın ve Enter tuşuna basın.
İpucu: Arama alanını Ctrl + F (Mac'te Komut + F) tuşlarına basarak da açabilirsiniz.
CPU Profilleyici'nin Alev Grafiği sekmesinde, arama sorgunuzla ilgili yöntemleri içeren çağrı yığınları vurgulanır ve grafiğin sol tarafına taşınır.
Yöntem, sınıf veya paket adına göre filtreleme hakkında daha fazla bilgi için Yöntem izlemelerini kaydetme ve inceleme başlıklı makaleyi inceleyin.
Network Profiler'daki Request (İstek) sekmesi
Ağ Profilleyici'ye artık, seçilen zaman çizelgesi sırasında ağ istekleriyle ilgili ayrıntılar sağlayan bir İstek sekmesi eklendi. Önceki sürümlerde Ağ Profili Analizi yalnızca ağ yanıtları hakkında bilgi sağlıyordu.
Network Profiler'da ileti dizisi görünümü
Ağ Profilleyici'de zaman çizelgesinin bir bölümünü seçtikten sonra, bu zaman aralığındaki ağ etkinliği hakkında daha fazla ayrıntı görmek için aşağıdaki sekmelerden birini seçebilirsiniz:
- Bağlantı Görünümü: Android Studio'nun önceki sürümleriyle aynı bilgileri sağlar. Uygulamanızın tüm CPU iş parçacıklarında zaman çizelgesinin seçilen kısmı sırasında gönderilen veya alınan dosyaları listeler. Her istek için boyutu, türü, durumu ve aktarım süresini inceleyebilirsiniz.
- İşlem Düğümü Görünümü: Uygulamanızın her bir CPU iş düğümünün ağ etkinliğini gösterir. Bu görünüm, her ağ isteği için uygulamanızdaki hangi iş parçacıklarının sorumlu olduğunu incelemenize olanak tanır.
Layout Inspector
Layout Inspector, desteği sonlandırılan hiyerarşi görüntüleyici ve Pixel Perfect araçları tarafından daha önce sağlanan bazı işlevler de dahil olmak üzere yeni özellikler kazandı:
- Düzenlerde gezinmek ve düzenleri incelemek için yakınlaştırma düğmeleri ve klavye kısayolları
- Referans ızgara yer paylaşımı
- Referans resim yükleyip yer paylaşımı olarak kullanabilme (düzenlemenizi bir kullanıcı arayüzü taslağıyla karşılaştırmak için kullanışlıdır)
- Karmaşık bir düzendeki bir görünümü izole etmek için alt ağaç önizlemesini oluşturma
Düzenleyici
Düzen Düzenleyici'deki Palet'te birçok iyileştirme yapıldı:
- Görünümler ve düzenler için kategorilerin yeniden düzenlenmesi.
- Görünümler ve düzenler için yeni Ortak kategorisi. Bu kategoriye Favori komutuyla ekleme yapabilirsiniz.
- Görünüm ve düzen araması iyileştirildi.
- Belirli bir görünüm veya düzen öğesinin dokümanlarını açma için yeni komutlar.
Bir görünümü veya düzeni başka bir görünüm veya düzen türüne dönüştürmek için Bileşen ağacında veya tasarım düzenleyicisinde yeni Görünümü dönüştür komutunu kullanabilirsiniz.
Artık Özellikler penceresinin üst kısmındaki görünüm denetleyicisinde bulunan yeni Bağlantı oluştur düğmelerini kullanarak seçili görünümün yakınındaki öğeler için kolayca kısıtlama oluşturabilirsiniz.
Çalıştırma ve Anında Çalıştırma
Yayınlama hedefini seç iletişim kutusunda bulunan Gelecekteki yayınlar için aynı seçimi kullan seçeneğinin davranışı daha tutarlı hale getirildi. Aynı seçimi kullan seçeneği etkinse Yayınlama hedefini seç iletişim kutusu yalnızca Çalıştır komutunu ilk kez kullandığınızda açılır ve seçili cihaz artık bağlı olmadığında kapanır.
Android 8.0 (API seviyesi 26) veya sonraki sürümleri çalıştıran bir cihaz hedeflendiğinde Anında Çalıştır, uygulamanın yeniden başlatılmasına neden olmadan kaynaklarda değişiklik dağıtabilir. Bu, kaynakların bölünmüş bir APK'da yer alması nedeniyle mümkündür.
Emülatör
Android Studio 3.0'dan bu yana emülatörde yapılan yenilikler ve değişikliklerle ilgili ayrıntılar için 27.0.2 sürümünden 27.1.12 sürümüne kadarki Android Emülatör sürüm notlarına bakın.
Önemli iyileştirmeler şunlardır:
- Özel bir başlangıç durumunu kaydetmek için Şimdi kaydet komutunu kullanarak emülatör durumunu kaydetmek ve daha hızlı başlatmak için Hızlı Başlatma anlık görüntüleri.
- Penceresiz emülatör ekranı.
- Android 8.0 (API düzeyi 26), Android 8.1 (API düzeyi 27) ve Android P Geliştirici Önizlemesi için sistem görüntüleri.
Kullanıcı arayüzü ve kullanıcı deneyimiyle ilgili iyileştirmeler
Daha fazla ipucu, klavye kısayolu ve faydalı mesajlar
Android Studio'nun birçok yerine ipucu ve faydalı mesaj yer paylaşımları ekledik.
Birçok komutun klavye kısayollarını görmek için fare işaretçisini bir düğmenin üzerinde tutarak ipucu görünene kadar beklemeniz yeterlidir.
Araçlar > Android menüsü kaldırıldı
Araçlar > Android menüsü kaldırıldı. Daha önce bu menüde bulunan komutlar taşındı.
- Birçok komut doğrudan Araçlar menüsünün altına taşındı.
- Projeyi Gradle dosyalarıyla senkronize et komutu Dosya menüsüne taşındı.
- Cihaz İzleyici komutu aşağıda açıklandığı şekilde kaldırıldı.
Komut satırından kullanılabilen Cihaz İzleyici
Android Studio 3.1'de Cihaz İzleyici, önceki sürümlere kıyasla daha az rol oynuyor. Cihaz İzleyici aracılığıyla sunulan işlevlerin çoğu artık yeni ve iyileştirilmiş araçlar tarafından sağlanmaktadır.
Komut satırından Cihaz Monitörü işlevini çağırma talimatları ve Cihaz Monitörü üzerinden kullanılabilen araçların ayrıntıları için Cihaz Monitörü dokümanlarına bakın.