Android Studio 3.1 (Mart 2018)

Android Studio 3.1.0, çeşitli yeni özellikler ve iyileştirmeler içeren ana sürümdür.

3.1.4 (Ağustos 2018)

Bu Android Studio 3.1 güncellemesi, aşağıdaki değişiklikleri ve düzeltmeleri içerir:

  • Paket halinde sunulan Kotlin'in 1.2.50 sürümü yayınlandı.
  • Yeni projeler, kullanımdan kaldırılan kotlin-stdlib-jre* yapıları yerine kotlin-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, belirli optimizasyonlar gerçekleştirirken sonsuz döngüye girdi.
    • Çalıştır penceresindeki Başarısız testleri yeniden çalıştır komutunun kullanılması bazen yanlışlıkla "Test bulunamadı" mesajının döndürülmesine neden oluyordu.
    • D8, invoke-virtual örneği doğru şekilde işlemediği için VerifyError ile kilitlenmeye neden oldu: invoke-super/virtual can't be used on private method
    • Data Binding derleyicisi, com.android.tools:annotations tarayıcısının eski bir sürümüne bağlıydı. Derleyici artık mevcut olduğunda temel projedeki araç ek açıklamalarını kullanıyor.
    • Profil oluşturucuları kullanılırken parça geçişleri sırasında Android Studio çöktü.
    • Hata ayıklayıcı, metin kutusu bulunan bir düzende hata ayıklarken kilitlendi.
    • D8, özel karakterler içeren bazı ZIP dosyalarını okuyamadı.

3.1.3 (Haziran 2018)

Android Studio 3.1'e yapılan bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:

  • Bellek sızıntıları, Düzen Düzenleyici'yi kullandıktan sonra Android Studio'nun yavaş olmasına ve yanıt vermemesine neden oldu. Bu güncelleme, bu sorunların çoğuna yönelik düzeltmeleri içerir. Ek bellek sızıntılarını gidermek için yakında başka bir güncelleme yayınlamayı planlıyoruz.
  • D8 ile oluşturulan bazı uygulamalar, bazı Verizon Ellipsis tabletlerinde kilitlendi.
  • D8 ile oluşturulan uygulamaların yüklenmesi, Android 5.0 veya 5.1 (API düzeyi 21 veya 22) çalıştıran cihazlarda INSTALL_FAILED_DEXOPT hatası vererek 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 kilitlendi.
  • Android Studio bazen com.intellij.psi.jsp.JspElementType için sınıf ilk kullanıma hazırlanırken ProcessCanceledException ile başlanamıyordu.

3.1.2 (Nisan 2018)

Android Studio 3.1'e yapılan bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:

  • Bazı durumlarda, Android Studio çıkış sırasında süresiz olarak askıda kalmıştır.
  • Anında Çalıştırma etkinken kaynak kümeleri ile yapılandırılan derlemeler aşağıdaki mesajla başarısız oluyordu:

    "The SourceSet name is not recognized by the Android Gradle Plugin."

  • Anında Çalıştırma etkinleştirildiğinde, yeni Kotlin projelerinin derlemeleri Çalıştır komutu ile tetiklendiğinde başarısız oluyordu.
  • build.gradle dosyası düzenlenirken bazen bir karakterin yazılması ile ekranda görünmesi arasında fark edilir bir gecikme oluyordu.
  • Çok sayıda modül veya harici bağımlılığa sahip bazı projelerde sıralama işlemi sırasında aşağıdaki hata mesajıyla birlikte derleme hataları oluştu:

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

  • D8 ana DEX listesi hesaplanırken bazı yansıtıcı çağrılar dikkate alınmamıştır.

Bu güncelleme, bazı senaryolarda Gradle'dan lint kontrollerini çalıştırmayı çok daha hızlı hale getiren değişiklikleri de içerir.

3.1.1 (Nisan 2018)

Android Studio 3.1'e yapılan bu güncelleme, aşağıdaki hataların düzeltmelerini içerir:

  • Bazı durumlarda, Android Studio 3.0'da oluşturulan bir proje Android Studio 3.1'de ilk kez açıldığında, Gradle-aware Make görevi Çalıştırma/Hata Ayıklama Yapılandırmaları'ndaki Lansmandan önce alanından kaldırılmıştır. Sonuçta, Çalıştır veya Hata Ayıkla düğmesi tıklandığında projelerin oluşturulmaması sonucunda yanlış APK'ların dağıtılması ve Anında Çalıştırma kullanılırken kilitlenmeler gibi hatalar ortaya çıkmıştır.

    Android Studio 3.1.1, bu sorunu çözmek için bu girişin eksik olduğu projelerin çalıştırma yapılandırmasına Gradle-aware Make görevini ekler. Bu değişiklik, proje yüklendiğinde ilk Gradle senkronizasyonundan sonra gerçekleşir.

  • Gelişmiş profil oluşturma etkinse hata ayıklayıcı, metin kutusu içeren bir düzende hata ayıklarken çöküyordu.
  • Varyant Oluştur'u tıklamanızdan sonra Android Studio dondu.
  • AAR (Android arşivi) dosyaları bir kez Gradle senkronizasyonu işlemi ve bir kez de Gradle derleme işlemi sırasında olmak üzere iki kez çıkartıldı.
  • SVG dosyalarından içe aktarılan bazı vektör çekilebilir öğelerinde öğeler eksikti.
  • compile bağımlılık yapılandırmasının kullanımdan kaldırılmasıyla ilgili uyarı, implementation ve api yapılandırmalarıyla ilgili daha iyi rehberlik içerecek ş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 belgelere göz atın.

