Android Studio 3.4 (апрель 2019 г.)

Android Studio 3.4 — это основной выпуск, включающий множество новых функций и улучшений.

3.4.2 (июль 2019 г.)

Это незначительное обновление включает в себя различные исправления ошибок и улучшения производительности. Чтобы просмотреть список заметных исправлений ошибок, прочитайте соответствующую публикацию в блоге Release Updates .

3.4.1 (май 2019 г.)

Это незначительное обновление включает в себя различные исправления ошибок и улучшения производительности. Чтобы просмотреть список заметных исправлений ошибок, прочитайте соответствующую публикацию в блоге Release Updates .

3.4.0 известные проблемы

  • Профилирование отключается при развертывании приложения на устройстве под управлением Android Q Beta.

  • При использовании библиотеки привязки данных LiveDataListener.onChanged() может завершиться ошибкой с NPE. Исправление этой проблемы будет включено в Android Studio 3.4.1 и уже доступно в последней предварительной версии Android Studio 3.5. (См. выпуск № 122066788 )

IntelliJ ИДЕЯ 2018.3.4

Базовая среда разработки Android Studio была обновлена ​​за счет улучшений от IntelliJ IDEA до версии 2018.3.4 .

Обновления плагина Android Gradle 3.4.0

Информацию о том, что нового в плагине Android Gradle 3.4.0, см. в примечаниях к его выпуску .

Диалоговое окно «Новая структура проекта»

Новый диалог структуры проекта (PSD) упрощает обновление зависимостей и настройку различных аспектов вашего проекта, таких как модули, варианты сборки, конфигурации подписи и переменные сборки.

Вы можете открыть PSD, выбрав «Файл» > «Структура проекта» в строке меню. Вы также можете открыть PSD, нажав Ctrl+Shift+Alt+S в Windows и Linux или Command+; (точка с запятой) в macOS. Ниже вы можете найти описания некоторых новых и обновленных разделов PSD.

Переменные

Новый раздел переменных в PSD позволяет создавать переменные сборки и управлять ими, например, для обеспечения единообразия номеров версий зависимостей во всем проекте.

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

Примечание. Если в существующих файлах конфигурации сборки значения присваиваются с помощью сложных сценариев Groovy, возможно, вы не сможете редактировать эти значения с помощью PSD. Кроме того, вы не можете редактировать файлы сборки, написанные на Kotlin, с помощью PSD.

Модули

Настройте свойства, которые применяются ко всем вариантам сборки в существующем модуле, или добавьте новые модули в свой проект из раздела «Модули» . Например, здесь вы можете настроить свойства defaultConfig или управлять конфигурациями подписи.

Зависимости

Проверьте и визуализируйте каждую зависимость в графе зависимостей вашего проекта, разрешенную Gradle во время синхронизации проекта, выполнив следующие действия:

  1. На левой панели PSD выберите «Зависимости» .
  2. На панели «Модули» выберите модуль, для которого вы хотите проверить разрешенные зависимости.
  3. В правой части PSD откройте панель «Разрешенные зависимости» , как показано ниже.

Вы также можете быстро найти и добавить зависимости в свой проект, сначала выбрав модуль в разделе «Зависимости » PSD, нажав кнопку (+) в разделе « Объявленные зависимости» и выбрав тип зависимости, которую вы хотите добавить.

В зависимости от выбранного вами типа зависимости вы должны увидеть диалоговое окно, подобное приведенному ниже, которое поможет вам добавить зависимость в модуль.

Варианты сборки

В этом разделе PSD создайте и настройте варианты сборки и варианты продукта для каждого модуля вашего проекта. Вы можете добавлять заполнители манифеста, добавлять файлы ProGuard, назначать ключи подписи и многое другое.

Предложения

См. предлагаемые обновления для зависимостей проекта и переменных сборки в разделе «Предложения» , как показано ниже.

Новый менеджер ресурсов

Диспетчер ресурсов — это новое окно инструментов для импорта, создания, управления и использования ресурсов в вашем приложении. Окно инструментов можно открыть, выбрав «Просмотр» > «Окна инструментов» > «Диспетчер ресурсов» в строке меню. Менеджер ресурсов позволяет вам делать следующее:

  • Визуализация ресурсов: вы можете предварительно просмотреть чертежи, цвета и макеты, чтобы быстро найти нужные ресурсы.
  • Массовый импорт. Вы можете импортировать несколько доступных для рисования ресурсов одновременно, перетащив их в окно инструмента «Диспетчер ресурсов» или воспользовавшись мастером импорта рисуемых объектов . Чтобы получить доступ к мастеру, нажмите кнопку (+) в верхнем левом углу окна инструмента, а затем выберите «Импортировать чертежи» в раскрывающемся меню.
  • Преобразование SVG в объекты VectorDrawable . Вы можете использовать мастер импорта рисунков для преобразования изображений SVG в объекты VectorDrawable .
  • Перетаскивание ресурсов. Из окна инструмента «Диспетчер ресурсов» вы можете перетаскивать элементы рисования как в представление дизайна, так и в представление XML редактора макетов.
  • Просмотр альтернативных версий. Теперь вы можете просмотреть альтернативные версии своих ресурсов, дважды щелкнув ресурс в окне инструментов . В этом представлении показаны различные созданные вами версии и включенные в них квалификаторы.
  • Представления плиток и списков. Вы можете изменить представление в окне инструментов, чтобы визуализировать свои ресурсы в различных расположениях.

