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şiklikler hakkında ayrıntılı bilgi 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 bir Crashlytics yığın izlemesinden, kilitlenmenin gerçekleştiği zamandaki ilgili koda gitmenize olanak tanır. 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:
- Android Studio Iguana'nın en son Canary sürümü
- Android Gradle eklentisi 8.3'ün en son alfa sürümü
- Crashlytics SDK v18.3.7 (veya Firebase Android Bill of Materials v32.0.0)
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ı oluşturup 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:
![](https://developer.android.google.cn/static/studio/images/design/compose-ui-check-entry.png?hl=tr)
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
![](https://developer.android.google.cn/static/studio/images/design/compose-ui-check.png?hl=tr)
Oluşturma Önizlemesi için İlerleyen Oluşturma
Android Studio Iguana Canary 3, Compose Önizlemesi'nde aşamalı oluşturma özelliğini kullanıma sundu. Ö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.
![](https://developer.android.google.cn/static/studio/images/design/progressive-rendering.gif?hl=tr)
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. Yeni Baseline Profiles Gradle eklentisini kullanır. Bu eklenti, projenizi tek bir Gradle göreviyle gerekli şekilde ayarlama sürecini otomatikleştirir.
Ş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 seviyesi 24 veya daha yeni 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:
Testin test cihazına komut iletmesine izin vermek için
androidTest
kaynak kümesindeki manifest dosyasınaINTERNET
veACCESS_NETWORK_STATE
izinlerini ekleyin:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
gradle.properties
dosyasındaenableEmulatorControl
deneysel işaretini etkinleştirin:android.experimental.androidTest.enableEmulatorControl=true
Modül düzeyinde derleme komut dosyasında
emulatorControl
seçeneğini etkinleştirin:Kotlin
testOptions { emulatorControl { enable = true } }
Groovy
testOptions { emulatorControl { enable = true } }
Modül düzeyinde derleme komut dosyasında Espresso Device kitaplığını projenize aktarın:
Kotlin
dependencies { androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1") }
Groovy
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ürmeye karşı test etme
Cihaz ekranı döndürüldüğünde uygulamanıza ne olacağını test etmeyi gösteren bir örnek aşağıda verilmiştir:
Ö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)
Test yürütülürken cihazı yatay yönde ayarlayan bir test oluşturun:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) ... }
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ın açılmasına karşı test etme
Uygulamanız katlanabilir bir cihazdaysa ve ekran açılıyorsa ne olacağını test etmeyi gösteren bir örnek aşağıda verilmiştir:
Öncelikle
onDevice().setClosedMode()
numaralı telefonu arayarak cihaz katlanmış haldeyken testi yapın. 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() ... }
Tamamen açılmış duruma geçmek için
onDevice().setFlatMode()
işlevini çağırın. Uygulamanın 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 şartı kuralını her 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() {
...
}