Android Studio 3.1 (Mart 2018)

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

3.1.4 (Ağustos 2018)

Android Studio 3.1'deki bu güncelleme aşağıdaki değişiklikleri ve düzeltmeleri içerir:

  • Paketlenmiş Kotlin sürümü 1.2.50'ye yükseltildi.
  • Yeni projeler, desteği sonlandırılan kotlin-stdlib-jre* yapıtları 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 Main sınıfını çalıştırma girişimi şu hatayla başarısız oldu: "Error: Could not find or load main class..."
    • R8, belirli optimizasyonları gerçekleştirirken sonsuz döngüye giriyordu.
    • Çalıştır penceresinde Başarısız testleri yeniden çalıştır komutu kullanıldığında bazen "Test bulunamadı" mesajı yanlışlıkla döndürülüyordu.
    • D8, invoke-virtual örneklerini doğru şekilde işlemediğinden VerifyError ile kilitlenmeye neden oluyordu: invoke-super/virtual can't be used on private method
    • Veri bağlama derleyicisi, com.android.tools:annotations'nın eski bir sürümüne bağlıydı. Derleyici artık uygun olduğunda temel projedeki araç ek açıklamalarını kullanıyor.
    • Android Studio, profiler'lar kullanılırken parça geçişleri sırasında kilitleniyordu.
    • Hata ayıklayıcı, metin kutusu içeren bir düzende hata ayıklanırken kilitleniyordu.
    • D8, özel karakterler içeren bazı ZIP dosyalarını okuyamadı.

3.1.3 (Haziran 2018)

Android Studio 3.1'deki bu güncelleme, aşağıdaki hatalar için düzeltmeler içerir:

  • Bellek sızıntıları, Düzen Düzenleyici'yi kullandıktan sonra Android Studio'nun yavaşlamasına ve yanıt vermemesine neden oluyordu. 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 tabletlerde kilitleniyordu.
  • D8 ile oluşturulan uygulamaların Android 5.0 veya 5.1 (API düzeyi 21 ya da 22) çalıştıran cihazlara yüklenmesi INSTALL_FAILED_DEXOPT hatasıyla başarısız oluyordu.
  • 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 başlatılamıyordu ve ProcessCanceledException sınıf başlatma sırasında com.intellij.psi.jsp.JspElementType hatası veriyordu.

3.1.2 (Nisan 2018)

Android Studio 3.1'deki bu güncelleme, aşağıdaki hatalar için düzeltmeler içerir:

  • Bazı durumlarda Android Studio, çıkış sırasında süresiz olarak kilitleniyordu.
  • Kaynak kümeleriyle yapılandırılan derlemeler, Anında Çalıştırma etkinleştirildiğinde 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 komutuyla tetiklendiğinde başarısız oluyordu.
  • build.gradle dosyası düzenlenirken bazen bir karakter yazma ile karakterin ekranda görünmesi arasında belirgin bir gecikme oluyordu.
  • Çok sayıda modül veya harici bağımlılık içeren bazı projelerde dexing sırasında derleme hataları oluştu. Hata mesajı şu şekildeydi:

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

  • D8 ana DEX listesinin hesaplanmasında bazı yansıtıcı çağırmalar dikkate alınmıyordu.

Bu güncelleme, bazı senaryolarda Gradle'dan lint kontrollerinin çalıştırılmasını ç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 için düzeltmeler içerir:

  • Bazı durumlarda, Android Studio 3.0'da oluşturulan bir proje Android Studio 3.1'de ilk kez açıldığında Gradle'ı kullanan Make görevi, Run/Debug Configurations'daki Before launch alanından kaldırılıyordu. Sonuç olarak, Çalıştır veya Hata Ayıkla düğmesi tıklandığında projeler oluşturulmadı. Bu da yanlış APK'ların dağıtılması ve Anında Çalıştırma kullanılırken kilitlenme gibi hatalara neden oldu.

    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'ı bilen Make görevini ekler. Bu değişiklik, proje yüklendiğinde ilk Gradle senkronizasyonundan sonra gerçekleşir.

  • Gelişmiş profil oluşturma etkinleştirilmişse metin kutusu içeren bir düzende hata ayıklanırken hata ayıklayıcı kilitleniyordu.
  • Build Variants'ı (Derleme Çeşitleri) tıkladıktan sonra Android Studio'nun donması
  • AAR (Android arşivi) dosyaları iki kez çıkarılıyordu: bir kez Gradle senkronizasyon işlemi sırasında, bir kez de Gradle derleme işlemi sırasında.
  • SVG dosyalarından içe aktarılan bazı vektör çizilebilir öğelerinde eksiklikler vardı.
  • compile bağımlılık yapılandırmasının desteğinin sonlandırılmasıyla ilgili uyarı, implementation ve api yapılandırmalarıyla ilgili daha iyi yönergelerle güncellendi. compile yapılandırmasını kullanmayı bırakma hakkında ayrıntılı bilgi için yeni bağımlılık yapılandırmalarıyla ilgili belgelere bakın.

