Android Studio 3.6 (февраль 2020 г.)

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

Мы также хотели бы поблагодарить всех участников нашего сообщества , которые помогли в подготовке этого релиза.

3.6.3 (апрель 2020 г.)

Это небольшое обновление включает в себя исправление различных ошибок. Чтобы ознакомиться со списком наиболее важных исправлений, прочитайте соответствующую статью в блоге «Обновления релизов» .

3.6.2 (март 2020 г.)

Это небольшое обновление включает в себя исправление различных ошибок. Чтобы ознакомиться со списком наиболее важных исправлений, прочитайте соответствующую статью в блоге «Обновления релизов» .

3.6.1 (февраль 2020 г.)

Это небольшое обновление включает в себя исправление различных ошибок. Чтобы ознакомиться со списком наиболее важных исправлений, прочитайте соответствующую статью в блоге «Обновления релизов» .

Инструменты проектирования

В этой версии Android Studio внесены обновления в несколько инструментов проектирования, включая редактор макетов и менеджер ресурсов.

Разделение экрана и масштабирование в редакторах дизайна

В режиме разделенного экрана одновременно отображаются как дизайн, так и текст.

В этот релиз включены следующие обновления для редакторов визуального дизайна:

  • Редакторы дизайна, такие как редактор макета и редактор навигации, теперь предоставляют режим разделенного экрана, позволяющий одновременно видеть как режим дизайна , так и режим кода пользовательского интерфейса. В правом верхнем углу окна редактора теперь расположены три кнопки. просмотр значков для переключения между вариантами просмотра:

    • Чтобы включить режим разделенного экрана, нажмите на значок «Разделить» . значок разделенного экрана .
    • Чтобы включить отображение исходного XML-кода, нажмите значок «Источник» . значок просмотра исходного кода .
    • Чтобы включить режим проектирования, нажмите на значок «Дизайн» . значок режима проектирования .
  • Элементы управления масштабированием и панорамированием в редакторах дизайна перемещены на плавающую панель в правом нижнем углу окна редактора.

Для получения более подробной информации см. раздел «Создание пользовательского интерфейса с помощью редактора макетов» .

Вкладка «Ресурсы палитры цветов»

Чтобы помочь вам быстро обновлять значения цветовых ресурсов в вашем приложении при использовании палитры цветов в XML-файле или инструментов проектирования, IDE теперь автоматически заполняет значения цветовых ресурсов.

Палитра цветов с заполненными значениями цветов

Менеджер ресурсов

Диспетчер ресурсов содержит следующие обновления:

  • Диспетчер ресурсов теперь поддерживает большинство типов ресурсов.
  • При поиске ресурса менеджер ресурсов теперь отображает результаты из всех модулей проекта. Ранее поиск выдавал результаты только из выбранного модуля.
  • Кнопка фильтра позволяет просматривать ресурсы из локальных зависимых модулей, внешних библиотек и фреймворка Android. Вы также можете использовать фильтр для отображения атрибутов темы.
  • Теперь вы можете переименовывать ресурсы во время импорта, щелкнув по текстовому полю над ресурсом.

Для получения более подробной информации см. раздел «Управление ресурсами пользовательского интерфейса вашего приложения с помощью диспетчера ресурсов» .

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

Последняя версия плагина Android Gradle включает множество обновлений, в том числе оптимизацию скорости сборки, поддержку плагина публикации Maven и поддержку View Binding. Для получения более подробной информации ознакомьтесь с полными примечаниями к выпуску .

Просмотреть переплет

Функция привязки представлений позволяет упростить написание кода, взаимодействующего с представлениями, путем генерации класса привязки для каждого XML-файла разметки. Эти классы содержат прямые ссылки на все представления, имеющие идентификатор в соответствующей разметке.

Поскольку метод findViewById() заменяет `findViewById()`, привязка представления исключает риск возникновения исключений NullPointerException из-за недопустимого идентификатора представления.

Для включения привязки представлений необходимо использовать плагин Android Gradle версии 3.6.0 или выше и добавить следующее в файл build.gradle каждого модуля:

Классный

  android {
      buildFeatures.viewBinding = true
  }
  

Котлин

  android {
      buildFeatures.viewBinding = true
  }
  

Применить изменения

Теперь вы можете добавить класс, а затем применить это изменение кода к работающему приложению, нажав либо «Применить изменения кода» , либо «Применить изменения и перезапустить действие» .

Чтобы узнать больше о различиях между этими двумя действиями, см. раздел «Применить изменения» .

