Ниже приведены новые функции Android Studio Dolphin.
Новое в Compose
Ниже приведены новые функции и улучшения Jetpack Compose в Android Studio.
Создание координации анимации
Если ваши анимации описаны в составном предварительном просмотре, теперь вы можете использовать предварительный просмотр анимации, чтобы проверить и скоординировать их все одновременно. Вы также можете заморозить определенную анимацию.
Создание аннотаций для нескольких предпросмотров
Теперь вы можете определить класс аннотаций, включающий несколько определений предварительного просмотра, и использовать эту новую аннотацию для одновременного создания этих предварительного просмотра. Используйте эту новую аннотацию для одновременного предварительного просмотра нескольких устройств, шрифтов и тем, не повторяя эти определения для каждого составного объекта.
Составление счетчиков рекомпозиции в Layout Inspector
При отладке макетов Compose знание того, когда компонуемые объекты перекомпонуются, а когда нет, важно для понимания того, правильно ли реализован ваш пользовательский интерфейс. Например, если перекомпозиция выполняется слишком много раз, ваше приложение может выполнять больше работы, чем необходимо. С другой стороны, компоненты, которые не перекомпонуются, когда вы этого ожидаете, могут привести к неожиданному поведению.
Инспектор макетов теперь позволяет вам видеть, когда отдельные составные элементы в вашей иерархии макетов были перекомпонованы или пропущены. Эта информация отображается в реальном времени, пока вы взаимодействуете со своим приложением. Для начала убедитесь, что ваше приложение использует Compose 1.2.0-alpha03
или выше. Затем разверните свое приложение, как обычно.
Откройте окно Layout Inspector и подключитесь к процессу вашего приложения. В дереве компонентов вы должны увидеть два новых столбца рядом с иерархией макета. В первом столбце указано количество композиций для каждого узла. Во втором столбце отображается количество пропусков для каждого узла. Вы также можете увидеть аналогичную информацию на панели «Атрибуты» , когда выбираете компонуемый объект в дереве компонентов или на отображении макета .
Если вы хотите сбросить счетчик, нажмите «Сброс» в верхней части панели «Дерево компонентов» . Сброс счетчика может помочь вам понять перекомпозиции или пропуски во время определенного взаимодействия с вашим приложением.
Обновлен помощник по сопряжению с эмулятором Wear OS.
Начиная с Android Studio Dolphin Canary 3, помощник по сопряжению эмуляторов Wear OS имеет улучшенные функции, которые упрощают управление эмуляторами Wear и их подключение. Теперь вы можете сделать следующее:
- См. раздел «Износ устройств» в диспетчере устройств .
- Подключите несколько устройств Wear к одному виртуальному или физическому телефону.
- Автоматически повторно подключайте ранее сопряженные устройства при их запуске. Android Studio теперь запоминает и повторно соединяет последнюю настроенную пару.
Чтобы использовать эти новые функции, убедитесь, что ваши эмуляторы телефона имеют уровень API 30 или выше и на них установлен Google Play Store. Кроме того, убедитесь, что ваши эмуляторы Wear имеют уровень API 28 или выше. Чтобы обновить образы системы для эмулируемых устройств до последних версий, выберите «Инструменты» > «Менеджер SDK» .
Дополнительную информацию см. в разделе Использование помощника по сопряжению с эмулятором Wear OS .
Обновлена панель инструментов эмулятора Wear OS.
Начиная с Android Studio Dolphin Canary 2, для эмуляторов Wear с уровнем API 28 или выше на панели инструментов эмулятора теперь есть кнопки, имитирующие физические кнопки и общие действия на устройстве. Новые кнопки: кнопка 1 и кнопка 2 (кнопка 2 доступна только на уровне API 30 или выше), кнопка «Пальма» и кнопка «Наклон». Вот некоторые действия, которые вы можете выполнять с помощью новых кнопок эмулятора Wear:
- Чтобы перевести устройство в режим окружающей среды, нажмите кнопку Palm.
- Чтобы вернуть устройство к последнему экрану, на котором оно было перед режимом окружающей среды, нажмите кнопку «Наклон».
Дополнительные сведения см. в разделе Выполнение стандартных действий в эмуляторе .
Новые конфигурации запуска Wear OS
Были добавлены новые конфигурации запуска для быстрого запуска и отладки поверхностей, специфичных для Wear OS, таких как циферблаты, плитки и осложнения. Вы можете создать эти новые конфигурации в диалоговом окне «Конфигурации запуска/отладки» при запуске приложения.
Дополнительную информацию см. в разделе Конфигурации запуска/отладки Wear OS .
Новый логкат
Logcat был обновлен, чтобы упростить анализ, запрос и отслеживание журналов.
Новый форматтер
Logcat теперь форматирует журналы, чтобы упростить сканирование полезной информации, такой как теги и сообщения, а также идентифицировать различные типы журналов, такие как предупреждения и ошибки.
Создать несколько окон Logcat
Теперь вы можете создавать несколько вкладок в Logcat, чтобы легко переключаться между различными устройствами или запросами. Щелчок правой кнопкой мыши по вкладке позволяет переименовать ее, а также можно щелкнуть и перетащить, чтобы изменить порядок вкладок.
Кроме того, чтобы вам было легче сравнивать два набора журналов, теперь вы можете разделить представление на вкладке, щелкнув правой кнопкой мыши в представлении журнала и выбрав «Разделить справа» или «Разделить вниз» . Чтобы закрыть разделение, щелкните правой кнопкой мыши и выберите «Закрыть» . Каждое разделение позволяет вам установить собственное подключение устройства, параметры просмотра и запрос.
Переключение между пресетами просмотра
Logcat теперь позволяет быстро переключаться между различными режимами просмотра — «Стандартный» , «Компактный» и «Пользовательский» , щелкнув . Каждый режим просмотра предоставляет разные настройки по умолчанию для отображения большего или меньшего количества информации, такой как метки времени, теги и идентификаторы процессов (PID). Вы также можете настроить каждый из этих режимов просмотра по умолчанию, а также пользовательский режим просмотра, выбрав «Изменить вид» .
Новый поиск по ключу и значению
В предыдущей версии Logcat у вас была возможность либо использовать строковый поиск (с поддержкой регулярных выражений), либо создать новый фильтр, заполняя различные поля с помощью пользовательского интерфейса Logcat. Первый вариант усложнил поиск, а второй вариант усложнил совместное использование и настройку запросов. Теперь мы упростили этот процесс, введя поиск по ключу и значению прямо из основного поля запроса.
Эта новая система запросов обеспечивает точность того, что вы хотите запросить, не полагаясь на регулярные выражения, с возможностью вызывать прошлые запросы из истории и делиться этими запросами с другими. Кроме того, у вас по-прежнему есть возможность использовать RegEx, а также исключать журналы на основе значений ключа. Вот несколько примеров использования новой системы запросов, но вы также можете просто начать вводить текст в поле запроса, чтобы увидеть предложения:
- PID для проекта локального приложения :
package:mine
- Конкретные значения :
-
package:<package-ID>
-
tag:<tag>
-
level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
-
- Исключите определенное значение , предварив ключ знаком
-
:-
-tag:<exclude-tag>
-
- Используйте регулярные выражения с заданным ключом, поместив
~
после ключа:-
tag~:<regular-expression-tag>
- Объедините с тегом исключения:
-tag~:<exclude-regular-expression-tag>
-
Вы также можете просмотреть историю запросов, нажав кнопку в поле запроса и выбрав их из раскрывающегося списка. Чтобы добавить запрос в избранное и он оставался вверху списка во всех проектах вашей студии, нажмите кнопку в конце поля запроса..
Отслеживайте журналы сбоев/перезапусков приложений.
Новый Logcat теперь упрощает отслеживание журналов вашего приложения при сбоях и перезапусках приложения, чтобы вы не пропустили важные журналы этих событий. Когда Logcat заметит, что процесс вашего приложения остановлен и перезапущен, вы увидите сообщение в выходных данных, например PROCESS ENDED
и PROCESS STARTED
, как показано ниже:
А перезапуск Logcat сохраняет конфигурацию вашего сеанса, такую как разделение вкладок, фильтры и параметры просмотра, так что вы можете легко продолжить сеанс.
Управляемые устройства Gradle
Чтобы повысить согласованность, производительность и надежность при использовании виртуальных устройств Android для автоматизированных инструментальных тестов, мы представляем управляемые устройства Gradle. Эта функция, доступная для уровней API 27 и выше, позволяет вам настраивать виртуальные тестовые устройства в файлах Gradle вашего проекта. Система сборки использует конфигурации для полного управления — то есть создания, развертывания и отключения — этими устройствами при выполнении автоматических тестов.
Эта функция позволяет Gradle видеть не только тесты, которые вы выполняете, но и жизненный цикл устройств, тем самым улучшая качество вашего тестирования следующими способами:
- Управляет проблемами, связанными с устройством, чтобы обеспечить выполнение ваших тестов.
- Использует снимки эмулятора для улучшения времени запуска устройства и использования памяти, а также восстановления устройств в чистое состояние между тестами.
- Кэширует результаты тестов и повторно запускает только те тесты, которые могут дать разные результаты.
- Обеспечивает согласованную среду для запуска тестов между локальными и удаленными запусками тестов.
Кроме того, в управляемых устройствах Gradle представлен новый тип устройств-эмуляторов, называемый устройствами автоматического тестирования (ATD), которые оптимизированы для повышения производительности при выполнении инструментальных тестов. В сочетании с поддержкой сегментирования тестов вы можете поэкспериментировать с разделением набора тестов на несколько экземпляров ATD, чтобы сократить общее время выполнения тестов. Дополнительные сведения об управляемых устройствах Gradle и связанных с ними функциях см. в разделе Масштабирование тестов с помощью управляемых устройств Gradle .
Поддержка R8 с использованием файлов сопоставления на основе смещений инструкций DEX.
При оптимизации информации о строках R8 теперь может кодировать информацию в общих объектах отладочной информации с помощью таблиц строк на основе смещений инструкций. Это существенно снижает накладные расходы на линейную информацию. В результате строки в методах больше не идут подряд, а могут переходить через определенные промежутки времени в зависимости от размера инструкций. Обратите внимание, что некоторые инструменты не учитывают эту общую кодировку.
Кроме того, виртуальные машины Android, начиная с O (уровень API 26), поддерживают смещения инструкций печати в трассировках стека, если метод не имеет информации о номере строки. При компиляции с помощью minSdk 26 или выше и без информации об исходном файле R8 полностью удаляет информацию о номере строки.
Лямбды без гражданства больше не обесцвечиваются как одиночные элементы.
Лямбды без сохранения состояния больше не выделяются как одиночные при обессахаривании. Представление в виде одиночных элементов увеличивает накладные расходы на размер кода из-за добавленного поля и инициализатора класса, а также накладные расходы при запуске из-за инициализации статического класса. Лямбды без сохранения состояния теперь распределяются на сайтах использования так же, как и лямбды с сохранением состояния (лямбды с захватами).
R8 позволяет избежать замедления проверки во время выполнения Android
Чтобы устранить проблемы с производительностью в средах выполнения Android (Dalvik и ART), в R8 (не D8) теперь представлены заглушки библиотек и структурированные вызовы библиотечных методов для библиотечных классов и методов, которые могут отсутствовать во время выполнения. Это устраняет многие проблемы с проверкой и повышает производительность во время выполнения. Эта функция всегда включена.
Поддержка API JDK-11 с очисткой API Java 8+.
При использовании зависимости coreLibraryDesugaring теперь поддерживается библиотека реализации на основе JDK-11. Дополнительную информацию смотрите в журнале изменений desugar_jdk_libs
.
Выпуски патчей
Ниже приведен список выпусков исправлений в Android Studio Dolphin.
Android-студия Дельфин | Обновление 1 2021.3.1 (октябрь 2022 г.)
С выпуском патча 1 Android Studio Dolphin теперь поддерживает плагин Kotlin 1.7.20. Это незначительное обновление также включает следующие исправления ошибок:
Исправленные проблемы | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Плагин Android Gradle |
| ||||||||||||
Дексер (D8) |
| ||||||||||||
Импорт/синхронизация |
| ||||||||||||
Ресурсы |
| ||||||||||||
Шринкер (R8) |
|
Ниже приведены новые функции Android Studio Dolphin.
Новое в Compose
Ниже приведены новые функции и улучшения Jetpack Compose в Android Studio.
Создание координации анимации
Если ваши анимации описаны в составном предварительном просмотре, теперь вы можете использовать предварительный просмотр анимации, чтобы проверить и скоординировать их все одновременно. Вы также можете заморозить определенную анимацию.
Создание аннотаций для нескольких предпросмотров
Теперь вы можете определить класс аннотаций, включающий несколько определений предварительного просмотра, и использовать эту новую аннотацию для одновременного создания этих предварительного просмотра. Используйте эту новую аннотацию для одновременного предварительного просмотра нескольких устройств, шрифтов и тем, не повторяя эти определения для каждого составного объекта.
Составление счетчиков рекомпозиции в Layout Inspector
При отладке макетов Compose знание того, когда компонуемые объекты перекомпонуются, а когда нет, важно для понимания того, правильно ли реализован ваш пользовательский интерфейс. Например, если перекомпозиция выполняется слишком много раз, ваше приложение может выполнять больше работы, чем необходимо. С другой стороны, компоненты, которые не перекомпонуются, когда вы этого ожидаете, могут привести к неожиданному поведению.
Инспектор макетов теперь позволяет вам видеть, когда отдельные составные элементы в вашей иерархии макетов были перекомпонованы или пропущены. Эта информация отображается в реальном времени, пока вы взаимодействуете со своим приложением. Для начала убедитесь, что ваше приложение использует Compose 1.2.0-alpha03
или выше. Затем разверните свое приложение, как обычно.
Откройте окно Layout Inspector и подключитесь к процессу вашего приложения. В дереве компонентов вы должны увидеть два новых столбца рядом с иерархией макета. В первом столбце указано количество композиций для каждого узла. Во втором столбце отображается количество пропусков для каждого узла. Вы также можете увидеть аналогичную информацию на панели «Атрибуты» , когда выбираете компонуемый объект в дереве компонентов или на отображении макета .
Если вы хотите сбросить счетчик, нажмите «Сброс» в верхней части панели «Дерево компонентов» . Сброс счетчика может помочь вам понять перекомпозиции или пропуски во время определенного взаимодействия с вашим приложением.
Обновлен помощник по сопряжению с эмулятором Wear OS.
Начиная с Android Studio Dolphin Canary 3, помощник по сопряжению эмуляторов Wear OS имеет улучшенные функции, которые упрощают управление эмуляторами Wear и их подключение. Теперь вы можете сделать следующее:
- См. раздел «Износ устройств» в диспетчере устройств .
- Подключите несколько устройств Wear к одному виртуальному или физическому телефону.
- Автоматически повторно подключайте ранее сопряженные устройства при их запуске. Android Studio теперь запоминает и повторно соединяет последнюю настроенную пару.
Чтобы использовать эти новые функции, убедитесь, что ваши эмуляторы телефона имеют уровень API 30 или выше и на них установлен Google Play Store. Кроме того, убедитесь, что ваши эмуляторы Wear имеют уровень API 28 или выше. Чтобы обновить образы системы для эмулируемых устройств до последних версий, выберите «Инструменты» > «Менеджер SDK» .
Дополнительную информацию см. в разделе Использование помощника по сопряжению с эмулятором Wear OS .
Обновлена панель инструментов эмулятора Wear OS.
Начиная с Android Studio Dolphin Canary 2, для эмуляторов Wear с уровнем API 28 или выше на панели инструментов эмулятора теперь есть кнопки, имитирующие физические кнопки и общие действия на устройстве. Новые кнопки: кнопка 1 и кнопка 2 (кнопка 2 доступна только на уровне API 30 или выше), кнопка «Пальма» и кнопка «Наклон». Вот некоторые действия, которые вы можете выполнять с помощью новых кнопок эмулятора Wear:
- Чтобы перевести устройство в режим окружающей среды, нажмите кнопку Palm.
- Чтобы вернуть устройство к последнему экрану, на котором оно было перед режимом окружающей среды, нажмите кнопку «Наклон».
Дополнительные сведения см. в разделе Выполнение стандартных действий в эмуляторе .
Новые конфигурации запуска Wear OS
Были добавлены новые конфигурации запуска для быстрого запуска и отладки поверхностей, специфичных для Wear OS, таких как циферблаты, плитки и осложнения. Вы можете создать эти новые конфигурации в диалоговом окне «Конфигурации запуска/отладки» при запуске приложения.
Дополнительную информацию см. в разделе Конфигурации запуска/отладки Wear OS .
Новый логкат
Logcat был обновлен, чтобы упростить анализ, запрос и отслеживание журналов.
Новый форматтер
Logcat теперь форматирует журналы, чтобы упростить сканирование полезной информации, такой как теги и сообщения, а также идентифицировать различные типы журналов, такие как предупреждения и ошибки.
Создать несколько окон Logcat
Теперь вы можете создавать несколько вкладок в Logcat, чтобы легко переключаться между различными устройствами или запросами. Щелчок правой кнопкой мыши по вкладке позволяет переименовать ее, а также можно щелкнуть и перетащить, чтобы изменить порядок вкладок.
Кроме того, чтобы вам было легче сравнивать два набора журналов, теперь вы можете разделить представление на вкладке, щелкнув правой кнопкой мыши в представлении журнала и выбрав «Разделить справа» или «Разделить вниз» . Чтобы закрыть разделение, щелкните правой кнопкой мыши и выберите «Закрыть» . Каждое разделение позволяет вам установить собственное подключение устройства, параметры просмотра и запрос.
Переключение между пресетами просмотра
Logcat теперь позволяет быстро переключаться между различными режимами просмотра — «Стандартный» , «Компактный» и «Пользовательский» , щелкнув . Каждый режим просмотра предоставляет разные настройки по умолчанию для отображения большего или меньшего количества информации, такой как метки времени, теги и идентификаторы процессов (PID). Вы также можете настроить каждый из этих режимов просмотра по умолчанию, а также пользовательский режим просмотра, выбрав «Изменить вид» .
Новый поиск по ключу и значению
В предыдущей версии Logcat у вас была возможность либо использовать строковый поиск (с поддержкой регулярных выражений), либо создать новый фильтр, заполняя различные поля с помощью пользовательского интерфейса Logcat. Первый вариант усложнил поиск, а второй вариант усложнил совместное использование и настройку запросов. Теперь мы упростили этот процесс, введя поиск по ключу и значению прямо из основного поля запроса.
Эта новая система запросов обеспечивает точность того, что вы хотите запросить, не полагаясь на регулярные выражения, с возможностью вызывать прошлые запросы из истории и делиться этими запросами с другими. Кроме того, у вас по-прежнему есть возможность использовать RegEx, а также исключать журналы на основе значений ключа. Вот несколько примеров использования новой системы запросов, но вы также можете просто начать вводить текст в поле запроса, чтобы увидеть предложения:
- PID для проекта локального приложения :
package:mine
- Конкретные значения :
-
package:<package-ID>
-
tag:<tag>
-
level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
-
- Исключите определенное значение , предварив ключ знаком
-
:-
-tag:<exclude-tag>
-
- Используйте регулярные выражения с заданным ключом, поместив
~
после ключа:-
tag~:<regular-expression-tag>
- Объедините с тегом исключения:
-tag~:<exclude-regular-expression-tag>
-
Вы также можете просмотреть историю запросов, нажав кнопку в поле запроса и выбрав их из раскрывающегося списка. Чтобы добавить запрос в избранное и он оставался вверху списка во всех проектах вашей студии, нажмите кнопку в конце поля запроса..
Отслеживайте журналы сбоев/перезапусков приложений.
Новый Logcat теперь упрощает отслеживание журналов вашего приложения при сбоях и перезапусках приложения, чтобы вы не пропустили важные журналы этих событий. Когда Logcat заметит, что процесс вашего приложения остановлен и перезапущен, вы увидите сообщение в выходных данных, например PROCESS ENDED
и PROCESS STARTED
, как показано ниже:
А перезапуск Logcat сохраняет конфигурацию вашего сеанса, такую как разделение вкладок, фильтры и параметры просмотра, так что вы можете легко продолжить сеанс.
Управляемые устройства Gradle
Чтобы повысить согласованность, производительность и надежность при использовании виртуальных устройств Android для автоматизированных инструментальных тестов, мы представляем управляемые устройства Gradle. Эта функция, доступная для уровней API 27 и выше, позволяет вам настраивать виртуальные тестовые устройства в файлах Gradle вашего проекта. Система сборки использует конфигурации для полного управления — то есть создания, развертывания и отключения — этими устройствами при выполнении автоматических тестов.
Эта функция позволяет Gradle видеть не только тесты, которые вы выполняете, но и жизненный цикл устройств, тем самым улучшая качество вашего тестирования следующими способами:
- Управляет проблемами, связанными с устройством, чтобы обеспечить выполнение ваших тестов.
- Использует снимки эмулятора для улучшения времени запуска устройства и использования памяти, а также восстановления устройств в чистое состояние между тестами.
- Кэширует результаты тестов и повторно запускает только те тесты, которые могут дать разные результаты.
- Обеспечивает согласованную среду для запуска тестов между локальными и удаленными запусками тестов.
Кроме того, в управляемых устройствах Gradle представлен новый тип устройств-эмуляторов, называемый устройствами автоматического тестирования (ATD), которые оптимизированы для повышения производительности при выполнении инструментальных тестов. В сочетании с поддержкой сегментирования тестов вы можете поэкспериментировать с разделением набора тестов на несколько экземпляров ATD, чтобы сократить общее время выполнения тестов. Дополнительные сведения об управляемых устройствах Gradle и связанных с ними функциях см. в разделе Масштабирование тестов с помощью управляемых устройств Gradle .
Поддержка R8 с использованием файлов сопоставления на основе смещений инструкций DEX.
При оптимизации информации о строках R8 теперь может кодировать информацию в общих объектах отладочной информации с помощью таблиц строк на основе смещений инструкций. Это существенно снижает накладные расходы на линейную информацию. В результате строки в методах больше не идут подряд, а могут переходить через определенные промежутки времени в зависимости от размера инструкций. Обратите внимание, что некоторые инструменты не учитывают эту общую кодировку.
Кроме того, виртуальные машины Android, начиная с O (уровень API 26), поддерживают смещения инструкций печати в трассировках стека, если метод не имеет информации о номере строки. При компиляции с помощью minSdk 26 или выше и без информации об исходном файле R8 полностью удаляет информацию о номере строки.
Лямбды без гражданства больше не обесцвечиваются как одиночные элементы.
Лямбды без сохранения состояния больше не выделяются как одиночные при обессахаривании. Представление в виде одиночных элементов увеличивает накладные расходы на размер кода из-за добавленного поля и инициализатора класса, а также накладные расходы при запуске из-за инициализации статического класса. Лямбды без сохранения состояния теперь распределяются на сайтах использования так же, как и лямбды с сохранением состояния (лямбды с захватами).
R8 позволяет избежать замедления проверки во время выполнения Android
Чтобы устранить проблемы с производительностью в средах выполнения Android (Dalvik и ART), в R8 (не D8) теперь представлены заглушки библиотек и структурированные вызовы библиотечных методов для библиотечных классов и методов, которые могут отсутствовать во время выполнения. Это устраняет многие проблемы с проверкой и повышает производительность во время выполнения. Эта функция всегда включена.
Поддержка API JDK-11 с очисткой API Java 8+.
При использовании зависимости coreLibraryDesugaring теперь поддерживается библиотека реализации на основе JDK-11. Дополнительную информацию смотрите в журнале изменений desugar_jdk_libs
.
Выпуски патчей
Ниже приведен список выпусков исправлений в Android Studio Dolphin.
Android-студия Дельфин | Обновление 1 2021.3.1 (октябрь 2022 г.)
С выпуском патча 1 Android Studio Dolphin теперь поддерживает плагин Kotlin 1.7.20. Это незначительное обновление также включает следующие исправления ошибок:
Исправленные проблемы | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Плагин Android Gradle |
| ||||||||||||
Дексер (D8) |
| ||||||||||||
Импорт/синхронизация |
| ||||||||||||
Ресурсы |
| ||||||||||||
Шринкер (R8) |
|