eFusion 08 июня 2020

📱Android Studio 4.0: новые инструменты работы с макетами, улучшенное профилирование и анализ билдов

Рассказываем, чем нас порадовала четвёртая версия Android Studio: редактор движения объектов, инспектор макетов, улучшенный CPU Profiler, интеллектуальный редактор и анализатор сборки.
📱Android Studio 4.0: новые инструменты работы с макетами, улучшенное профилирование и анализ билдов

Четвёртая версия Android Studio – результат стремления ребят из Google предоставить новые или улучшенные инструменты для более удобного кодинга, быстрой разработки и проектирования приложений.

Android Studio 4.0 включают в себя новый Motion Editor, помогающий оживить ваши приложения, Build Analyzer для изучения причин замедления сборки и Java 8, которую можно использовать независимо от минимального уровня API вашего приложения. CPU Profiler был перелопачен, чтобы сделать рабочий процесс более интуитивно понятным и для простого параллельного анализа активности потока. Layout Inspector теперь отдаёт живые данные c UI приложения, а значит, вы можете легко отлаживать именно то, что отображается на устройстве.

Разбор от команды Android Developers
☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»

Работа с макетами

Редактор движения объектов (MotionLayout)

API MotionLayout расширяет и без того богатые возможности ConstraintLayout, помогая разработчикам Android управлять сложными движениями и анимацией виджетов

Использование этого API стало проще благодаря новому Motion Editor – мощному интерфейсу для создания, редактирования и предварительного просмотра. Больше не нужно создавать и изменять сложные XML-файлы – Motion Editor делает это за нас, при этом поддерживая редактирование constraint-наборов, переходов, кейфреймов и атрибутов вьюшек. Чтобы увидеть код, создаваемый редактором, нужно совершить всего один клик.

И ещё небольшое улучшение для разработчиков, уже использующих ConstraintLayout – новая версия может легко преобразовать их в MotionLayout.

Процесс работы редактирования движения иконки
Процесс работы редактирования движения иконки

Инспектор макетов (Layout Inspector)

С помощью нового Layout Inspector отладка UI становится намного понятнее. Мы получаем доступ к постоянно обновляемым данным и информацию о том, как расходуются ресурсы.

Скриншот процесса работы с Layout Inspector
Скриншот процесса работы с Layout Inspector

Чтобы использовать Layout Inspector, в главном меню нужно выбрать View > Tool Windows > Layout Inspector. При развёртывании на устройстве под управлением API 29 или выше у нас есть доступ к дополнительным функциям: динамической иерархии макетов, обновляемой при изменении представления, подробным атрибутам вьюхи и 3D-модели UI запущенного приложения.

🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»

Валидация макетов (Layout Validation)

Интерфейс Layout Validation
Интерфейс Layout Validation

Когда вы разрабатываете код под несколько форм-факторов, размеров экрана и разрешений, следует убедиться, что работа корректно отображается на любом экране. С помощью окна Layout Validation можно просматривать макеты на разных экранах и конфигурациях одновременно. Чтобы начать работу, перейдите на вкладку Layout Validation в правом верхнем углу IDE.

Разработка и профилирование

Обновленный CPU Profiler

Обновленный интерфейс CPU Profiler
Обновленный интерфейс CPU Profiler

CPU profiler предоставляет большой объем информации о потоковой активности и трассировке приложения. В четвёртой версии записи CPU отделены от основной временной шкалы и организованы в удобные для анализа группы. Группы можно перемешать вверх и вниз или перетаскивать отдельные элементы внутри групп для дополнительной настройки.

Работа с группами в CPU Profiler
Работа с группами в CPU Profiler

Для облегчения параллельного анализа теперь можно просмотреть все активити на шкале Thread Activity (включая методы, функции и события) и попробовать новую навигацию – можно масштабировать и панорамировать при помощи клавиш W, S, A и D.

Переработан UI трассировки. Теперь легче выявить более загруженные потоки и сосредоточиться на просмотре данных. Качество CPU profiler значительно выросло – снизилось число ошибок, о которых сообщали пользователи с Android Studio 3.6. Больше об улучшениях профайлера – в официальном хелпе.

Функции интеллектуального редактора

Улучшенное автодополнение в редакторе
Улучшенное автодополнение в редакторе

R8, представленный в Android Gradle plugin 3.4.0, добавил синтаксического сахара, сжатия, обфускации и оптимизации, что привело к заметному улучшению производительности сборки.

Теперь при создании файлов для R8, студия предоставляет функции интеллектуального редактора: подсветку синтаксиса, автодополнение и проверку ошибок. Редактор интегрируется с вашим проектом Android, обеспечивая полное дополнение символов всех классов, методов и полей, а также включает быструю навигацию и рефакторинг.

Обновление платформы IntelliJ IDEA

Обновлено ядро среды разработки Android. Следом за ним обновились и версии IntelliJ IDEA 2019.3 и 2019.3.3. Эти улучшения в основном направлены на улучшение производительности.