Переработайте пункт меню, чтобы включить поддержку мгновенных приложений.

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

  1. Откройте панель «Проект» , выбрав в строке меню пункт «Вид» > «Окна инструментов» > «Проект» .
  2. Щелкните правой кнопкой мыши по базовому модулю, обычно называемому «app», и выберите «Рефакторинг» > «Включить поддержку мгновенных приложений» .
  3. В появившемся диалоговом окне выберите базовый модуль из выпадающего меню.
  4. Нажмите ОК .

Примечание: Возможность мгновенного включения базового модуля приложения в мастере создания нового проекта удалена.

Чтобы узнать больше, прочтите «Обзор Google Play Instant» .

Деобфускация байт-кода классов и методов в APK Analyzer

При использовании APK Analyzer для анализа DEX-файлов деобфускацию байт-кода классов и методов можно выполнить следующим образом:

  1. Выберите в строке меню пункт «Сборка» > «Анализировать APK» .
  2. В появившемся диалоговом окне перейдите к нужному для проверки APK-файлу и выберите его.
  3. Нажмите «Открыть» .
  4. В программе APK Analyzer выберите DEX-файл, который хотите проверить.
  5. В программе просмотра файлов DEX загрузите файл сопоставления ProGuard для анализируемого вами APK-файла.
  6. Щелкните правой кнопкой мыши по классу или методу, который хотите проверить, и выберите «Показать байт-код» .

Встроенные инструменты

Следующие обновления поддерживают разработку нативных приложений (C/C++) в Android Studio.

поддержка Kotlin

Следующие функции NDK в Android Studio, ранее поддерживаемые в Java, теперь также поддерживаются в Kotlin:

  • Переход от объявления JNI к соответствующей функции реализации на C/C++. Просмотреть это соответствие можно, наведя курсор на маркер элемента C или C++ рядом с номером строки в файле управляемого исходного кода.

  • Автоматическое создание заглушки для реализации функции JNI. Сначала определите объявление JNI, а затем введите «jni» или имя метода в файле C/C++ для активации.

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

  • При переименовании (рефакторинге) функции нативной реализации обновляются все соответствующие объявления JNI. Переименование объявления JNI обновляет функцию нативной реализации.

  • Проверка подписи для реализаций JNI с неявной привязкой.

Другие улучшения JNI

В редакторе кода Android Studio теперь реализована более удобная система разработки с использованием JNI, включая улучшенные подсказки типов, автозавершение кода, проверку кода и рефакторинг.

