Ниже перечислены новые функции Android Studio Iguana.
Выпуск обновлений
Ниже приведён список выпущенных исправлений для плагинов Android Studio Iguana и Android Gradle версии 8.3.
Android Studio Iguana | Патч 2023.2.1 и AGP 8.3.2 (апрель 2024 г.)
Это небольшое обновление включает в себя исправления следующих ошибок .
Android Studio Iguana | Патч 1 версии 2023.2.1 и AGP 8.3.1 (март 2024 г.)
Это небольшое обновление включает в себя исправления следующих ошибок .
Обновление платформы IntelliJ IDEA 2023.2
Android Studio Iguana включает обновления IntelliJ IDEA 2023.2, которые улучшают работу с интегрированной средой разработки Studio. Подробную информацию об изменениях см. в примечаниях к выпуску IntelliJ IDEA 2023.2 .
Интеграция системы контроля версий в App Quality Insights
В App Quality Insights теперь можно перейти от трассировки стека Crashlytics к соответствующему коду — в момент возникновения сбоя. AGP добавляет к отчетам о сбоях данные хеша коммита Git, что помогает Android Studio перейти к вашему коду и показать, каким он был в версии, где возникла проблема. При просмотре отчета о сбое в App Quality Insights вы можете выбрать переход к строке кода в текущей копии Git или просмотреть разницу между текущей копией и версией вашего кода, которая вызвала сбой.

Для интеграции вашей системы контроля версий с App Quality Insights вам необходимо выполнить следующие минимальные требования:
- Последняя версия Android Studio Iguana Canary
- Последняя альфа-версия плагина Android Gradle 8.3
- Crashlytics SDK v18.3.7 (или Firebase Android Bill of Materials v32.0.0 )
Для использования интеграции с системой контроля версий для отлаживаемого типа сборки включите флаг vcsInfo в файле сборки на уровне модуля. Для релизных (не отлаживаемых) сборок этот флаг включен по умолчанию.
Котлин
android { buildTypes { getByName("debug") { vcsInfo { include = true } } } }
Классный
android { buildTypes { debug { vcsInfo { include true } } } }
Теперь, при сборке приложения и его публикации в Google Play, отчеты о сбоях содержат данные, необходимые IDE для связи с предыдущими версиями приложения на основе трассировки стека.
Просматривайте варианты сбоев Crashlytics в разделе «Аналитика качества приложений».
Чтобы помочь вам проанализировать первопричины сбоя, теперь вы можете использовать App Quality Insights для просмотра событий по вариантам проблем или группам событий, имеющих схожие трассировки стека. Чтобы просмотреть события в каждом варианте отчета о сбое, выберите вариант из раскрывающегося списка. Чтобы собрать информацию по всем вариантам, выберите «Все» .

Проверка пользовательского интерфейса для создания
Чтобы помочь разработчикам создавать более адаптивные и доступные пользовательские интерфейсы в Jetpack Compose, в Android Studio Iguana Canary 5 был добавлен новый режим проверки пользовательского интерфейса в Compose Preview. Эта функция работает аналогично интеграции визуальной проверки синтаксиса и проверки доступности для представлений. При активации режима проверки пользовательского интерфейса Compose, Android Studio автоматически проверяет ваш Compose UI на наличие проблем с адаптивностью и доступностью на экранах разных размеров, таких как растянутый текст на больших экранах или низкий цветовой контраст. Режим выделяет проблемы, обнаруженные в различных конфигурациях предварительного просмотра, и отображает их на панели проблем.
Оцените эту функцию уже сегодня, нажав на кнопку «Проверка пользовательского интерфейса».
Откройте предварительный просмотр и отправьте свой отзыв :

Известные проблемы режима проверки пользовательского интерфейса:
- Выбранная проблема на панели «Проблемы» может потерять фокус.
- «Правило подавления» не работает.

Прогрессивная отрисовка для предварительного просмотра композиции
В Android Studio Iguana Canary 3 представлена прогрессивная отрисовка в режиме предварительного просмотра Compose. В рамках постоянных усилий по повышению производительности предварительного просмотра, теперь для любого предварительного просмотра, находящегося вне поля зрения, мы намеренно снижаем качество отрисовки, чтобы сэкономить используемую память.
Эта функция разработана с целью дальнейшего улучшения удобства использования предварительного просмотра за счет возможности одновременной обработки нескольких предварительных просмотров в одном файле. Попробуйте сегодня и оставьте свой отзыв .