Kodlama/IDE

IntelliJ 2017.3.3

Temel Android Studio IDE, IntelliJ IDEA'daki iyileştirmelerle 2017.3.3 sürümüne kadar güncellendi. İyileştirmeler arasında koleksiyonlar ve dizeler için daha iyi kontrol akışı analizi, geliştirilmiş nullability çıkarımı, yeni hızlı düzeltmeler ve çok daha fazlası yer alıyor.

Ayrıntılar için 2017.2 ve 2017.3 IntelliJ IDEA sürümlerinin JetBrains sürüm notlarının yanı sıra hata düzeltme güncellemeleri ile ilgili JetBrains sürüm notlarını inceleyin.

Room 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 ifadelerini 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, ilgili Java veya Kotlin kodunu (örneğin, sorgunun dönüş türü dahil) da yeniden yazar. Yeniden adlandırma işlemi ters yönde de çalışır. Bu nedenle, bir Java sınıfını veya alanını yeniden adlandırmak, ilgili SQL kodunu yeniden yazar.
  • SQL kullanımları, Kullanımları bul (sağ tıklayıp bağlam menüsünden Kullanımları bul'u seçerek) kullanıldığında gösterilir.
  • Java veya Kotlin kodunda bir SQL öğesinin bildirimine gitmek için, öğeyi tıklarken Control (Mac'te Command) tuşunu basılı tutabilirsiniz.

Room ile SQL kullanma hakkında bilgi edinmek için Room kullanarak verileri yerel veritabanına kaydetme başlıklı makaleyi inceleyin.

Veri bağlama ile 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 LiveData nesnesini kullanabilirsiniz. ViewDataBinding sınıfı artık setLifecycle() adlı yeni bir yöntem içeriyor. Bu yöntemi LiveData nesnelerini gözlemlemek için kullanabilirsiniz.

  • 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 Veri Bağlama Derleyicisi V2 başlıklı makaleye bakın.

    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, oluşturulan bağlama sınıflarını her seferinde yeniden oluşturmak yerine uygulama derlendiğinde saklar. Bu, çok modüllü projelerde performansı ö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ılıyor.

Bu yeni DEX derleyicinin aşağıdaki gibi çeşitli avantajları vardır:

  • Daha hızlı dexing
  • Bellek kullanımını azaltma
  • Geliştirilmiş kod oluşturma (daha iyi kayıt tahsisi, daha akıllı dize tabloları)
  • Kodda adım adım ilerlerken 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 içinde android.enableD8 öğesini false olarak ayarladıysanız söz konusu işareti silin veya true olarak ayarlayın:

        android.enableD8=true
      

Ayrıntılar için Yeni DEX derleyicisi başlıklı makaleyi inceleyin.

Artımlı şekerden arındırma

Java 8 dili özelliklerini kullanan projelerde, derleme sürelerini iyileştirebilecek artımlı desugaring özelliği varsayılan olarak etkindir.

Desugaring, söz dizimi şekerini 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ı desugaring'i devre dışı bırakabilirsiniz:

        android.enableIncrementalDesugaring=false
      

Basitleştirilmiş çıkış penceresi

Gradle Console, Sync ve Build sekmelerini içeren Build penceresiyle değiştirildi.

Yeni ve basitleştirilmiş Build penceresini kullanma hakkında ayrıntılı bilgi için Derleme sürecini izleme başlıklı makaleyi inceleyin.

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

Gradle senkronizasyonu ve IDE dizine ekleme işlemleri artık çok daha verimli. Bu sayede, birçok gereksiz dizine ekleme işleminde harcanan zaman azalıyor.

C++ ve LLDB

C++ geliştirmenin kodlama, senkronizasyon, oluşturma ve hata ayıklama aşamalarında kalite ve performansla ilgili birçok iyileştirme yaptık. İyileştirmeler şunları içerir:

  • Büyük C++ projeleriyle çalışıyorsanız sembol oluşturmak için harcanan sürenin önemli ölçüde kısaldığını fark edeceksiniz. Büyük projelerde senkronizasyon süresi de önemli ölçüde kısalır.

  • CMake ile derleme ve senkronizasyon sırasında performans, önbelleğe alınmış sonuçların daha agresif bir şekilde yeniden kullanılmasıyla iyileştirildi.

  • Daha fazla C++ veri yapısı için biçimlendiricilerin ("pretty printer") eklenmesiyle LLDB çıkışının okunması kolaylaştırıldı.

  • 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 daha yeni bir sürümle yapılan 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'de Kotlin 1.2.30 sürümü yer alır.

Kotlin kodu artık komut satırı lint kontrolüyle analiz ediliyor

Lint'i komut satırından çalıştırma işlemi artık Kotlin sınıflarınızı analiz ediyor.

Lint'i ç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 projelerde zaten yer alır.

Performans araçları

CPU profiler ile yerel C++ işlemlerini örnekleme

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 seviyesi 26) veya sonraki sürümlerin yüklü olduğu bir cihaza dağıtıp CPU Profiler'ın kayıt yapılandırmaları açılır menüsünden Örneklenmiş (Yerel)'i seçerek bu yapılandırmayı kullanabilirsiniz. Bundan sonra, normalde yaptığınız gibi bir iz kaydı oluşturun ve 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 Enstrümanlı (Java) yapılandırmasını seçin.

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

CPU Profiler ve Memory Profiler, sonuçları bir yöntem izinin, bellek ayırmalarının veya yığın dökümünün kaydedilmesine göre 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ı açmak için Control + F (Mac'te Command + F) tuşlarına da basabilirsiniz.

CPU Profiler'ın 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önteme, sınıfa veya paket adına göre filtreleme hakkında daha fazla bilgi için Yöntem izlerini kaydetme ve inceleme başlıklı makaleyi inceleyin.

Ağ Profil Oluşturucu'daki İstek sekmesi

Ağ Profil Oluşturucu'da artık seçilen zaman çizelgesi sırasında ağ istekleriyle ilgili ayrıntılar sağlayan bir İstek sekmesi bulunuyor. Önceki sürümlerde, Ağ Profil Oluşturucu yalnızca ağ yanıtlarıyla ilgili bilgi veriyordu.

Network Profiler'daki ileti dizisi görünümü

Ağ Profil Oluşturucu'da 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. Zaman çizelgesinin seçilen bölümünde uygulamanızın tüm CPU iş parçacıkları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 her bir CPU iş parçacığının ağ etkinliğini gösterir. Bu görünüm, uygulamanızın hangi iş parçacıklarının her ağ isteğinden sorumlu olduğunu incelemenize olanak tanır.

Layout Inspector

Layout Inspector, kullanımdan kaldırılan Hierarchy Viewer ve Pixel Perfect araçlarının daha önce sağladığı bazı işlevler de dahil olmak üzere yeni özellikler kazandı:

  • Düzenlerde gezinmek ve düzenleri incelemek için kullanılan yakınlaştırma düğmeleri ve klavye kısayolları
  • Referans kılavuz yer paylaşımı
  • Referans resim yükleyip yer paylaşımı olarak kullanabilme (düzeninizi bir kullanıcı arayüzü maketiyle karşılaştırmak için kullanışlıdır)
  • Karmaşık bir düzendeki görünümü yalıtmak için alt ağaç önizlemesini oluşturun.

Layout Editor

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 öğe ekleyebilirsiniz.
  • Görünüm ve düzen arama işlevi iyileştirildi.
  • Belirli bir görünüm veya düzen öğesi için 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 denetçisinde bulunan yeni Bağlantı oluştur düğmelerini kullanarak seçili görünüme yakın öğ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 getirildi. Aynı seçimi kullan seçeneği etkinse Dağıtım hedefi seçin iletişim kutusu, seçilen cihaz bağlantısı kesilene kadar Çalıştır komutunu kullandığınızda yalnızca ilk kez açılır.

Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bir cihazı hedeflediğinizde, Instant Run, uygulama yeniden başlatılmasına neden olmadan kaynaklardaki değişiklikleri dağıtabilir. Bunun nedeni, kaynakların bölünmüş bir APK'da yer almasıdır.

Emülatör

Android Studio 3.0'dan bu yana emülatörde yapılan değişiklikler ve yeniliklerle ilgili ayrıntılar için 27.0.2 sürümünden 27.1.12 sürümüne kadar olan Android Emulator sürüm notlarına bakın.

Başlıca iyileştirmeler şunlardır:

  • Özel bir başlangıç durumu kaydetmek için Şimdi kaydet komutunu kullanma olanağıyla birlikte, 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 Developer Preview 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ı mesaj

Android Studio'nun birçok yerinde ipuçları ve faydalı mesaj katmanları ekledik.

Birçok komutun klavye kısayollarını görmek için fare işaretçisini bir düğmenin üzerinde, ipucu görünene kadar bekletmeniz 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ığı gibi kaldırıldı.

Cihaz İzleyici, komut satırından kullanılabilir.

Android Studio 3.1'de Cihaz İzleyici, önceki sürümlere kıyasla daha az rol oynar. Çoğu durumda, Cihaz İzleyici'de sunulan işlevler artık yeni ve geliştirilmiş araçlarla sağlanmaktadır.

Komut satırından Cihaz İzleyici'yi çağırma talimatları ve Cihaz İzleyici'de bulunan araçların ayrıntıları için Cihaz İzleyici dokümanlarına bakın.