Перезагрузка APK для нативных библиотек {:#3.6-reload-apk}

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

Прикрепляйте исходные коды APK, содержащие только Kotlin.

Теперь можно подключать внешние APK-файлы, написанные только на Kotlin, при профилировании и отладке предварительно скомпилированных APK-файлов. Подробнее см. в разделе «Подключение исходных файлов Kotlin/Java» .

Обнаружение утечек в профилировщике памяти

При анализе дампа памяти в профилировщике памяти теперь можно фильтровать данные профилирования, которые, по мнению Android Studio, могут указывать на утечки памяти для экземпляров Activity и Fragment в вашем приложении.

Фильтр отображает следующие типы данных:

  • Экземпляры Activity , которые были уничтожены, но на которые всё ещё ссылаются.
  • Экземпляры Fragment , у которых отсутствует действительный FragmentManager , но которые всё ещё используются в качестве ссылок.

Прикрепляйте исходные коды APK, содержащие только Kotlin.

Теперь можно подключать внешние APK-файлы, написанные только на Kotlin, при профилировании и отладке предварительно скомпилированных APK-файлов. Подробнее см. в разделе «Подключение исходных файлов Kotlin/Java» .

Обнаружение утечек в профилировщике памяти

При анализе дампа памяти в профилировщике памяти теперь можно фильтровать данные профилирования, которые, по мнению Android Studio, могут указывать на утечки памяти для экземпляров Activity и Fragment в вашем приложении.

Фильтр отображает следующие типы данных:

  • Экземпляры Activity , которые были уничтожены, но на которые всё ещё ссылаются.
  • Экземпляры Fragment , у которых отсутствует действительный FragmentManager , но которые всё ещё используются в качестве ссылок.

В некоторых ситуациях, например, в следующих, фильтр может давать ложные срабатывания:

  • Fragment создан, но ещё не использован.
  • Fragment кэшируется, но не как часть FragmentTransaction .

Для использования этой функции сначала сделайте дамп кучи или импортируйте файл дампа кучи в Android Studio. Чтобы отобразить фрагменты и действия, которые могут вызывать утечку памяти, установите флажок « Утечки активности/фрагмента» на панели дампа кучи в профилировщике памяти.

Профайлер: обнаружение утечек памяти

Фильтрация дампа памяти на предмет утечек памяти.

Эмуляторы

Android Studio 3.6 позволяет воспользоваться преимуществами ряда обновлений, включенных в эмулятор Android версии 29.2.7 и выше, как описано ниже.

Улучшена поддержка определения местоположения.

Эмулятор Android версии 29.2.7 и выше обеспечивает дополнительную поддержку эмуляции GPS-координат и информации о маршруте. При открытии расширенных элементов управления эмулятора параметры на вкладке «Местоположение» теперь организованы в две вкладки: «Отдельные точки» и «Маршруты» .

Отдельные точки

На вкладке «Отдельные точки » вы можете использовать веб-просмотр Google Maps для поиска точек интереса, так же, как и при использовании Google Maps на телефоне или в браузере. При поиске или щелчке по местоположению на карте вы можете сохранить его, выбрав «Сохранить точку» в нижней части карты. Все сохраненные местоположения отображаются в правой части окна расширенных элементов управления .

Чтобы установить местоположение эмуляторов в выбранное вами место на карте, нажмите кнопку «Установить местоположение» в правом нижнем углу окна «Расширенные элементы управления» .

Вкладка «Отдельные точки» в разделе «Расширенные элементы управления эмулятора». .

Маршруты

Аналогично вкладке «Отдельные точки» , вкладка «Маршруты» предоставляет веб-представление Google Maps, которое можно использовать для создания маршрута между двумя или более точками. Чтобы создать и сохранить маршрут, выполните следующие действия:

  1. В режиме карты используйте текстовое поле для поиска первого пункта назначения на вашем маршруте.
  2. Выберите местоположение из результатов поиска.
  3. Нажмите кнопку «Навигация» .
  4. Выберите начальную точку маршрута на карте.
  5. (Необязательно) Нажмите «Добавить пункт назначения» , чтобы добавить дополнительные остановки к вашему маршруту.
  6. Сохраните свой маршрут, нажав кнопку «Сохранить маршрут» на карте.
  7. Укажите название маршрута и нажмите «Сохранить» .

Чтобы имитировать движение эмулятора по сохраненному маршруту, выберите маршрут из списка сохраненных маршрутов и нажмите кнопку «Воспроизвести маршрут» в правом нижнем углу окна расширенных элементов управления . Чтобы остановить имитацию, нажмите кнопку «Остановить маршрут» .

Вкладка «Маршруты» в разделе «Расширенные элементы управления эмулятора». .

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

Поддержка нескольких дисплеев

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

  1. Откройте расширенные элементы управления и перейдите на вкладку «Дисплеи» .

  2. Добавьте еще один дисплей, нажав кнопку «Добавить дополнительный дисплей» .

  3. В выпадающем меню в разделе «Дополнительные дисплеи» выполните одно из следующих действий:

  4. Выберите одно из предустановленных соотношений сторон.

  5. Выберите «Пользовательский» и задайте высоту , ширину и разрешение (dpi) для вашего пользовательского дисплея.

  6. (Необязательно) Нажмите «Добавить дополнительный дисплей» , чтобы добавить третий дисплей.

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

Добавление нескольких дисплеев: Расширенные элементы управления эмулятора, вкладка «Дисплей».

Новые виртуальные устройства и шаблоны проектов для Android Automotive OS.

При создании нового проекта в Android Studio теперь можно выбрать один из трех шаблонов на вкладке «Автомобильные устройства» в мастере создания нового проекта : «Без активности» , «Медиасервис» и «Сервис сообщений» . Для существующих проектов можно добавить поддержку устройств Android Automotive, выбрав в строке меню «Файл» > «Создать» > «Новый модуль » и выбрав «Автомобильный модуль» . Затем мастер создания нового модуля проведет вас через процесс создания нового модуля с использованием одного из шаблонов проекта Android Automotive.

Выбор шаблона проекта для Android Automotive. .

Кроме того, теперь вы можете создать виртуальное устройство Android (AVD) для устройств Android Automotive OS, выбрав один из следующих вариантов на вкладке Automotive в мастере настройки виртуального устройства .

  1. Polestar 2 : Создайте AVD, который эмулирует головное устройство Polestar 2.
  2. Автомобильная тематика (1024p альбомная ориентация) : Создайте AVD для стандартных автомобильных головных устройств Android с разрешением 1024 x 768 пикселей.

Выбор виртуального устройства Android Automotive. .

Возобновляемая загрузка SDK

При загрузке компонентов и инструментов SDK с помощью SDK Manager, Android Studio теперь позволяет возобновлять прерванные загрузки (например, из-за проблем с сетью) вместо начала загрузки с самого начала. Это улучшение особенно полезно для больших файлов, таких как эмулятор Android или образы системы, когда подключение к интернету нестабильно.

Кроме того, если у вас запущена задача загрузки SDK в фоновом режиме, теперь вы можете приостановить или возобновить загрузку, используя элементы управления в строке состояния.

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

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

Win32 устарел

После декабря 2019 года 32-битная версия Android Studio для Windows перестанет получать обновления, а после декабря 2020 года поддержка программы прекратится. Вы можете продолжать использовать Android Studio. Однако для получения дополнительных обновлений обновите свою рабочую станцию ​​до 64-битной версии Windows.

Чтобы узнать больше, прочтите статью в блоге об устаревании 32-битной версии Windows.

Новая опция для оптимизации времени синхронизации Gradle.

В предыдущих версиях Android Studio получала список всех задач Gradle во время синхронизации Gradle. Для больших проектов получение списка задач могло привести к замедлению синхронизации.

Для повышения производительности синхронизации Gradle перейдите в меню Файл > Настройки > Экспериментальные и выберите пункт Не создавать список задач Gradle во время синхронизации Gradle.

При включении этой опции Android Studio пропускает создание списка задач во время синхронизации, что позволяет Gradle Sync завершаться быстрее и улучшает отзывчивость пользовательского интерфейса. Имейте в виду, что когда IDE пропускает создание списка задач, списки задач на панели Gradle пусты, и автозавершение имен задач в файлах сборки не работает.

Новое место для переключения в автономный режим Gradle.

Чтобы включить или отключить автономный режим Gradle, сначала выберите в строке меню «Вид» > «Окна инструментов» > «Gradle» . Затем в верхней части окна Gradle нажмите «Переключить автономный режим». Кнопка "Grade offline" на панели Gradle. .

IntelliJ IDEA 2019.2

В базовой среде разработки Android Studio были внесены улучшения, заимствованные из IntelliJ IDEA, вплоть до версии 2019.2 .

Чтобы узнать больше об улучшениях, внесенных в другие версии IntelliJ и включенных в версию 2019.2, см. следующие страницы:

Участники сообщества

Благодарим всех участников нашего сообщества, которые помогли нам обнаружить ошибки и найти другие способы улучшения Android Studio 3.6. В частности, мы хотели бы поблагодарить следующих людей, сообщивших об ошибках:

  • Альберт Ло
  • Алексей Ротт
  • Андреа Леганза
  • Бенедикт Кольб
  • Сесар Пуэрта
  • Кертис Кроетч
  • Дамиан Вечорек
  • Дэн Лью
  • Дэвид Бурстрём
  • Дипаншу
  • Егор Андреевичи
  • Эли Грейбер
  • Эмин Кокалари
  • Эван Татарка
  • Франтишек Надь
  • Грег Моэнс
  • Ханнес Ахляйтнер
  • Ханс Петтер Эйде
  • Хеннинг Бунк
  • Хьюго Виссер
  • Игорь Эскодро
  • Иньяки Вильяр
  • Javentira Lienata
  • Джо Роджерс
  • Кристоффер Даниэльссон
  • Лиран Барсиса
  • Луис КАД
  • Лорант Пинтер
  • Лукаш Васылковский
  • Люк Фильке
  • Мальвин Сутанто
  • Масатоши Кубоде
  • Мэтью Уинтерс
  • Майкл Бейли
  • Михал Горный
  • Михай Неаксу
  • Майк Скамелл
  • Монте Кризор
  • Нельсон Осаки
  • Нельсон Осаки
  • Ник Фирмани
  • Никлас Ансман Гирц
  • Никлас Крон
  • Николас Лихтмайер
  • Ник Хаарман
  • Нильс ван Хове
  • Никлас Боди
  • Ренато Гонсалвес
  • Roar Grønmo
  • Руслан Баратов
  • Синан Козак
  • Славомир Червинский
  • Стефан Вольф
  • Стивен Д'Амико
  • Тао Ван
  • Томаш Хладек
  • Томаш Прохазка
  • Тони Робалик
  • Торбьорн Сёрли
  • Уоррен Хе
  • Йенчи Лин
  • Зак Свирс