Как стать автором
Обновить

Комментарии к релизу Android Studio 3.4 (April 2019)

Время на прочтение6 мин
Количество просмотров7K
Автор оригинала: developer.android.com

Android Studio 3.4 это мажорный релиз включающий различные новые функции и улучшения



IntelliJ IDEA 2018.3.4


  • ядро Android Studio обновлено улучшениями из IntelliJ IDEA из 2018.3.4 релиза

Android Gradle plugin 3.4.0



Новый диалог Project Structure


  • новый Project Structure диалог (PSD) облегчает обновление зависимостей и конфигурирование различных аспектов вашего проекта, например модулей, вариантов сборки, конфигураций подписания и build-переменных
  • вы можете открыть PSD выбрав "File > Project Structure" в меню. Вы можете так же открыть PSD через Ctrl+Shift+Alt+S в Windows и Linux, или Command+; (точка с запятой) в macOS. Ниже приведено описание новшеств и обновлений PSD

Переменные


  • раздел позволяет создавать и управлять build-переменными, например задать какая должна быть версия соответствующих зависимостей для всего проекта

    image


    • быстрый обзор и редактирование build-переменных, уже существующих в Gradle build скриптах вашего проекта
    • добавление новых build-переменных на project- или modul-уровень напрямую из Project Structure диалога
    • ПРИМЕЧАНИЕ: если существующие build configuration файлы задают значения через сложные Groovy скрипты, вам может быть недоступно редактирование этих значений через Project Structure диалог. Кроме того, вы не можете редактировать build-файлы написанные на Kotlin используя Project Structure диалог


Модули


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

Зависимости


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


    1. на левой панели PSD, выберите "Dependencies"
    2. на панели "Modules" выберите модуль для которого вы хотели бы посмотреть зависимости
    3. в правой части PSD откройте панель "Resolved Dependencies" как показано ниже

      image

  • вы можете так же быстро найти и добавить зависимости в ваш проект, выбрав модуль и нажав кнопку "+" в разделе "Declared Dependencies", и затем выбрав тип зависимости которую вы хотите добавить


  • в зависимости от типа выбранной вами зависимости, вы должны увидеть диалог подобный показанному ниже, помогающий вам добавить зависимость в модуль

    image



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


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

    image

Подсказки


  • посмотреть предлагаемые обновления зависимостей вашего проекта и вариантов сборки можно в разделе "Suggestions", как показано ниже

    image

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


  • 'менеджер ресурсов' ('Resource Manager') это новый инструмент для импорта, создания, управления и использования ресурсов вашего приложения. Вы можете открыть этот инструмент через меню "View > Tool Windows > Resource Manager". 'Менеджер ресурсов' позволяет вам делать следующее:

    image


    • Визуализировать ресурсы: вы можете предпросматривать drawables, цвета и layouts для быстрого поиска нужного ресурса
    • Массовый импорт: вы можете импортировать несколько drawable assets за раз просто перетащив их в 'менеджер ресурсов' или через мастер "Import drawables". Для доступа к мастеру нажмите кнопку "+" в левом верхнем углу окна и затем выберите "Import Drawables" из выпадающего списка
    • Конвертация SVG-файлов в объекты VectorDrawables: вы можете использовать мастер "Import Drawables" для конвертации ваших SVG изображений в объекты VerctorDrawables
    • Drag&Drop assets: из окна 'менеджера ресурсов' вы можете перетаскивать drawables в ваш дизайн и в XML виджеты редактора размещений ('Layout Editor')
    • Альтернативные версии виджетов: теперь вы можете иметь альтернативные версии ваших ресурсов через двойной клик на ресурсе в окне "Tool". Будут видны различные созданные вами версии и какие они содежат квалификаторы
    • Отображение плиткой или списком: вы можете изменять отображение в окне визуализации ваших ресурсов используя разное их размещение

  • для большей информации обратитесь к руководству Manage app resources



Проверка build IDs при профайлинге и отладке APKs


  • когда вы предоставляете "debugging symbol файлы" общих .so библиотек внутри вашего APK, Android Studio проверяет что build ID у "debugging symbol файлов" соответствует build ID .so-библиотек внутри APK
  • если вы собираете нативные библиотеки в вашем APK с build ID, Android Studio проверяет соответствует ли build ID ваших "symbol файлов" и build ID ваших нативных библиотек и сбрасывает "symbol файлы" если соответствия нет. Если вы не собираете с build ID, то предоставление некорректных "symbol файлов" может приводить к проблемам при отладке

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


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


  • изображение ниже показывает в общих чертах процесс компиляции до R8

    image


  • теперь, с R8, desugaring, сжатие, обфускация, оптимизация и dexing (D8) выполняются за один шаг, как показано ниже

    image


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


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

    <i>#отключение R8 только для Android Library модулей</i>
    android.enableR8.libraries = false</p>
    <p><i>#отключение R8 для всех модулей</i>
    android.enableR8 = false
    


  • ПРИМЕЧАНИЕ: для указанного типа сборки, если вы зададите false для useProguard в файле build.gradle вашего app-модуля, Android Gradle plugin будет использовать R8 для сжатия кода приложения для этого типа сборки, вне зависимости отключен ли R8 в файле gradle.properties вашего проекта



Navigation Editor теперь поддерживает все типы аргументов


  • все типы поддерживаемые компонентом Navigation теперь поддерживаются в Navigation Editor. Для большей информации о поддерживаемых типах см. Pass data between destinations

Улучшения в Layout Editor


  • панель "Attributes" в Layout Editor была упрощена до одной страницы с разделами, которые можно разворачивать для настройки нужных атрибутов. Панель "Attributes" имеет так же следующие обновления:


    • новый раздел "Declared Attributes" перечисляет атрибуты указанные в layout-файле и позволяет быстро добавить новые
    • панель "Attributes" теперь также оснащена индикатором возле каждого атрибута который заполнен когда значением атрибута является ресурс
    • теперь подсвечиваются атрибуты с ошибками и предупреждениями. Красная подсветка указывает на ошибки (например когда вы используете неверные значения размещения), а оранжевая указывает на предупреждения (например, когда вы используете hard-coded значения)


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


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

    image
  • в частности, т.к. Jetpack представлен отдельными пакетами (что облегчает управление ими и обновление), позсказка действия помогает вам быстро добавить только зависимости необходимые Jetpack компонентам которые вы используете

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


  • профайлинг отключается при равёртывании вашего приложения на устройсвах работающих на Android Q Beta
  • когда используется Data Binding Library, LiveDataListener.onChanged() может падать с NullPointerException. Исправление этой проблемы будет включено в Android Studio 3.4.1 и это уже доступно в последней Preview версии Android Studio 3.5 (см. баг 122066788)
Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+5
Комментарии11

Публикации