Android Studio Arctic Fox — это крупный выпуск, включающий множество новых функций и улучшений.
Нумерация новой версии
Обновлена нумерация версий для Android Studio.
Мы изменили систему нумерации версий Android Studio, чтобы она более точно соответствовала IntelliJ IDEA , IDE, на которой основана Android Studio.
В предыдущей системе нумерации этот выпуск имел бы номер Android Studio 4.3 или версии 4.3.0.1 . С новой системой нумерации это теперь Android Studio — Arctic Fox | 2020.3.1 или версия 2020.3.1 .
Интеллийская версия | Старое имя | Старая система счисления | Новогодняя система | Название новой версии |
---|---|---|---|---|
2020.3 | 4.3 | 4.3.0 | 2020.3.1 | Арктическая лисица | 2020.3.1 |
В дальнейшем, вот как определяется номер версии Android Studio:
<Year of IntelliJ Version> . <IntelliJ major version> . <Studio major version> . <Studio minor/patch version>
- Первые две числовые группы представляют версию платформы IntelIj, на которой основана конкретная версия Android Studio. Для этого выпуска это версия 2020.3 .
- Третья группа номеров представляет основную версию Studio, начиная с 1 и увеличиваясь на единицу для каждого основного выпуска.
- Четвертая группа номеров представляет дополнительную версию/версию исправления Studio, начиная с 1 и увеличиваясь на единицу для каждой дополнительной версии.
- Мы также даем каждому основному выпуску название версии, увеличивающееся от А до Я в зависимости от названий животных. Этот релиз называется Arctic Fox .
Обновлена нумерация версий плагина Android Gradle.
Мы изменили нумерацию версий плагина Android Gradle (AGP), чтобы она больше соответствовала базовому инструменту сборки Gradle. Таким образом, AGP 7.0 является следующей версией после AGP 4.2 .
Дополнительные сведения см. в разделе «Изменения управления версиями» в примечаниях к выпуску AGP.
Плагин Android Gradle 7.0.0
Последняя версия плагина Android Gradle включает множество обновлений. Чтобы узнать больше, прочтите полные примечания к выпуску плагина Android Gradle .
Модульные тесты теперь используют программу запуска тестов Gradle.
Чтобы улучшить общую согласованность выполнения тестов, Android Studio теперь по умолчанию использует Gradle для запуска всех модульных тестов. Во многих случаях это изменение не повлияет на рабочий процесс тестирования в IDE.
Например, когда вы нажимаете команду «Выполнить» в контекстном меню (видимом при щелчке правой кнопкой мыши по тестовому классу) или соответствующему ему действию поля. , Android Studio по умолчанию будет использовать конфигурацию запуска Gradle для запуска модульных тестов.
Однако Android Studio больше не распознает существующие конфигурации запуска Android JUnit, поэтому вам следует перенести конфигурации запуска Android JUnit, которые вы можете сохранить в виде файлов проекта, в конфигурации запуска Gradle.
Чтобы создать тестовую конфигурацию Gradle, выберите шаблон Gradle, следуя инструкциям в разделе Создание новой конфигурации запуска/отладки . Когда вы создадите новую конфигурацию, она появится в диалоговом окне «Редактировать конфигурации» в разделе Gradle:
Если вы хотите проверить конфигурации Android JUnit, которые больше не распознаются, вы можете сделать одно из двух:
- Откройте сохраненные вручную конфигурации в текстовом редакторе. Местоположение этих файлов указывается пользователем, но обычно они появляются в
<my-app> /.idea/runConfigurations/
. Найдите временные конфигурации в
<my-app> /.idea/workspace.xml
и найдите узел<component name="RunManager" ...>
. Например:<component name="RunManager" selected="Gradle.PlantTest"> … <configuration name="PlantTest" type="AndroidJUnit" factoryName="Android JUnit" nameIsGenerated="true"> <module name="Sunflower.app" /> <useClassPathOnly /> <extension name="coverage"> <pattern> <option name="PATTERN" value="com.google.samples.apps.sunflower.data.*" /> <option name="ENABLED" value="true" /> </pattern> </extension> <option name="PACKAGE_NAME" value="com.google.samples.apps.sunflower.data" /> <option name="MAIN_CLASS_NAME" value="com.google.samples.apps.sunflower.data.PlantTest" /> <option name="METHOD_NAME" value="" /> <option name="TEST_OBJECT" value="class" /> <option name="PARAMETERS" value="" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <method v="2"> <option name="Android.Gradle.BeforeRunTask" enabled="true" /> </method> </configuration>
Улучшенный помощник по обновлению для AGP.
Плагин Upgrade Assistant для Android Gradle теперь имеет постоянное окно инструментов со списком шагов, которые необходимо выполнить. Дополнительная информация также представлена в правой части окна инструмента. При необходимости вы также можете выбрать другую версию AGP для обновления. Нажатие кнопки «Обновить» обновляет соответствующие шаги обновления.
Рефакторинг нетранзитивных классов R
Вы можете использовать нетранзитивные классы R с плагином Android Gradle для более быстрого создания сборок приложений с несколькими модулями. Это помогает предотвратить дублирование ресурсов, гарантируя, что класс R каждого модуля содержит ссылки только на свои собственные ресурсы, не извлекая ссылки из его зависимостей. Это приводит к созданию более современных сборок и соответствующим преимуществам отказа от компиляции.
Вы можете получить доступ к этой функции, выбрав Refactor > Migrate to Non-transitive R Classes .
Новый инспектор фоновых задач
Вы можете визуализировать, отслеживать и отлаживать фоновые рабочие процессы вашего приложения с помощью нового инспектора фоновых задач . Чтобы начать, разверните свое приложение на устройстве с библиотекой WorkManager 2.5.0 или более поздней версии и выберите «Просмотр» > «Инструменты Windows» > «Проверка приложений» в строке меню.
Более подробную информацию можно просмотреть, нажав на работника. Например, вы можете увидеть описание работника, способ его выполнения, сведения о его рабочей цепочке и результат выполнения.
Вы также можете просмотреть визуальное представление цепочки исполнителей, выбрав работника из таблицы и нажав « Показать представление графика». с панели инструментов. Затем вы можете выбрать любого исполнителя в цепочке, чтобы просмотреть его сведения, или остановить его, если он в данный момент находится в очереди или работает. Чтобы вернуться к таблице, нажмите « Показать представление списка». .
Чтобы помочь вам исследовать проблемы с рабочими процессами, которые не выполняются, вы можете остановить текущий работающий или поставленный в очередь рабочий процесс, выбрав его из таблицы и нажав «Отменить выбранный рабочий процесс». с панели инструментов. Вы также можете фильтровать работников в таблице по тегам, которые вы им назначили, используя раскрывающееся меню «Все теги» .
Инспектор базы данных обновлений
Инспектор базы данных теперь включен в новое окно инструмента проверки приложений , где вы также можете найти новый инспектор фоновых задач . Откройте окно инструмента «Проверка приложений» на панели инструментов или выберите «Просмотр» > «Окна инструментов» > «Проверка приложений» в строке меню.
Экспорт данных из инспектора базы данных
В Arctic Fox вы можете легко экспортировать базы данных, таблицы и результаты запросов из Инспектора баз данных для сохранения, совместного использования или воссоздания локально. Когда вы открываете проект приложения в Android Studio и проверяете приложение для этого проекта в Инспекторе базы данных , вы можете начать экспорт данных одним из следующих способов:
- Выберите базу данных или таблицу на панели «Базы данных» и нажмите «Экспорт в файл» в верхней части панели.
- Щелкните правой кнопкой мыши базу данных или таблицу на панели «Базы данных» и выберите «Экспорт в файл» в контекстном меню.
- При проверке таблицы или результатов запроса на вкладке нажмите «Экспорт в файл» над таблицей или результатами запроса.
После выбора действия экспорта вы используете диалоговое окно «Экспорт» , которое поможет вам выполнить последние шаги, как показано ниже. В зависимости от того, пытаетесь ли вы экспортировать базу данных, таблицу или результаты запроса, у вас есть возможность экспортировать данные в один или несколько следующих форматов: DB, SQL или CSV.
Обновлен пользовательский интерфейс для записи в Memory Profiler.
Мы объединили пользовательский интерфейс профилировщика памяти для различных действий по записи, таких как сбор дампа кучи и запись Java, Kotlin и собственного распределения памяти.
Профилировщик памяти предоставляет следующие параметры:
- Захват дампа кучи : просмотр объектов в вашем приложении, которые используют память в определенный момент времени.
- Запись собственных выделений : просмотрите, как каждый объект C/C++ был выделен за определенный период времени.
- Запись выделений Java/Kotlin : просмотрите, как каждый объект Java/Kotlin был выделен за определенный период времени.
Вот как использовать эти три варианта:
Чтобы записать дамп кучи, выберите «Создать дамп кучи» , затем выберите «Запись» . После того как профилировщик завершит запись дампа кучи, пользовательский интерфейс профилировщика памяти перейдет на отдельный экран, отображающий дамп кучи.
Чтобы записать собственные выделения на устройствах под управлением Android 10 и более поздних версий, выберите «Записать собственные выделения» , затем выберите «Запись» . Запись продолжается до тех пор, пока вы не нажмете « Стоп». , после чего пользовательский интерфейс профилировщика памяти переходит на отдельный экран, отображающий собственную запись.
В Android 9 и более ранних версиях параметр «Запись собственных выделений» недоступен.
Чтобы записать выделения Java и Kotlin, выберите «Запись выделений Java/Kotlin» , затем выберите «Запись» . Если устройство работает под управлением Android 8 или более поздней версии, пользовательский интерфейс Memory Profiler переходит на отдельный экран, отображающий текущую запись. Вы можете взаимодействовать с мини-шкалой времени над записью (например, чтобы изменить диапазон выбора). Чтобы завершить запись, выберите «Стоп». .
В Android 7.1 и более ранних версиях профилировщик памяти использует устаревшую запись распределения, которая отображает запись на временной шкале до тех пор, пока вы не нажмете « Стоп» .
Обновления для обновления связанного проекта C++
Мы переместили файлы, не связанные с конфигурацией, из папки .cxx/
в папку build/
. Для сборок CMake C++ требуется этап настройки, на котором создается проект Ninja, используемый для выполнения этапов компиляции и компоновки. Создание проектов, созданных с помощью CMake, обходится дорого, и ожидается, что они выживут даже при использовании Gradle Clean. По этой причине они хранятся в папке .cxx/
рядом с папкой build/
. Обычно плагин Android Gradle замечает изменения конфигурации и автоматически перегенерирует проект Ninja. Однако не все случаи удается выявить. В этом случае можно использовать параметр «Обновить связанный проект C++» для ручного создания проекта Ninja.
Новая матрица тестирования для тестирования нескольких устройств
Инструментальные тесты теперь могут выполняться на нескольких устройствах параллельно, и их можно исследовать с помощью специализированной панели результатов инструментальных испытаний. Используя эту панель, вы можете определить, происходят ли неудачные тесты из-за уровня API или свойств оборудования.
Тестирование вашего приложения с использованием широкого спектра уровней API и форм-факторов — один из лучших способов гарантировать, что все пользователи получат отличные впечатления от использования вашего приложения.
Чтобы воспользоваться этой функцией:
Выберите «Выбрать несколько устройств» в раскрывающемся меню целевого устройства в верхней центральной части IDE).
Выберите целевые устройства и нажмите «ОК» .
Запустите свои тесты.
Чтобы просмотреть результаты теста на панели «Выполнить» , выберите «Просмотр» > «Окна инструментов» > «Выполнить» .
Новая панель результатов тестирования позволяет фильтровать результаты тестирования по статусу, устройству и уровню API. Кроме того, вы можете отсортировать каждый столбец, щелкнув заголовок. Нажав на отдельный тест, вы можете просмотреть журналы и информацию об устройстве индивидуально для каждого устройства.
Поддержка StateFlow
при привязке данных
Для приложений Kotlin, использующих сопрограммы, теперь вы можете использовать объекты StateFlow
в качестве источника привязки данных для автоматического уведомления пользовательского интерфейса об изменениях в данных. Ваши привязки данных будут учитывать жизненный цикл и будут запускаться только тогда, когда пользовательский интерфейс виден на экране.
Чтобы использовать объект StateFlow
с вашим классом привязки, вам необходимо указать владельца жизненного цикла, чтобы определить область объекта StateFlow
, а в макете назначить свойства и методы вашего компонента ViewModel
соответствующим представлениям с помощью выражений привязки, как показано. в следующем примере:
class ViewModel() {
val username: StateFlow<String>
}
<TextView
android:id="@+id/name"
android:text="@{viewmodel.username}" />
Если вы используете приложение Kotlin, использующее AndroidX, поддержка StateFlow
автоматически включается в функциональность привязки данных, включая зависимости сопрограмм.
Дополнительные сведения см. в разделе Работа с наблюдаемыми объектами данных .
Улучшен предлагаемый импорт.
Мы увеличили количество библиотек, поддерживаемых предлагаемой функцией импорта, и стали чаще обновлять индекс. Предлагаемый импорт поможет вам быстро и легко импортировать определенные артефакты Google Maven как в ваш класс, так и в проект Gradle. Когда Android Studio обнаруживает неразрешенные символы из определенных библиотек Google, IDE предлагает импортировать библиотеку как в класс, так и в проект.
Поддержка кэша конфигурации в анализаторе сборки.
Анализатор сборки теперь определяет, когда в проекте не включен кэш конфигурации , и предлагает это в качестве оптимизации. Build Analyzer выполняет оценку совместимости, чтобы сообщить вам, если есть какие-либо проблемы с кешем конфигурации в вашем проекте, прежде чем он будет включен.
Поддержка инструментов Jetpack Compose.
Теперь мы предлагаем дополнительную поддержку для предварительного просмотра и тестирования приложений, использующих Jetpack Compose . Для получения наилучших результатов при разработке с помощью Jetpack Compose вам следует использовать последнюю версию Android Studio Arctic Fox, чтобы вы могли воспользоваться интеллектуальными функциями редактора , такими как шаблоны новых проектов и возможность немедленного предварительного просмотра пользовательского интерфейса Compose.
Создать предварительный просмотр
Теперь доступны следующие параметры для методов @Preview :
- showBackground : включение и выключение фона для предварительного просмотра.
- BackgroundColor : установите цвет, который используется только на поверхности предварительного просмотра.
- uiMode : этот новый параметр может принимать любую из констант Configuration.UI_* и позволяет вам изменить поведение предварительного просмотра, например, установив для него ночной режим, чтобы увидеть, как на него отреагирует тема.
Интерактивный предварительный просмотр
Вы можете использовать эту функцию для взаимодействия с компонентами пользовательского интерфейса, щелкать их и смотреть, как меняется состояние. Это быстрый способ получить отзывы о реакции вашего пользовательского интерфейса и просмотреть анимацию. Чтобы включить его, щелкните значок «Интерактивный » , и предварительный просмотр переключит режимы.
Чтобы остановить, нажмите «Остановить интерактивный просмотр» на верхней панели инструментов.
Развертывание на устройстве
Вы можете использовать эту функцию для развертывания фрагмента вашего пользовательского интерфейса на устройстве. Это помогает протестировать небольшие части вашего кода на устройстве без необходимости запуска всего приложения.
Щелкните значок «Развернуть на устройство». рядом с аннотацией @Preview
или в верхней части предварительного просмотра, и Android Studio развернет этот @Preview на подключенном устройстве или эмуляторе.
Живое редактирование литералов
Мы добавили функцию Live Edit литералов, чтобы помочь разработчикам, использующим Compose, быстро редактировать литералы (строки, числа, логические значения) в своем коде и немедленно видеть результаты, не дожидаясь компиляции. Цель этой функции — повысить вашу производительность за счет мгновенного отображения изменений кода в предварительном просмотре, эмуляторе или на физическом устройстве.
Создание поддержки в Layout Inspector
Инспектор макета позволяет вам увидеть подробные сведения о макете вашего приложения, работающего на подключенном устройстве. Вы можете взаимодействовать со своим приложением и просматривать текущие обновления в инструменте, чтобы быстро устранять проблемы, которые могут возникнуть.
Вы можете проверять макеты, написанные с помощью новой платформы декларативного пользовательского интерфейса Android — Jetpack Compose. Независимо от того, использует ли ваше приложение макеты, полностью написанные на Compose, или макеты, использующие гибрид Compose и Views, инспектор макетов поможет вам понять, как ваши макеты отображаются на вашем работающем устройстве.
Начать
Для начала разверните приложение на подключенном устройстве, а затем откройте окно «Инспектор макетов» , выбрав «Просмотр» > «Инструменты Windows» > «Инспектор макетов» . Если инспектор макетов не подключается автоматически к процессу вашего приложения, выберите нужный процесс приложения из раскрывающегося списка процессов. Вскоре вы увидите макет вашего приложения, отображаемый в окне инструмента. Чтобы начать проверку макета Compose, выберите компонент макета, видимый при рендеринге, или выберите его в дереве компонентов .
В окне «Атрибуты» отображается подробная информация о выбранной в данный момент функции «Создать». В этом окне вы можете просмотреть параметры функции и их значения, включая модификаторы и лямбда-выражения. Для лямбда-выражений инспектор предоставляет ярлык, который поможет вам перейти к выражению в исходном коде.
Инспектор макета отображает все функции Compose в стеке вызовов, которые создают компоненты в макете вашего приложения. Во многих случаях сюда входят функции Compose, которые вызываются внутри библиотеки Compose. Если вы хотите видеть в дереве компонентов только те функции Compose, которые ваше приложение вызывает напрямую, щелкните фильтр действие, которое может помочь уменьшить количество узлов, отображаемых в дереве, до тех, которые вы, вероятно, захотите проверить.
Улучшен раскрывающийся список развертывания.
В раскрывающемся списке устройств теперь различаются различные типы ошибок в выбранной вами конфигурации устройства. Изменения в значках и стилистике теперь различают ошибки (выбор устройства, приводящий к нарушению конфигурации) и предупреждения (выбор устройства, который может привести к неожиданному поведению, но при этом остается работоспособным).
Кроме того, Android Studio теперь будет предупреждать вас, если вы попытаетесь запустить проект на устройстве, имеющем связанную с ним ошибку или предупреждение.
Новый помощник по сопряжению с Wear OS
Новый помощник по сопряжению Wear OS шаг за шагом помогает разработчикам выполнить сопряжение эмуляторов Wear OS с физическими или виртуальными телефонами непосредственно в Android Studio. Помощник может помочь вам установить на телефон подходящее приложение Wear OS Companion и настроить соединение между двумя устройствами. Вы можете начать, перейдя в раскрывающийся список устройств > Помощник по сопряжению с эмулятором Wear OS .
Адаптивный шаблон макета
Android Studio Arctic Fox теперь включает в себя новый шаблон макета, который адаптируется к различным размерам дисплея и изменению размера приложений, таких как телефоны, складные устройства, планшеты и режимы разделенного экрана. При создании нового проекта или модуля выберите шаблон «Адаптивное действие», чтобы создать макет с компонентами, размер которых динамически изменяется.
Чтобы начать, перейдите в меню «Файл» > «Создать» , выберите «Новый проект» или «Новый модуль» и выберите шаблон «Адаптивное действие» .
Сканер доступности для редактора макетов
Мы интегрировали платформу тестирования доступности Android в Android Studio, чтобы помочь вам обнаружить проблемы с доступностью в ваших макетах. Инструмент сообщает о проблемах, связанных с доступностью, и предлагает варианты исправления некоторых распространенных проблем (например, отсутствия описаний контента или низкой контрастности). Для запуска панели нажмите на кнопку отчета об ошибке в редакторе макетов.
Поддержка Apple Silicon
Android Studio и Android Emulator теперь содержат начальную поддержку основных рабочих процессов разработчика при запуске аппаратной архитектуры Apple Silicon (arm64), включая соответствующие образы системы эмулятора.
Поддержка пока доступна не для всех инструментов командной строки SDK и NDK. Возможно, вам придется запустить Rosetta 2 на своем компьютере, чтобы запустить некоторые инструменты.
Известные проблемы с Arctic Fox
В этом разделе описаны текущие известные проблемы в Android Studio Arctic Fox.
Патчи, не работающие в Windows для версий 3.6-4.1
Патчи на платформе Windows от версий 3.6–4.1 до стабильной версии Android Studio Arctic Fox могут не работать.
Выпуски патчей
Ниже приведены выпуски патчей для Android Studio Arctic Fox.
Android-студия Arctic Fox | Обновление 4 2020.3.1 (декабрь 2021 г.)
Это незначительное обновление включает в себя следующие исправления ошибок:
- Плагин Android Gradle
- Установка
Provider
дляVariantOutput.version
может привести к сбою в работе кеша конфигурации. -
gradeResValues.xml
не обновляется при подписании выпуска
- Установка
- Д8/Р8
-
java.lang.ClassCastException
выброшенный в конструктор класса в сборке, минимизированной R8 - Недоступная настройка типа во время слияния dex
-
java.lang.VerifyError
: проверяющему устройству не удалось проверить, поскольку к полю экземпляра невозможно получить доступ из объекта типаReference.java.lang.Object
-
- Ворс
- Отключить проверку
MediaCapabilities
- Lint сообщает о ложноположительной [Instantiable] ошибке при включении
shrinkResources
- Отключить проверку
- Шаблоны
Модуль импорта опция выделена серым цветом
Дополнительную информацию см. в записи блога о патче 4 2020.3.1 .
Android-студия Arctic Fox | Обновление 3 2020.3.1 (октябрь 2021 г.)
Это незначительное обновление включает в себя следующие исправления ошибок:
- Плагин Android Gradle
- Автономный плагин lint не обрабатывает зависимости
gradleApi()
должным образом - Сборка JPS запускается, когда сборка Gradle выполняется за пределами Studio
- Включение KSP и Kapt в проекте, в котором оба содержат процессоры, генерирующие исходные коды, нарушает
BundleLibraryClassesInputs
- Автономный плагин lint не обрабатывает зависимости
- Редактор С++
- Пользовательский интерфейс зависает из-за длительного вычисления
JniReferencesSearch
в фоновом режиме
- Пользовательский интерфейс зависает из-за длительного вычисления
- Инспектор базы данных
- Разрешить сохранение БД
- Невозможно экспортировать данные с помощью App Inspection/Database Inspector с пустым пространством в пути.
- Дексер (D8)
- Лямбды Java вызывают неожиданное поведение при создании подклассов подклассов
- Шринкер (R8)
-
Cannot constrain type
во время минификации r8 - Проблема при выполнении R8 3.0.69 (из AGP 7.0.2) и 3.0.72.
-
Дополнительную информацию можно найти в записи блога о патче 3 2020.3.1 .
Android-студия Arctic Fox | Обновление 2 2020.3.1 (сентябрь 2021 г.)
Это незначительное обновление включает в себя следующие исправления ошибок:
- Плагин Android Gradle
- Синхронизация Gradle запущена 10 РАЗ при обновлении AS Arctic Fox Canary 7 до Canary 8
- Дешугарирование и воспроизводимые сборки
- Сборка на С++
- Плагин Android Gradle 7.0.0 не включает jniLibs в APK, если используется закрытие Tasks.WhenTaskAdded
- Редактирование
- MergedManifestRefreshListener застревает в бесконечном цикле в Arctic Fox
- Ворс
- «Проверка ворса для проверки ворса» не работает
- Шринкер (R8)
- ClassNotFoundException при запуске сборки с R8 в AGP7
Дополнительную информацию см. в записи блога 2020.3.1 Patch 2 .
Android-студия Arctic Fox | Обновление 1 2020.3.1 (август 2021 г.)
Это обновление включает исправления следующих проблем:
- Плагин Android Gradle
- TypedefRemover использует ASM5 и несовместим с источниками JDK 11, требующими ASM7.
- Некоторые новые блоки DSL невозможно использовать из Groovy DSL в AGP 7.0.0.
- Стабильная версия AGP 7.0.0 выдает исключение ExternalApiUsageException в библиотекеVariants.all{applicationId}
- Отладчик C++
- Ошибка AS Arctic Fox при запуске собственного сеанса отладки на Mac M1: «Обнаружена сломанная конфигурация LLDB»
- Менеджер ресурсов
- (Windows) Новое > Векторный ресурс > image.svg: недопустимый символ «минус» в сгенерированном файле. xml
- Шринкер (R8)
- NPE в мостоподъеме
- После обновления до 7.0.0 R8 аварийно завершает работу с ошибкой «Неожиданное использование осталось в методе после встроенного».
Дополнительную информацию можно найти в записи блога 2020.3.1 Patch 1 .