Чтобы узнать больше, прочтите руководство по управлению ресурсами приложения .

Проверка идентификаторов сборки при профилировании и отладке APK

Когда вы предоставляете файлы символов отладки для общих библиотек .so внутри APK, Android Studio проверяет, соответствует ли идентификатор сборки предоставленных файлов символов идентификатору сборки библиотек .so внутри APK.

Если вы собираете собственные библиотеки в своем APK с идентификатором сборки, Android Studio проверяет, соответствует ли идентификатор сборки в ваших файлах символов идентификатору сборки в ваших собственных библиотеках, и отклоняет файлы символов, если есть несоответствие. Если вы выполняли сборку без использования идентификатора сборки, то предоставление неправильных файлов символов может вызвать проблемы с отладкой.

R8 включен по умолчанию

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

На изображении ниже представлен общий обзор процесса компиляции до появления R8.

До версии R8 ProGuard представлял собой отдельный этап компиляции, отличный от декодирования и обессахаривания.

Теперь, с помощью R8, обессахаривание, сжатие, запутывание, оптимизация и исправление (D8) выполняются за один этап, как показано ниже.

В R8 обессеривание, сжатие, запутывание, оптимизация и исправление выполняются за один этап компиляции.

Имейте в виду, что R8 предназначен для работы с существующими правилами ProGuard, поэтому вам, скорее всего, не потребуется предпринимать никаких действий, чтобы воспользоваться преимуществами R8. Однако, поскольку это технология, отличная от ProGuard и разработанная специально для проектов Android, сжатие и оптимизация могут привести к удалению кода, чего не было в ProGuard. Итак, в этой маловероятной ситуации вам может потребоваться добавить дополнительные правила, чтобы сохранить этот код в выходных данных сборки.

Если у вас возникли проблемы с использованием R8, прочитайте часто задаваемые вопросы о совместимости R8 , чтобы узнать, есть ли решение вашей проблемы. Если решение не задокументировано, сообщите об ошибке . Вы можете отключить R8, добавив одну из следующих строк в файл gradle.properties вашего проекта:

    # Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
    
  

Примечание. Если для данного типа сборки вы установили useProguard значение false в файле build.gradle вашего модуля приложения, плагин Android Gradle использует R8 для сжатия кода вашего приложения для этого типа сборки, независимо от того, отключили ли вы R8 в gradle.properties файл gradle.properties .

Все типы аргументов, поддерживаемые компонентом навигации, теперь поддерживаются в редакторе навигации. Дополнительные сведения о поддерживаемых типах см. в разделе Передача данных между пунктами назначения .

Улучшения редактора макетов {:#layout-editor}

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

  • В новом разделе «Объявленные атрибуты» перечислены атрибуты, указанные в файле макета, и вы можете быстро добавлять новые.
  • На панели «Атрибуты» теперь также отображаются индикаторы рядом с каждым атрибутом, которые загораются, когда значение атрибута является ссылкой на ресурс, и пусты в противном случае.
  • Атрибуты с ошибками или предупреждениями теперь выделены. Красное выделение указывает на ошибки (например, при использовании недопустимых значений макета), а оранжевое — на предупреждения (например, при использовании жестко закодированных значений).

Новое действие намерения для быстрого импорта зависимостей.

Если вы начнете использовать в своем коде определенные классы Jetpack и Firebase, новое действие намерения предложит добавить в проект необходимую зависимость библиотеки Gradle, если вы еще этого не сделали. Например, если вы ссылаетесь на класс WorkManager без предварительного импорта необходимой зависимости android.arch.work:work-runtime , действие намерения позволяет легко сделать это одним щелчком мыши, как показано ниже.

В частности, поскольку Jetpack переупаковал библиотеку поддержки в отдельные пакеты, которыми легче управлять и обновлять, это намеренное действие помогает вам быстро добавлять только те зависимости, которые вам нужны для компонентов Jetpack, которые вы хотите использовать.