мастер модуля «Базовые профили»
Начиная с Android Studio Iguana, вы можете создавать базовые профили для своего приложения, используя шаблон генератора базовых профилей в мастере создания нового модуля ( Файл > Новый > Новый модуль ).

Этот шаблон настраивает ваш проект таким образом, чтобы он мог поддерживать базовые профили. Он использует новый плагин Gradle для базовых профилей, который автоматизирует процесс настройки проекта необходимым образом с помощью одной задачи Gradle.
Этот шаблон также создает конфигурацию запуска, которая позволяет одним щелчком мыши сгенерировать базовый профиль из раскрывающегося списка «Выберите конфигурацию запуска/отладки» .

Протестируйте изменения конфигурации с помощью API устройств Espresso.
Используйте Espresso Device API для тестирования вашего приложения при распространенных изменениях конфигурации устройства, таких как поворот и разворачивание экрана. Espresso Device API позволяет имитировать эти изменения конфигурации на виртуальном устройстве и выполняет ваши тесты синхронно, поэтому одновременно выполняется только одно действие или проверка пользовательского интерфейса, а результаты тестирования становятся более надежными. Узнайте больше о том, как писать тесты пользовательского интерфейса с помощью Espresso .
Для использования API устройства Espresso вам потребуется следующее:
- Android Studio Iguana или выше
- Плагин Android Gradle версии 8.3 или выше
- Эмулятор Android версии 33.1.10 или выше.
- Виртуальное устройство Android, работающее под управлением API уровня 24 или выше.
Настройте свой проект для работы с API устройств Espresso.
Чтобы настроить ваш проект для поддержки API устройств Espresso, выполните следующие действия:
Чтобы тест мог передавать команды на тестовое устройство, добавьте разрешения
INTERNETиACCESS_NETWORK_STATEв файл манифеста в наборе исходных файловandroidTest:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
Включите экспериментальный флаг
enableEmulatorControlв файлеgradle.properties:android.experimental.androidTest.enableEmulatorControl=true
Включите параметр
emulatorControlв скрипте сборки на уровне модуля:Котлин
testOptions { emulatorControl { enable = true } }
Классный
testOptions { emulatorControl { enable = true } }
В скрипте сборки на уровне модуля импортируйте библиотеку Espresso Device в свой проект:
Котлин
dependencies { androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1") }
Классный
dependencies { androidTestImplementation 'androidx.test.espresso:espresso-device:3.6.1' }
Проверка на соответствие распространенным изменениям конфигурации.
API устройств Espresso поддерживает несколько вариантов ориентации экрана и состояний складывания, которые можно использовать для имитации изменений конфигурации устройства.
Проверка на поворот экрана.
Вот пример того, как проверить, что происходит с вашим приложением при повороте экрана устройства:
Для обеспечения стабильного начального состояния переведите устройство в портретный режим:
import androidx.test.espresso.device.action.ScreenOrientation import androidx.test.espresso.device.rules.ScreenOrientationRule ... @get:Rule val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
Создайте тест, который устанавливает альбомную ориентацию устройства во время выполнения теста:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) ... }
После поворота экрана убедитесь, что пользовательский интерфейс адаптируется к новой компоновке должным образом:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist() }
Проверка на развертывание экрана
Вот пример того, как проверить, что произойдет с вашим приложением на складном устройстве, если экран развернется:
Сначала протестируйте устройство в сложенном состоянии, вызвав
onDevice().setClosedMode(). Убедитесь, что макет вашего приложения адаптируется к компактной ширине экрана:@Test fun myUnfoldedTest() { onDevice().setClosedMode() composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed() composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist() ... }
Для перехода в полностью развернутое состояние вызовите метод
onDevice().setFlatMode(). Убедитесь, что макет приложения адаптируется к расширенному размеру:@Test fun myUnfoldedTest() { onDevice().setClosedMode() ... onDevice().setFlatMode() composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist() }
Укажите, какие устройства необходимы для ваших тестов.
Если вы запускаете тест, который выполняет действия по складыванию на устройстве, которое не является складываемым, тест обычно завершается с ошибкой. Чтобы выполнить только те тесты, которые относятся к работающему устройству, используйте аннотацию @RequiresDeviceMode . Программа запуска тестов автоматически пропускает запуск тестов на устройствах, которые не поддерживают тестируемую конфигурацию. Вы можете добавить правило требования устройства к каждому тесту или ко всему классу тестов.
Например, чтобы указать, что тест должен запускаться только на устройствах, поддерживающих разворачивание в плоскую конфигурацию, добавьте в тест следующий код @RequiresDeviceMode :
@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
...
}