Android Studio Iguana | 1.2.2023 (Şubat 2024)

Aşağıda, Android Studio Iguana'daki yeni özellikler açıklanmaktadır.

Yama sürümleri

Aşağıda, Android Studio Iguana ve Android Gradle eklentisi 8.3'teki yama sürümlerinin listesi verilmiştir.

Android Studio Iguana | 2023.2.1 Yama 2 ve AGP 8.3.2 (Nisan 2024)

Bu küçük güncelleme, bu hata düzeltmelerini içerir.

Android Studio Iguana | 2023.2.1 Yama 1 ve AGP 8.3.1 (Mart 2024)

Bu küçük güncelleme, bu hata düzeltmelerini içerir.

IntelliJ IDEA 2023.2 platform güncellemesi

Android Studio Iguana, Studio IDE deneyimini iyileştiren IntelliJ IDEA 2023.2 güncellemelerini içerir. Değişikliklerle ilgili ayrıntılar için IntelliJ IDEA 2023.2 sürüm notlarına göz atın.

Uygulama Kalitesi Analizleri'nde sürüm denetim sistemi entegrasyonu

Uygulama Kalitesi Analizleri artık Crashlytics yığın izlemeden (stack trace) kilitlenmenin gerçekleştiği anda ilgili koda gitmenizi sağlar. AGP, kilitlenme raporlarına git commit karma verileri ekler. Bu sayede Android Studio, kodunuza gidebilir ve sorunun oluştuğu sürümde nasıl olduğunu gösterebilir. Uygulama Kalitesi Analizleri'nde bir kilitlenme raporunu görüntülerken mevcut git kontrolünüzdeki kod satırına gitmeyi veya mevcut kontrol ile kilitlenmeyi oluşturan kod tabanınızın sürümü arasındaki farkı görüntülemeyi seçebilirsiniz.

Sürüm kontrol sisteminizi Uygulama Kalitesi Analizleri ile entegre etmek için aşağıdaki minimum koşulları karşılamanız gerekir:

Hata ayıklama yapılabilir bir derleme türü için sürüm denetimi entegrasyonunu kullanmak istiyorsanız modül düzeyindeki derleme dosyasında vcsInfo işaretini etkinleştirin. Sürüm (hata ayıklama yapılamayan) derlemeler için işaret varsayılan olarak etkindir.

Kotlin

android {
  buildTypes {
    getByName("debug") {
      vcsInfo {
        include = true
      }
    }
  }
}

Groovy

android {
  buildTypes {
    debug {
      vcsInfo {
        include true
      }
    }
  }
}

Artık uygulamanızı derleyip Google Play'de yayınladığınızda kilitlenme raporları, IDE'nin yığın izlemeden uygulamanızın önceki sürümlerine bağlanması için gereken verileri içeriyor.

Uygulama Kalitesi Analizleri'nde Crashlytics kilitlenme varyantlarını görüntüleme

Kilitlenmenin temel nedenlerini analiz etmenize yardımcı olması için artık etkinlikleri sorun varyantlarına veya benzer yığın izlemeleri paylaşan etkinlik gruplarına göre görüntülemek üzere Uygulama Kalitesi Analizleri'ni kullanabilirsiniz. Bir kilitlenme raporunun her varyantındaki etkinlikleri görüntülemek için açılır menüden bir varyant seçin. Tüm varyantlarla ilgili bilgileri toplamak için Tümü'nü seçin.

Oluşturma kullanıcı arayüzü kontrolü

Android Studio Iguana Canary 5, geliştiricilerin Jetpack Compose'da daha uyarlanabilir ve erişilebilir kullanıcı arayüzleri oluşturmasına yardımcı olmak için Compose önizlemesinde yeni bir kullanıcı arayüzü kontrol modu kullanıma sundu. Bu özellik, görüntülemeler için görsel linting ve erişilebilirlik kontrolleri entegrasyonlarına benzer şekilde çalışır. Oluşturma kullanıcı arayüzü kontrol modunu etkinleştirdiğinizde Android Studio, Oluşturma kullanıcı arayüzünüzü otomatik olarak denetleyip farklı ekran boyutlarında uyumluluk ve erişilebilirlik sorunlarını (ör. büyük ekranlarda uzatılmış metin veya düşük renk kontrastı) kontrol eder. Bu mod, farklı önizleme yapılandırmalarında bulunan sorunları vurgular ve bunları sorunlar panelinde listeler.

Oluştur Önizlemesi'nde kullanıcı arayüzü kontrolü düğmesini tıklayarak bu özelliği hemen deneyin ve geri bildiriminizi gönderin:

Kontrolü etkinleştirmek için Kullanıcı Arayüzü Kontrolü modunu oluştur düğmesini tıklayın.

Kullanıcı arayüzü kontrol moduyla ilgili bilinen sorunlar:

  • Sorun panelinde seçili sorun kaybolabilir
  • "Kuralın uygulanmasını engelle" işlevi çalışmıyor
Oluşturma kullanıcı arayüzü kontrol modu, sorunlar panelinde ayrıntılarla etkinleştirildi.

Oluşturma Önizlemesi için İlerleyen Oluşturma

Android Studio Iguana Canary 3, Oluşturma Önizlemesinde Progresif Oluşturmayı kullanıma sunuyor. Önizlemeleri daha yüksek performanslı hale getirmeye yönelik sürekli çabalarımızın bir parçası olarak, artık görüntünün dışında kalan tüm önizlemelerde kullanılan belleği azaltmak için oluşturma kalitesini kasıtlı olarak düşürüyoruz.