Живые шаблоны

Live templates – это удобная функция IntelliJ, позволяющая вставлять общие конструкции в код набирая ключевые слова. Android Studio теперь также умеет работать с шаблонами: введите Toast, нажмите Tab и вставится шаблонный код для Toast. Полный список шаблонов находится в Editor > Live Templates в Settings (или Preferences).

Поддержка Clangd для C++

Для разработчиков, пишущих на плюсах, совершили переход на clangd в качестве основного механизма анализа языка, навигации по коду, автодополнения, проверки и отображения ошибок/предупреждений.

Чтобы настроить Clangd или Clang-Tidy, зайдите в диалог Settings (или Preferences) и переместитесь в Languages & Frameworks > C/C++ > Clangd or Clang-Tidy.

Сборка

Плагин Gradle 4.0 включает в себя поддержку Android Studio’s Build Analyzer (независимо от минимального уровня API вашего приложения) и создание зависимостей между динамическими модулями функций. Полный список обновлений смотрите в примечаниях к релизу.

Анализатор сборки (Build Analyzer)

Интерфес Build Analyzer
Интерфес Build Analyzer

Build Analyzer помогает понять и устранить узкие места в сборке, выделяя плагины и задачи, которые ответственны за общее время сборки, а также предлагая шаги по смягчению «симптомов».

Java 8 и десахаризация в D8/R8

Предыдущие версии Android Gradle поддерживали различные языковые функции Java 8 для всех уровней API с помощью процесса, называемого десахаризацией. В Android-студия 4.0 движок был расширен для поддержки API языка Java, независимо от minSdkVersion. Это означает, что теперь вы можете использовать стандартные языковые API, которые ранее были доступны только в последних версиях Android (например, java.util.stream, java.util.function и java.time).

Feature-on-feature зависимости

Схема зависимостей свойств
Схема зависимостей свойств

При использовании плагина Gradle 4.0.0 и выше теперь можно указать, что модуль Dynamic Feature зависит от другого модуля. Возможность определить эту взаимосвязь гарантирует, что ваше приложение будет иметь необходимые модули для разблокировки дополнительных функциональных возможностей, а это приведёт к меньшему количеству запросов и более простой структуре приложения. Например, функция :video может зависеть от функции :camera. Если пользователь хочет разблокировать возможность записи видео, ваше приложение автоматически при запросе :video загрузит модуль :camera.

Новые опции для включения или отключения из сборки

Gradle имеет встроенную поддержку современных библиотек, таких как data binding, view binding, build features и BuildConfig classes. Однако не все библиотеки и функции могут понадобиться в проекте. Как показано ниже, в версии 4.0 можно отключить ненужные функции сборки – это поможет оптимизировать производительность сборки для крупных проектов.

        android {
    // The default value for each feature is shown below.
    // You can change the value to override the default behavior.
    buildFeatures {
        // Determines whether to support View Binding.
        // Note that the viewBinding.enabled property is now deprecated.
        viewBinding = false
        // Determines whether to support Data Binding.
        // Note that the dataBinding.enabled property is now deprecated.
        dataBinding = false
        ...
    }
}
    

Для получения полного списка функций, которыми можно управлять, смотрите примечания к релизу.

Поддержка файлов Kotlin DSL

Студия теперь имеет встроенную поддержку файлов сценариев сборки Kotlin DSL (*.kts). Сценарии сборки Kotlin предлагают полный набор быстрых исправлений и поддерживаются Project Structure dialog. Разработчики собираются в долгосрочной перспективе поддерживать эту фичу, что позволит создать более простой в использовании DSL.

Метаданные зависимостей

При создании приложения Gradle включает метаданные, описывающие зависимости компилируемых библиотек. При загрузке приложения Play Console проверяет эти метаданные, получая информацию об известных проблемах с SDK и зависимостями, используемыми в приложении, а в некоторых случаях предоставляет обратную связь для решения этих проблем.

Эти данные сжимаются, шифруются ключом подписи Google Play и сохраняются в блоке подписи вашего релиза. Если вы не хотите делиться этой информацией, можно легко отказаться от нее, включив следующий блок в файл build.gradle:

build.gradle
        android {
    dependenciesInfo {
        // Отключение метаданных о зависимостях при построении APKs.
        includeInApk = false
        // Отключение метаданных о зависимостях при построении Android App Bundles.
        includeInBundle = false
    }
}
    

Заключение

Загрузите Android Studio 4.0 с официальной страницы. Если вы используете предыдущую версию Android Studio, вы можете просто обновиться до последнего релиза.

Как и любые разработчики, гугловцы любят и ценят отзывы (хорошие и плохие) о том, что вам нравится/не нравится, а также о функционале, который вы хотели бы видеть. Если вы обнаружите баг – смело отправляйте сообщение о проблеме.

Источники

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Senior Java Developer
Москва, по итогам собеседования
Java Team Lead
Москва, по итогам собеседования
Разработчик С#
от 200000 RUB до 400000 RUB

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