Kodlama/IDE

IntelliJ 2017.3.3

Temel Android Studio IDE, IntelliJ IDEA'nın 2017.3.3 sürümü boyunca yapılan iyileştirmelerle güncellenmiştir. İyileştirmeler arasında koleksiyonlar ve dizeler için daha iyi kontrol akışı analizi, iyileştirilmiş boş değer çıkarımı, yeni hızlı düzeltmeler ve çok daha fazlası bulunur.

Ayrıntılı bilgi için IntelliJ IDEA'nın 2017.2 ve 2017.3 sürümleriyle ilgili JetBrains sürüm notlarına ve hata düzeltmesi güncellemeleri ile ilgili JetBrains sürüm notlarına göz atın.

Room ile SQL düzenlemede iyileştirmeler

Oda veritabanı kitaplığını kullandığınızda SQL düzenlemede yapılan çeşitli iyileştirmelerden yararlanabilirsiniz:

  • Query içinde kod tamamlama SQL tablolarını (varlıklar), sütunları, sorgu parametrelerini, takma adları, birleştirmeleri, alt sorguları ve WITH yan tümcelerini anlar.
  • SQL söz dizimi vurgulaması 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öndürülen türü dahil) yeniden yazar. Yeniden adlandırma işlemi ters yönde de çalışır. Bu nedenle, bir Java sınıfının veya alanın yeniden adlandırılması, karşılık gelen SQL kodunun yeniden yazılmasına neden olur.
  • SQL kullanımları, Kullanımları bul özelliği kullanılırken gösterilir (sağ tıklayın ve içerik menüsünden Kullanımları bul'u seçin).
  • Java veya Kotlin kodunda bir SQL varlığı bildirimine gitmek için varlığı tıklarken Control (Mac'te Command) tuşunu basılı tutabilirsiniz.

Oda ile SQL kullanma hakkında bilgi için Oda'yı kullanarak verileri yerel bir veritabanına kaydetme bölümüne bakın.

Veri bağlama güncellemeleri

Bu güncelleme, veri bağlama için çeşitli iyileştirmeler içerir:

  • Artık bir LiveData nesnesini veri bağlama ifadelerinde gözlemlenebilir alan olarak kullanabilirsiniz. ViewDataBinding sınıfı artık LiveData nesnelerini gözlemlemek için kullandığınız yeni bir setLifecycle() yöntemini içeriyor.

  • ObservableField sınıfı artık oluşturucusunda diğer Observable nesnelerini kabul edebilir.

  • Veri bağlama sınıflarınız için yeni bir artımlı derleyiciyi önizleyebilirsiniz. Bu yeni derleyiciyle ilgili ayrıntılar ve etkinleştirme talimatları için Data Binding Derleyici V2'ye göz atın.

    Yeni derleyicinin avantajları şunlardır:

    • ViewBinding sınıfları, Java derleyicisinden önce Android Plugin for Gradle tarafından oluşturulur.
    • Kitaplıklar, her seferinde yeniden oluşturulmak yerine, uygulama derlendiğinde 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 derleyicidir

D8 derleyici artık DEX bayt kodu oluşturmak için varsayılan olarak kullanılmaktadır.

Bu yeni DEX derleyicisi, aşağıdakiler de dahil olmak üzere çeşitli avantajlar sunar:

  • Daha hızlı dex kullanma
  • Daha düşük bellek kullanımı
  • İyileştirilmiş kod oluşturma (daha iyi kayıt dağılımı, daha akıllı dize tabloları)
  • Kodlarda adım adım ilerlerken daha iyi hata ayıklama deneyimi

Daha önce D8 derleyicisini 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 sayfanızda android.enableD8 öğesini false olarak ayarlarsanız bu işareti silin veya true olarak ayarlayın:

        android.enableD8=true
      

Ayrıntılar için Yeni DEX derleyici bölümüne bakın.

Artımlı şeker giderme

Java 8 dili özelliklerini kullanan projeler için artımlı şeker giderme varsayılan olarak etkinleştirilir. Bu da derleme sürelerini kısaltabilir.

Şekerden arındırma, sözdizimsel şekeri derleyicinin daha verimli bir şekilde işleyebileceği bir biçime dönüştürür.

Projenizin gradle.properties dosyasında aşağıdakileri belirterek artımlı şeker giderme özelliğini devre dışı bırakabilirsiniz:

        android.enableIncrementalDesugaring=false
      

Basitleştirilmiş çıkış penceresi

Gradle Konsolu, Sync ve Build sekmelerine sahip olan Build penceresiyle değiştirildi.

Yeni ve basitleştirilmiş Derleme penceresinin nasıl kullanılacağı hakkında ayrıntılı bilgi için Derleme işlemini izleme bölümüne bakın.

Toplu güncelleme ve dizine ekleme eşzamanlılığı

Gradle senkronizasyonu ve IDE dizine ekleme işlemleri artık çok daha verimli, birçok yedek dizine ekleme işlemi için harcanan zamanı azaltıyor.

C++ ve LLDB

C++ geliştirmenin kodlama, senkronizasyon, derleme ve hata ayıklama aşamalarında kalite ve performans konusunda birçok iyileştirme yaptık. İyileştirmeler aşağıdakileri içerir:

  • Büyük C++ projeleriyle çalışıyorsanız sembolleri oluşturmak için harcanan sürede önemli bir iyileşme olduğunu göreceksiniz. Ayrıca büyük projelerde senkronizasyon süresi de büyük ölçüde kısalır.

  • CMake ile oluşturma ve senkronizasyon performansı, önbelleğe alınan sonuçların daha agresif bir şekilde yeniden kullanılmasıyla iyileştirildi.

  • Daha fazla C++ veri yapısı için biçimlendiricilerin ("güzel yazıcılar") eklenmesi, LLDB çıkışının daha kolay okunmasını sağlar.

  • LLDB artık yalnızca Android 4.1 (API düzeyi 16) ve sonraki sürümlerde çalışmaktadır.

Not: Android Studio 3.0 veya sonraki sürümler ile yerel hata ayıklama, 32 bit Windows'da çalışmaz. 32 bit Windows kullanıyorsanız ve yerel kodda hata ayıklamanı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ü ile analiz ediliyor

Komut satırından lint çalıştırmak artık Kotlin sınıflarınızı analiz ediyor.

lint çalıştırmak istediğiniz her proje için Google'ın Maven deposu, üst düzey build.gradle dosyasına eklenmelidir. Maven deposu, Android Studio 3.0 ve sonraki sürümlerde oluşturulan projelere zaten dahil edilmiştir.

Performans araçları

CPU Profiler ile örnek yerel C++ işlemleri

CPU Profiler 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 düzeyi 26) veya sonraki sürümleri çalıştıran bir cihaza dağıtıp ardından CPU Profiler'ın kayıt yapılandırmaları açılır menüsünden Örneklenmiş (Yerel) seçeneğini belirleyerek bu yapılandırmayı kullanabilirsiniz. Ardından, normalde yaptığınız gibi bir izi kaydedip inceleyin.

Örnekleme aralığı gibi varsayılan ayarları kayıt yapılandırması oluşturarak değiştirebilirsiniz.

Java iş parçacıklarınızı izlemeye geri dönmek için Örneklenmiş (Java) veya Araçlı (Java) yapılandırmalarından birini seçin.

CPU izlerini, bellek ayırma sonuçlarını ve yığın dökümlerini filtreleyin

CPU Profiler ve Bellek Profilcisi, bir yöntem izi, bellek ayırmaları veya yığın dökümünü kaydetmek için sonuçları filtrelemenize olanak tanıyan bir arama özelliği içerir.

Arama yapmak için bölmenin sağ üst köşesindeki Filtre simgesini tıklayın, sorgunuzu yazın ve Enter tuşuna basın.

İpucu: Arama alanını Control + F (Mac'te Command + F) tuşlarına basarak da açabilirsiniz.

CPU Profiler'ın Flame 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önteme, sınıfa veya paket adına göre filtreleme hakkında daha fazla bilgi için Yöntem izlerini kaydetme ve inceleme bölümüne bakın.

Network Profiler'daki Request (İstek) sekmesi

Ağ Profil Aracı'nda artık seçilen zaman çizelgesindeki ağ istekleriyle ilgili ayrıntılı bilgi sağlayan İstek sekmesi bulunuyor. Önceki sürümlerde, Network Profiler yalnızca ağ yanıtlarıyla ilgili bilgileri sağlıyordu.

Ağ Profil Aracı'nda İleti Dizisi Görünümü

Network Profiler'da zaman çizelgesinin bir kısmını seçtikten sonra söz konusu zaman aralığındaki ağ etkinliğiyle ilgili 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 iletim süresini inceleyebilirsiniz.
  • İş Parçacığı Görünümü: Uygulamanızın CPU iş parçacıklarının her birinin ağ etkinliğini gösterir. Bu görünüm, her ağ isteğinden uygulamanızdaki iş parçacıklarından hangilerinin sorumlu olduğunu incelemenize olanak tanır.

Düzen Denetleyici

Düzen Denetleyici, daha önce kullanımdan kaldırılan Hiyerarşi Görüntüleyicisi ve Pixel Perfect araçları tarafından 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 görüntü yükleme ve bunu bir bindirme olarak kullanma özelliği (düzeninizi bir kullanıcı arayüzü modeliyle karşılaştırmak için kullanışlıdır)
  • Karmaşık bir düzende bir görünümü izole etmek için alt ağaç önizlemesi oluşturun

Düzen Düzenleyici

Düzen Düzenleyici'deki Palet birçok iyileştirme aldı:

  • Görünümler ve düzenler için kategorilerin yeniden düzenlenmesi.
  • Görünümler ve düzenler için Favori komutuyla ekleyebileceğiniz yeni Genel kategorisi.
  • İyileştirilmiş görünümler ve düzenler için arama.
  • Belirli bir görünüm veya düzen öğesiyle ilgili dokümanları açmaya yönelik yeni komutlar.

Bir görünümü veya düzeni başka bir görünüm ya da düzen türüne dönüştürmek için Bileşen ağacı veya tasarım düzenleyicideki yeni Görünümü dönüştür komutunu kullanabilirsiniz.

Artık Özellikler penceresinin üst kısmındaki görünüm denetleyicisinde yer alan yeni Bağlantı oluştur düğmelerini kullanarak, seçilen görünümün yakınındaki öğeler için kolayca kısıtlamalar oluşturabilirsiniz.

Çalıştır ve Anında Çalıştır

Dağıtım hedefi seçin iletişim kutusundaki Gelecekteki lansmanlarda aynı seçimi kullan seçeneğinin davranışı daha tutarlı hale getirilmiştir. Aynı seçimi kullan seçeneği etkinleştirilirse Dağıtım hedefi seç iletişim kutusu yalnızca Çalıştır komutunu ilk kez kullandığınızda seçili cihazın bağlantısı kesilene kadar açılır.

Anında Çalıştırma, Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bir cihazı hedeflerken uygulamanın yeniden başlatılmasına neden olmadan değişiklikleri kaynaklara dağıtabilir. Kaynaklar bölünmüş bir APK'da bulunduğu için bu mümkündür.

Emülatör

Android Studio 3.0 sürümünden sonra emülatörde yapılan yenilikler ve değişiklikler hakkında ayrıntılı bilgi için 27.0.2 ile 27.1.12 arasındaki Android Emulator sürüm notlarına bakın.

Önemli iyileştirmeler aşağıdakileri içerir:

  • Özel bir başlangıç durumu kaydetmek için Şimdi kaydet komutunu kullanma özelliğiyle, emülatör durumunun kaydedilmesi ve daha hızlı başlatılması 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 resimleri.

Kullanıcı arayüzü ve kullanıcı deneyimi iyileştirmeleri

Daha fazla ipucu, klavye kısayolları ve faydalı mesajlar

Android Studio'daki birçok yere ipuçları ve faydalı mesaj yer paylaşımları ekledik.

Birçok komutun klavye kısayollarını görmek için ipucu görünene kadar fare imlecini bir düğmenin üzerinde tutun.

Araçlar > Android menüsü kaldırıldı

Araçlar > Android menüsü kaldırıldı. Daha önce bu menünün altında olan komutlar taşındı.

  • Birçok komut doğrudan Araçlar menüsünün altına taşındı.
  • Sync project with gradle files (Projeyi gradle dosyalarıyla senkronize et) komutu Dosya menüsüne taşındı.
  • Device Monitor komutu aşağıda açıklandığı gibi kaldırılmıştır.

Komut satırından kullanılabilen Cihaz İzleyicisi

Android Studio 3.1'de Cihaz İzleyicisi, öncesine göre daha az bir rol üstleniyor. Çoğu durumda, Cihaz Monitörü aracılığıyla kullanılabilen işlevler artık yeni ve iyileştirilmiş araçlarla sağlanmaktadır.

Komut satırından Cihaz Monitörü'nü çağırma talimatları ve Cihaz Monitörü aracılığıyla kullanılabilen araçlarla ilgili ayrıntılar için Cihaz Monitörü belgelerine bakın.