Bu özellik, bir dosyada aynı anda daha fazla önizlemeyi işleyebilmek için önizlemelerin kullanılabilirliğini daha da iyileştirmeyi amaçlamaktadır. Hemen deneyin ve geri bildiriminizi gönderin.

Taban Profiller modülü sihirbazı

Android Studio Iguana'dan itibaren, yeni modül sihirbazındaki Referans Profil Oluşturucu şablonunu kullanarak uygulamanız için Referans Profilleri oluşturabilirsiniz (Dosya > Yeni > Yeni Modül).

Bu şablon, projenizi referans profilleri destekleyebilecek şekilde ayarlar. Bu araç, projenizi tek bir Gradle göreviyle gerekli şekilde oluşturma sürecini otomatikleştiren yeni BaselineProfile Gradle eklentisini kullanır.

Şablon ayrıca, Çalıştırma/Hata Ayıklama Yapılandırması Seç açılır listesinden tek tıklamayla bir referans profili oluşturmanıza olanak tanıyan bir çalıştırma yapılandırması oluşturur.

Espresso Device API ile yapılandırma değişikliklerine karşı test etme

Cihaz döndürme ve ekranı açma gibi yaygın yapılandırma değişiklikleri geçirirken uygulamanızı test etmek için Espresso Device API'yi kullanın. Espresso Device API, bu yapılandırma değişikliklerini sanal bir cihazda simüle etmenize olanak tanır ve testlerinizi eşzamanlı olarak yürütür. Böylece, aynı anda yalnızca bir kullanıcı arayüzü işlemi veya beyanı gerçekleşir ve test sonuçlarınızın güvenilirliği artar. Espresso ile kullanıcı arayüzü testleri yazma hakkında daha fazla bilgi edinin.

Espresso Device API'yi kullanmak için aşağıdakilere ihtiyacınız vardır:

  • Android Studio Iguana veya sonraki sürümler
  • Android Gradle eklentisi 8.3 veya daha yeni sürümler
  • Android Emulator 33.1.10 veya sonraki sürümler
  • API düzeyi 24 veya sonraki sürümleri çalıştıran Android sanal cihaz

Projenizi Espresso Device API için ayarlama

Projenizi Espresso Device API'yi destekleyecek şekilde ayarlamak için aşağıdakileri yapın:

  1. Testin test cihazına komut iletmesine izin vermek için androidTest kaynak kümesindeki manifest dosyasına INTERNET ve ACCESS_NETWORK_STATE izinlerini ekleyin:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
  2. gradle.properties dosyasında enableEmulatorControl deneysel işaretini etkinleştirin:

      android.experimental.androidTest.enableEmulatorControl=true
  3. Modül düzeyinde derleme komut dosyasında emulatorControl seçeneğini etkinleştirin:

    Kotlin

      testOptions {
        emulatorControl {
          enable = true
        }
      }

    Groovy

      testOptions {
        emulatorControl {
          enable = true
        }
      }
  4. Modül düzeyindeki derleme komut dosyasında Espresso Device kitaplığını projenize aktarın:

    Kotlin

      dependencies {
        androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1")
      }

    Eski

      dependencies {
        androidTestImplementation 'androidx.test.espresso:espresso-device:3.6.1'
      }

Ortak yapılandırma değişikliklerine karşı test etme

Espresso Device API, cihaz yapılandırma değişikliklerini simüle etmek için kullanabileceğiniz birden fazla ekran yönü ve katlanabilir duruma sahiptir.

Ekran döndürme durumuna göre test et

Cihaz ekranı döndüğünde uygulamanıza ne olacağını test etmek için aşağıdaki örneği inceleyebilirsiniz:

  1. Öncelikle, tutarlı bir başlangıç durumu için cihazı dikey moda ayarlayın:

      import androidx.test.espresso.device.action.ScreenOrientation
      import androidx.test.espresso.device.rules.ScreenOrientationRule
      ...
      @get:Rule
      val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
  2. Test yürütme sırasında cihazı yatay yöne ayarlayan bir test oluşturun:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        ...
      }
  3. Ekran döndürüldükten sonra kullanıcı arayüzünün yeni düzene beklendiği gibi uyum sağladığını kontrol edin:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist()
      }

Ekran açılmaya karşı test et

Uygulamanız katlanabilir cihaz üzerindeyse ve ekranı açıldığında ne olacağını test etmek için aşağıdaki örneği inceleyebilirsiniz:

  1. Öncelikle, onDevice().setClosedMode() numaralı telefonu arayarak cihazı katlanmış durumda test edin. Uygulamanızın düzeninin kompakt ekran genişliğine uyarlandığından emin olun:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed()
        composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist()
        ...
      }
  2. Tamamen açılmış duruma geçmek için onDevice().setFlatMode() işlevini çağırın. Uygulama düzeninin genişletilmiş boyut sınıfına uyarlandığından emin olun:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        ...
        onDevice().setFlatMode()
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist()
      }

Testlerinizin hangi cihazlara ihtiyacı olduğunu belirtme

Katlanabilir olmayan bir cihazda katlama işlemleri gerçekleştiren bir test çalıştırırsanız test genellikle başarısız olur. Yalnızca çalışan cihazla alakalı testleri yürütmek için @RequiresDeviceMode notunu kullanın. Test çalıştırıcı, test edilen yapılandırmayı desteklemeyen cihazlarda test çalıştırmayı otomatik olarak atlar. Cihaz gereksinimi kuralını her bir teste veya bir test sınıfının tamamına ekleyebilirsiniz.

Örneğin, bir testin yalnızca düz bir yapılandırmaya açılmayı destekleyen cihazlarda çalıştırılması gerektiğini belirtmek için testinize aşağıdaki @RequiresDeviceMode kodunu ekleyin:

@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
  ...
}