Ниже приведены новые функции Android Studio Bumblebee.
Поддержка выполнения тестов KMP
Вы можете запускать тесты для многоплатформенных проектов Kotlin (KMP) из Android Studio Bumblebee.
Чтобы обеспечить успешное выполнение тестов из Android Studio, убедитесь, что у вас соблюдены все перечисленные ниже требования:
- AGP 7.0.0-альфа08 или выше
- Gradle 6.8.2 или выше
- Плагин Kotlin 1.4.30 или выше
Новый диспетчер устройств
Диспетчер устройств — это замена AVD Manager, как на экране приветствия Android Studio, так и после открытия проекта. В диспетчере устройств представлены некоторые новые возможности, которые упрощают создание и управление всеми вашими локальными тестовыми устройствами, например:
- Более гибкий пользовательский интерфейс, который поддерживает закрепление в IDE, плавающее или отдельное окно, как и в других окнах инструментов Android Studio. Это упрощает доступ к вашим устройствам, не закрывая другие окна IDE.
- Вкладка «Виртуальные» , позволяющая создавать виртуальные устройства, управлять ими и развертывать их; сразу увидеть подробную информацию о каждом устройстве; или быстро проверьте устройство в проводнике файлов устройства одним щелчком мыши.
- Вкладка «Физическое» , которая позволяет быстро подключиться к новому устройству с помощью ADB Wi-Fi и сразу увидеть подробную информацию о каждом физическом устройстве. Вы также можете быстро проверить файловую систему каждого устройства с помощью проводника файлов устройства одним нажатием кнопки.
Чтобы открыть новый диспетчер устройств , выполните одно из следующих действий:
- На экране приветствия Android Studio выберите Дополнительные действия > Диспетчер виртуальных устройств .
- После открытия проекта выберите «Просмотр» > «Окна инструментов» > «Диспетчер устройств» в строке главного меню.
Новое в Инспекторе макетов
Сохранение снимков иерархии макетов
Инспектор макетов теперь позволяет вам сохранять снимки иерархии макетов вашего работающего приложения, чтобы вы могли легко поделиться ими с другими или обратиться к ним позже.
Снимки фиксируют данные, которые вы обычно видите при использовании инспектора макетов, включая подробную 3D-рендеринг вашего макета, дерево компонентов вашего представления, составления или гибридного макета, а также подробные атрибуты для каждого компонента вашего пользовательского интерфейса. Чтобы сохранить снимок, сделайте следующее:
- Разверните свое приложение на устройстве с API уровня 23 или выше.
- Откройте Инспектор макетов, выбрав «Вид» > «Окна инструментов» > «Инспектор макетов» .
- Инспектор макетов должен автоматически подключиться к процессу вашего приложения. Если нет, выберите процесс приложения из раскрывающегося меню.
- Если вы хотите сделать снимок, нажмите «Экспортировать снимок».на панели инструментов Инспектора макетов.
- В появившемся системном диалоговом окне укажите имя и место, где вы хотите сохранить снимок. Обязательно сохраните файл с расширением
*.li
.
Затем вы можете загрузить снимок Инспектора макетов, выбрав «Файл» > «Открыть» в строке главного меню и открыв файл *.li
.
Поддержка проверки семантики Compose
В Compose семантика описывает ваш пользовательский интерфейс альтернативным способом, понятным для служб специальных возможностей и платформы тестирования . В Android Studio Bumblebee теперь вы можете использовать Инспектор макетов для проверки семантической информации в макетах Compose.
При выборе узла Compose используйте окно Атрибуты , чтобы проверить, объявляет ли он семантическую информацию напрямую, объединяет ли семантику из своих дочерних узлов или и то, и другое. Чтобы быстро определить, какие узлы включают семантику, объявленную или объединенную, используйте раскрывающийся список «Параметры просмотра» в окне «Дерево компонентов» и выберите « Выделить слои семантики» . При этом выделяются только те узлы дерева, которые содержат семантику, и вы можете использовать клавиатуру для быстрого перемещения между ними.
Избегайте перезапуска активности
Подключение инспектора макета к работающему приложению в более старых версиях Android Studio приведет к перезапуску активности вашего приложения. Это необходимо для установки флага устройства, позволяющего проверять макеты вашего приложения.
В Android Studio Bumblebee вы можете избежать перезапуска активности при подключении инспектора макетов, заранее установив этот флаг, выполнив одно из следующих действий:
Включите опцию запуска конфигурации
- Выберите «Выполнить» > «Редактировать конфигурации» в строке главного меню. Появится диалоговое окно «Конфигурации запуска/отладки» .
- Перейдите к конфигурации запуска, которую вы хотите использовать.
- В разделе «Параметры инспектора макетов» установите флажок « Подключаться к инспектору макетов без перезапуска активности» .
- Используйте конфигурацию запуска в следующий раз, когда захотите проверить свое приложение с помощью инспектора макетов.
Установите флаг из командной строки:
- Откройте окно терминала на компьютере, подключенном к вашему устройству.
- Установите флаг устройства для вашего приложения с помощью следующей команды:
adb shell settings put global debug_view_attributes_application_package <my_package_name>
- Разверните приложение на устройстве и подключите инспектор макетов. Android Studio проверит, установлен ли флаг, и, если возможно, не перезапустит действие.
Снимки инспектора макета документа
Теперь вы можете делать снимки иерархии макетов вашего приложения, чтобы сохранять их, делиться ими или проверять позже. Снимки фиксируют данные, которые вы обычно видите при использовании инспектора макетов, включая подробную 3D-рендеринг вашего макета, дерево компонентов вашего представления, составления или гибридного макета, а также подробные атрибуты для каждого компонента вашего пользовательского интерфейса. При проверке макета работающего приложения нажмите « Экспортировать снимок».на панели инструментов Layout Inspector и сохраните снимок с расширением *.li
. Затем вы можете загрузить снимок Инспектора макетов, выбрав «Файл» > «Открыть» в строке главного меню и открыв файл *.li
. Снимок появится на вкладке в окне редактора, и вы сможете легко сравнить его с работающим приложением.
Новое в проверке приложений
В Android Studio Bumblebee в окне проверки приложений появились новые инструменты и функции. Вы можете открыть Инспектор приложений , выбрав «Вид» > «Окна инструментов» > «Проверка приложений» в строке главного меню.
Сетевой инспектор
Сетевой профилировщик в окне инструмента «Профилировщики» теперь перемещен в окно инструмента «Проверка приложений» . Если вы ранее использовали Network Profiler, все те же функции и обширные данные о сетевом трафике по-прежнему доступны. Просто разверните свое приложение на устройстве с API уровня 26 и выше и откройте вкладку «Инспектор приложений» > «Инспектор сети» .
Проверка заданий, сигналов тревоги и Wakelocks
Инспектор фоновых задач теперь позволяет вам проверять задания, сигналы тревоги и Wakelocks вашего приложения в дополнение к существующей поддержке проверки рабочих процессов. Каждый тип асинхронной задачи теперь отображается под соответствующим заголовком на вкладке инспектора, что позволяет легко отслеживать ее состояние и ход выполнения. Как и в случае с работниками, вы можете выбрать задание, сигнал тревоги или блокировку пробуждения, чтобы просмотреть подробную информацию о нем на панели сведений о задаче .
Поскольку рабочие процессы используют задания и Wakelocks, те задачи, которые запланированы рабочими процессами, отображаются как дочерние элементы каждого рабочего процесса. Имейте в виду, что вы можете видеть Workers только в режиме графика.
Новое в профилировщиках
В Android Studio Bumblebee появились новые функции, которые помогут вам лучше понять, как ваше приложение использует ресурсы. Чтобы профилировать свое приложение, выберите «Просмотр» > «Окна инструментов» > «Профилировщик» в строке главного меню.
Трек обнаружения рывков
При профилировании вашего приложения с использованием устройств под управлением Android 11 (уровень API 30) или выше профилировщик ЦП теперь показывает новую группу дорожек, которые иллюстрируют этапы каждого кадра в разделе «Жизненный цикл кадра» : «Приложение» , «Ожидание графического процессора» , «Композиция» и «Кадры на дисплее» . На каждой дорожке кадры помечаются номером кадра и цветом прямоугольника, чтобы вам было проще визуализировать, на каком этапе жизненного цикла находится конкретный кадр, а также имеются направляющие, которые можно переключать для сравнения с событиями Vsync. Вы можете использовать эти данные, чтобы понять, где в вашем приложении могут возникнуть сбои, и выяснить основные причины. На панели «Анализ» теперь есть вкладка «Кадры» , на которой удобно обобщается информация о рендеринге для всех кадров. Дополнительные сведения см. в разделе Обнаружение ошибок пользовательского интерфейса .
Поддержка профилирования приложений
При профилировании вашего приложения важно генерировать точные данные о версии вашего приложения, которая наиболее точно соответствует той, которую будут устанавливать ваши пользователи. Для этого теперь вы можете включить свойство <profileable>
в манифест вашего приложения, чтобы профилировать приложения, которые не подлежат отладке, как показано в следующем коде.
<profileable android:shell="true"/>
Profileable — это конфигурация манифеста, представленная в Android 10 и доступная для задач профилирования ЦП и памяти. Использование профилируемого флага вместо флага отладки имеет ключевое преимущество, заключающееся в снижении накладных расходов при измерении производительности; однако некоторые функции профилирования недоступны для профилируемых сборок, такие как временная шкала событий, профилирование ЦП, инициируемое API, дампы кучи или записи местоположения в реальном времени. Дополнительные сведения см. в разделе Профилируемые приложения .
Свернуть кадры стека вызовов
Теперь вы можете свернуть кадры, которые не имеют отношения к вашему расследованию, при проверке выборки записи стека вызовов в окне инструмента «Профилировщики» . Стеки вызовов полезны для понимания того, какая часть кода была выполнена и почему она была вызвана. Однако стек вызовов программы Java/Kotlin обычно включает не только код Java/Kotlin, но и кадры собственного кода, которые могут отвлекать. Дополнительные сведения об уточнении представления стека вызовов см. в разделе Проверка кадров стека вызовов .
Беспроводная отладка
Android Studio Bumblebee поддерживает функцию беспроводной отладки на устройствах Android 11 и более поздних версий. Подключите и разверните свое приложение из Android Studio через Wi-Fi без использования USB-кабеля или управления соединениями Android Debug Bridge (adb) с помощью командной строки. Для использования перейдите к параметру «Сопряжение устройств с помощью Wi-Fi» в меню выбора устройства, а затем выберите QR-код или PIN-код для сопряжения. Затем на устройстве Android 11 и выше в разделе «Параметры разработчика» найдите экран «Беспроводная отладка» , инициализируйте и подключитесь к сеансу adb по беспроводной сети с помощью Android Studio. Узнайте больше о настройке беспроводной отладки в разделе Подключение к устройству через Wi-Fi (Android 11+) .
Создание интерактивного предварительного просмотра включено по умолчанию
Начиная с Android Studio Bumblebee, функция интерактивного предварительного просмотра включена по умолчанию. Интерактивный предварительный просмотр позволяет вам взаимодействовать с предварительным просмотром так, как если бы он работал на устройстве. Интерактивный предварительный просмотр изолирован от другого предварительного просмотра в среде песочницы, где вы можете щелкать элементы и вводить пользовательские данные в предварительный просмотр. Это быстрый способ протестировать различные состояния и жесты вашего компонуемого объекта, например, установленный или пустой флажок.
Интерактивный режим предварительного просмотра запускается непосредственно в Android Studio без запуска эмулятора, что приводит к некоторым ограничениям:
- Нет доступа к сети.
- Нет доступа к файлу.
- Некоторые контекстные API могут быть недоступны полностью.
Предварительный просмотр анимированного векторного рисования (AVD)
Инструмент Animated Vector Drawable предлагает возможность предварительного просмотра анимированных ресурсов, доступных для рисования. Эти инструменты помогают вам предварительно просмотреть ресурсы <animation-list>
, <animated-vector>
и <animated-selector>
в Android Studio и упрощают доработку ваших пользовательских анимаций.
Нетранзитивные классы R включены по умолчанию
Нетранзитивные классы R теперь включены по умолчанию. Вы можете использовать нетранзитивные классы R с плагином Android Gradle для более быстрого создания сборок приложений с несколькими модулями. Это помогает предотвратить дублирование ресурсов, гарантируя, что класс R каждого модуля содержит только ссылки на свои собственные ресурсы, не извлекая ссылки из его зависимостей. Это приводит к созданию более современных сборок и соответствующим преимуществам отказа от компиляции.
Вы можете получить помощь по использованию этой функции, перейдя в раздел Рефакторинг > Миграция на нетранзитивные классы R...
Обновление поддержки Apple Silicon
Для тех, кто использует macOS на оборудовании Apple Silicon (arm64), Android Studio Arctic Fox и эмулятор Android поддерживают эту новую архитектуру с прошлого года. Однако в этом выпуске мы обновили инструменты платформы Android SDK версии 32.0.0 (включая adb и fastboot) и инструменты сборки версии 32.1.0 (включая aapt), сделав их универсальными двоичными файлами, чтобы вашим инструментам разработчика Android больше не требовалась Бинарный переводчик Rosetta для запуска. См. примечания к выпуску инструментов платформы SDK .
Обновленное средство выбора устройств для инструментов проектирования.
Чтобы упростить разработку вашего приложения для разнообразного количества устройств Android, мы обновили средство выбора устройств в различных окнах инструментов дизайна, таких как «Редактор макета» и «Проверка макета», добавив эталонные устройства, отражающие популярные размеры каждого форм-фактора устройства. От телефонов до планшетов, от устройств Wear до телевизоров Android — теперь стало проще просматривать, проверять или редактировать макет на экранах с размерами, наиболее репрезентативными для популярных реальных устройств.
Тестирование Android
В Android Studio Bumblebee и AGP 7.1 представлено несколько новых функций и улучшений, которые помогут вам более надежно и масштабируемо запускать автоматизированные инструментальные тесты и просматривать полезные результаты, которые можно использовать для устранения проблем.
Унифицированный запуск тестов Gradle
Плагин Android Gradle 7.1.0 и Android Studio Bumblebee и более поздних версий используют собственную реализацию Gradle инструментального средства запуска тестов Android для запуска инструментированных тестов. При использовании одного и того же средства запуска тестов результаты, скорее всего, будут одинаковыми независимо от того, запускаете ли вы AGP из командной строки, например, на сервере непрерывной интеграции, или из Android Studio.
В предыдущих версиях Android Studio вместо инструментального средства запуска тестов Gradle для Android использовалась инструментальная программа IntelliJ Android. Поэтому, если вы не используете последнюю версию Android Studio, в зависимости от того, запускаете ли вы тесты из Android Studio или из командной строки с помощью плагина Gradle, вы можете увидеть разные результаты тестов, например тесты, пройденные с использованием одного бегуна и не пройденные. на другом.
Если в вашем проекте уже сохранены конфигурации инструментальных тестов, они будут использовать Gradle для запуска тестов на вашем подключенном устройстве. Вы можете создать новую конфигурацию инструментированного теста, используя действие поля рядом с вашим тестовым классом или методом, как показано ниже.
При запуске инструментированных тестов вы можете убедиться, что Android Studio использует средство запуска тестов Gradle, проверив выходные данные теста в матрице тестирования для выходных данных задачи Gradle. Хотя мы улучшаем эту функцию с каждым выпуском Android Studio, существуют некоторые известные проблемы. Если у вас возникли проблемы, пожалуйста, сообщите об ошибке . Вы также можете отключить новый конвейер тестирования , чтобы вернуться к старому поведению.
Эмулятор Android теперь по умолчанию работает непосредственно внутри Android Studio.
Эмулятор Android по умолчанию работает непосредственно внутри Android Studio. Это позволяет экономить пространство экрана, быстро перемещаться между эмулятором и окном редактора с помощью горячих клавиш и организовывать рабочий процесс IDE и эмулятора в одном окне приложения.
Когда эмулятор запущен, у вас будет доступ к общим действиям эмулятора, таким как вращение, и расширенным параметрам управления, таким как воспроизведение навигации. Вместо этого, чтобы запустить эмулятор в отдельном окне, выберите «Файл» > «Настройки» > «Инструменты» > «Эмулятор» ( Android Studio > «Настройки» > «Инструменты > Эмулятор» в macOS) и снимите флажок «Запуск в окне инструментов» .
Отключить новый конвейер тестирования
По умолчанию Android Studio Bumblebee использует Gradle для запуска инструментальных тестов. Если у вас возникли проблемы, вы можете отключить это поведение следующим образом:
- Выберите «Файл» > «Настройки» > «Сборка, выполнение, развертывание» > «Тестирование» (или Android Studio > «Настройки» > «Сборка, выполнение, развертывание» > «Тестирование на MacOS»).
- Снимите флажок « Выполнять инструментальные тесты Android с помощью Gradle» и нажмите «ОК» .
Вы также можете вернуться к старому поведению, выполнив одно из следующих действий:
- При запуске задач Gradle из командной строки используйте следующий параметр командной строки:
-Pandroid.experimental.androidTest.useUnifiedTestPlatform=false
- Добавьте следующий параметр в файл
gradle.properties
вашего проекта:android.experimental.androidTest.useUnifiedTestPlatform=false
Чтобы помочь решить проблемы, с которыми вы можете столкнуться, сообщите об ошибке .
Выпуски патчей
Ниже приведены выпуски исправлений для Android Studio Bumblebee.
Android-студия Шмель | Обновление 3 2021.1.1 (апрель 2022 г.)
Это незначительное обновление включает в себя следующие исправления ошибок:
- Плагин Android Gradle
- Проблемы с повторяющимися классами, о которых сообщил R8
- Варианты сборки
-
versionNameSuffix
больше не работает, если имя версии варианта задано через новый API onVariants.
-
- Предварительный просмотр создания
- Исправлены ошибки, связанные с производительностью и стабильностью.
- Устраните зависание, которое иногда возникало при использовании функции динамического редактирования литералов.
- Импорт/синхронизация
- Сообщение «Требуется синхронизация Gradle» имеет избыточные версии AGP.
- Перекомпилируйте Foo.java/kt слишком сильно очищает и не перекомпилирует нужный компонент.
- Структура проекта
- Улучшение стабильности AGP Upgrade Assistant при смене целевых версий.
- AGP Upgrade Assistant теперь информирует пользователей об обновляемых плагинах Gradle.
- Сетевой инспектор
- Новый сетевой инспектор аварийно завершает работу после обновления Bumblebee
- Я постоянно получаю эту ошибку, когда отладчик подключен к последней версии Android Studio.
-
TrackedHttpURLConnection.getHeaderField
аварийно завершает работу сNullPointerException
Дополнительные сведения см. в записи блога Android Studio Bumblebee Patch 3 .
Android-студия Шмель | Обновление 2 2021.1.1 (февраль 2022 г.)
Это обновление включает в себя следующие исправления ошибок:
- Сборка на С++
-
ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "")
не должно быть нулевым.
-
- Редактор кода
- Ошибка в шаблонах Android Studio Live: выражение
className()
не разрешает имя класса.
- Ошибка в шаблонах Android Studio Live: выражение
- Д8/Р8
-
java.lang.NoSuchMethodError
: нет статического метода$jacocoInit
- Тестирование Android прервано из-за ошибки Mockito
- Требуется обходной путь для сломанной реализации CAS в API 31.
- Запечатанные классы не поддерживаются.
-
NullPointerException
при включении горизонтального слияния классов в Chrome -
AbstractMethodError
после слияния виртуальных методов - Невозможность проверки кадров стека из-за неправильного исходящего типа начального класса.
- Вход Dex использует регистр, который не определен
-
StringBuilderOptimizerAnalysisTest
не работает в ветках выпуска - Недетерминизм в R8
-
- Развертывание
- Запуск проекта приложения владельца устройства завершается с ошибкой.
Couldn't terminate the existing process for
сообщения об ошибке.
- Запуск проекта приложения владельца устройства завершается с ошибкой.
- Инструменты проектирования
- Compose Previews не может найти ресурсы из других модулей, когда включены нетранзитивные классы R.
- Студия зависает при сборке.
- Встроенный эмулятор
- Различные улучшения производительности и стабильности.
- Импорт/синхронизация
- Ошибка IDE при запуске Bumblebee: файл сборки выходного списка недоступен для типа вывода Apk в
IdeBuildTasksAndOutputInformationImp
- Ошибка IDE при запуске Bumblebee: файл сборки выходного списка недоступен для типа вывода Apk в
- IntelliJ
- Переменные Env не извлекаются при запуске из Mac OS X Monterey Dock
- Jetpack (androidx) > Навигация
- Обновите SafeArgs, чтобы он был построен на последней стабильной версии AGP.
- Инструменты Windows
- Не могу запустить диспетчер устройств Android
- Сетевой инспектор в BumbleBee не отображает ответ API в читаемом формате.
Дополнительные сведения см. в записи блога Android Studio Bumblebee Patch 2 .
Android-студия Шмель | Обновление 1 2021.1.1 (февраль 2022 г.)
Это незначительное обновление включает в себя следующие исправления ошибок:
- Эмулятор
- Невозможно подключиться к встроенному эмулятору после обновления до Bumblebee (Mac M1)
- IntelliJ
- Переменные Env не получаются при запуске из Mac OS X Monterey Dock
Дополнительные сведения см. в записи блога Android Studio Bumblebee Patch 1 .