Android Studio 3.2 (сентябрь 2018 г.)
Android Studio 3.2 — это крупный релиз, включающий множество новых функций и улучшений.
3.2.1 (октябрь 2018 г.)
Это обновление Android Studio 3.2 включает следующие изменения и исправления:
- Входящая в комплект версия Kotlin теперь имеет номер 1.2.71.
- Версия инструментов сборки по умолчанию теперь 28.0.3.
- В библиотеке навигации типы аргументов были переименованы из
type
вargType
. - Исправлены следующие ошибки:
- При использовании библиотеки привязки данных имена переменных с подчеркиванием вызывали ошибки компиляции.
- CMake приводил к сбоям в работе IntelliSense и других функций CLion.
- Добавление
SliceProvider
вызывало ошибки компиляции в проектах, не использующих библиотекиandroidx.*
. - Некоторые модульные тесты Kotlin не запускались.
- Проблема с привязкой данных вызывала исключение
PsiInvalidElementAccessException
. - Элементы
<merge>
иногда вызывали сбой редактора макетов.
3.2.0 известные проблемы
Примечание: эти проблемы были решены в Android Studio 3.2.1.
Мы настоятельно не рекомендуем использовать Kotlin версии 1.2.70.
В версии Kotlin 1.2.61 исправлена ошибка, которая могла привести к зависанию Android Studio, но в версии Kotlin 1.2.70 это исправление отсутствует .
Однако версии Kotlin 1.2.71 и более поздние включают это исправление.
Хотя обычно вам не нужно указывать версию инструментов сборки, при использовании плагина Android Gradle 3.2.0 с
renderscriptSupportModeEnabled
, установленным в значениеtrue
, вам необходимо включить следующее в файлbuild.gradle
каждого модуля:android.buildToolsVersion "28.0.3"
Что нового в Помощнике
Новый помощник информирует вас о последних изменениях в Android Studio.
Помощник открывается при запуске Android Studio после новой установки или обновления, если он обнаруживает новую информацию для отображения. Вы также можете открыть помощника, выбрав «Справка» > «Что нового в Android Studio» .
Android Jetpack
Android Jetpack помогает ускорить разработку приложений для Android с помощью компонентов, инструментов и рекомендаций, которые устраняют повторяющиеся задачи и позволяют быстрее и проще создавать высококачественные, легко тестируемые приложения. Android Studio включает следующие обновления для поддержки Jetpack. Подробнее см. в документации Jetpack .
Редактор навигации
Новый редактор навигации интегрируется с компонентами навигации Android Jetpack, предоставляя графическое представление для создания структуры навигации вашего приложения. Редактор навигации упрощает проектирование и реализацию навигации между разделами приложения.
В Android Studio 3.2 редактор навигации является экспериментальной функцией. Чтобы включить редактор навигации, нажмите «Файл» > «Настройки» ( Android Studio > «Настройки» на Mac), выберите категорию «Экспериментальные» на левой панели, установите флажок «Включить редактор навигации» и перезапустите Android Studio.
Более подробную информацию см. в документации по редактору навигации .
Миграция AndroidX
В рамках Jetpack мы переносим библиотеки поддержки Android в новую библиотеку расширений Android, использующую пространство имён androidx
. Подробнее см. в обзоре AndroidX .
Android Studio 3.2 поможет вам в этом процессе с помощью новой функции миграции.
Чтобы перенести существующий проект в AndroidX, выберите «Рефакторинг» > «Миграция в AndroidX» . Если у вас есть зависимости Maven, которые не были перенесены в пространство имён AndroidX, система сборки Android Studio также автоматически преобразует эти зависимости проекта.
Плагин Android Gradle предоставляет следующие глобальные флаги, которые можно установить в файле gradle.properties
:
-
android.useAndroidX
: если этот флаг установлен вtrue
, это означает, что вы хотите начать использовать AndroidX с этого момента. Если флаг отсутствует, Android Studio ведёт себя так, как если бы ему было присвоено значениеfalse
. -
android.enableJetifier
: если этот флаг установлен вtrue
, это означает, что вы хотите использовать поддержку инструмента (из плагина Android Gradle) для автоматического преобразования существующих сторонних библиотек, как если бы они были написаны для AndroidX. Если флаг отсутствует, Android Studio ведёт себя так, как если бы ему было установлено значениеfalse
.
При использовании команды «Миграция на AndroidX» оба флага устанавливаются в true
.
Если вы хотите немедленно начать использовать библиотеки AndroidX и вам не нужно конвертировать существующие сторонние библиотеки, вы можете установить флаг android.useAndroidX
в true
, а флаг android.enableJetifier
в значение false
.
Пакет приложений для Android
Android App Bundle — это новый формат загрузки, который включает в себя весь скомпилированный код и ресурсы вашего приложения, но откладывает генерацию APK и подписание в Google Play Store.
Новая модель обслуживания приложений Google Play использует ваш комплект приложений для создания и обслуживания оптимизированных APK-файлов для конфигурации устройства каждого пользователя, поэтому каждый пользователь загружает только тот код и ресурсы, которые ему необходимы для работы вашего приложения. Вам больше не нужно создавать, подписывать и управлять несколькими APK-файлами, а пользователи получают более компактные и оптимизированные загрузки.
Кроме того, вы можете добавить модули функций в свой проект приложения и включить их в комплект App Bundle. После этого пользователи смогут загружать и устанавливать функции вашего приложения по запросу.
Чтобы собрать пакет, выберите «Сборка» > «Сборка пакета(ов)/APK» > «Сборка пакета(ов)» .
Дополнительную информацию, включая инструкции по созданию и анализу Android App Bundle, см. в разделе Android App Bundle .
Примеры данных в редакторе макетов
Многие макеты Android содержат данные времени выполнения, которые могут затруднять визуализацию внешнего вида макета на этапе проектирования приложения. Теперь вы можете легко увидеть предварительный просмотр вашего представления в редакторе макетов с примерами данных. При добавлении представления кнопка Кнопка отображается под представлением в окне «Конструктор». Нажмите эту кнопку, чтобы задать атрибуты представления во время разработки. Вы можете выбрать один из множества шаблонов примеров данных и указать количество элементов, которыми будет заполнено представление.
Чтобы попробовать использовать пример данных, добавьте RecyclerView
в новый макет и нажмите кнопку атрибутов времени разработки. под представлением и выберите нужный вариант из карусели с примерами шаблонов данных.
Ломтики
Фрагменты предоставляют новый способ встраивания частей функциональности вашего приложения в другие элементы пользовательского интерфейса Android. Например, фрагменты позволяют отображать функциональность и контент приложения в подсказках поиска Google.
В Android Studio 3.2 имеется встроенный шаблон, который поможет вам расширить свое приложение с помощью новых API-интерфейсов поставщика слайсов, а также новых проверок lint, которые позволят вам убедиться, что вы следуете лучшим практикам при создании слайсов.
Чтобы начать работу, щелкните правой кнопкой мыши папку проекта и выберите «Создать» > «Другое» > «Поставщик срезов» .
Чтобы узнать больше, в том числе о том, как протестировать взаимодействие со Slice, прочтите руководство по началу работы со Slice .
Котлин 1.2.61
Android Studio 3.2 включает Kotlin 1.2.61, а новый Android SDK лучше интегрируется с Kotlin. Подробнее см. в блоге разработчиков Android .
IntelliJ IDEA 2018.1.6
Основная среда разработки Android Studio IDE обновлена с учетом улучшений IntelliJ IDEA в версии 2018.1.6 .
Профилировщики Android
Попробуйте следующие новые функции Android Profiler в Android Studio 3.2.
Сессии
Теперь вы можете сохранять данные профилировщика в виде сеансов, чтобы вернуться к ним и изучить позже. Профилировщик сохраняет данные сеансов до перезапуска IDE.
Когда вы записываете трассировку метода или получаете дамп кучи , IDE добавляет эти данные (вместе с сетевой активностью вашего приложения) как отдельную запись в текущий сеанс, и вы можете легко переключаться между записями для сравнения данных.
Системная трассировка
В CPU Profiler выберите новую конфигурацию System Trace, чтобы проверить загрузку процессора и активность потоков вашего устройства. Эта конфигурация трассировки основана на systrace
и полезна для исследования проблем на системном уровне, таких как подтормаживания пользовательского интерфейса.
Используя эту конфигурацию трассировки, вы можете визуально отмечать важные процедуры кода на временной шкале профилировщика, оснастив свой код C/C++ собственным API трассировки или свой код Java — классом Trace
.
Проверьте ссылки JNI в профилировщике памяти
Если вы развертываете свое приложение на устройстве под управлением Android 8.0 (уровень API 26) или выше, теперь вы можете проверить выделение памяти для кода JNI вашего приложения с помощью Memory Profiler .
Во время работы приложения выберите область временной шкалы, которую хотите проверить, и выберите «Куча JNI» в раскрывающемся меню над списком классов, как показано ниже. После этого вы можете просматривать объекты в куче как обычно и дважды щёлкать объекты на вкладке « Стек вызовов распределения», чтобы увидеть, где в вашем коде выделяются и освобождаются ссылки JNI.

Импорт, экспорт и проверка файлов дампа кучи памяти
Теперь вы можете импортировать, экспортировать и проверять файлы дампа кучи памяти .hprof
, созданные с помощью Memory Profiler .
Импортируйте файл .hprof
, нажав «Начать новый сеанс профилирования». на панели «Сеансы» профилировщика, затем выберите «Загрузить из файла» . После этого вы сможете просмотреть данные в профилировщике памяти, как и любой другой дамп кучи.
Чтобы сохранить данные дампа кучи для последующего просмотра, нажмите кнопку «Экспортировать дамп кучи» справа от записи « Дамп кучи» на панели « Сеансы» . В открывшемся диалоговом окне «Экспортировать как» сохраните файл с расширением .hprof
.
Запись активности ЦП во время запуска приложения
Теперь вы можете записывать активность ЦП во время запуска вашего приложения следующим образом:
- В главном меню выберите Выполнить > Изменить конфигурации .
- На вкладке Профилирование нужной конфигурации запуска установите флажок рядом с опцией Начать запись трассировки метода при запуске .
- Выберите конфигурацию записи ЦП из раскрывающегося меню.
- Разверните приложение на устройстве под управлением Android 8.0 (уровень API 26) или выше, выбрав Запустить > Профиль .
Экспорт трассировок ЦП
После регистрации активности ЦП с помощью CPU Profiler вы можете экспортировать данные в виде файла .trace
, чтобы поделиться ими с другими или изучить их позже.
Чтобы экспортировать трассировку после записи активности ЦП, выполните следующие действия:
- Щелкните правой кнопкой мыши по записи, которую вы хотите экспортировать из временной шкалы ЦП.
- В раскрывающемся меню выберите Экспорт трассировки .
- Перейдите туда, где вы хотите сохранить файл, и нажмите кнопку Сохранить .
Импорт и проверка файлов трассировки ЦП
Теперь вы можете импортировать и проверять файлы .trace
, созданные с помощью Debug API или CPU Profiler . (В настоящее время импорт записей System Trace невозможен.)
Импортируйте файл трассировки, нажав «Начать новый сеанс профилирования». на панели «Сеансы» профилировщика, затем выберите «Загрузить из файла» . После этого вы сможете просматривать данные в профилировщике ЦП, как обычно, за исключением следующих случаев:
- Активность ЦП не отображается на временной шкале ЦП.
- Временная шкала активности потока показывает только, где доступны данные трассировки для каждого потока, а не фактические состояния потока (например, выполнение, ожидание или сон).
Запись активности ЦП с помощью отладочного API
Теперь вы можете запускать и останавливать запись активности ЦП в CPU Profiler, оснастив приложение API отладки . После развертывания приложения на устройстве профилировщик автоматически начинает запись активности ЦП, когда приложение вызывает startMethodTracing(String tracePath)
, и останавливает запись, когда приложение вызывает stopMethodTracing()
. При записи активности ЦП, инициированной с помощью этого API, CPU Profiler отображает API отладки в качестве выбранной конфигурации записи ЦП.
Энергетический профайлер
Energy Profiler наглядно отображает предполагаемое энергопотребление вашего приложения, а также системные события, которые влияют на энергопотребление, такие как блокировки сна, сигналы тревоги и задания.
Профилировщик энергии отображается в виде новой строки в нижней части окна Профилировщика при запуске приложения на подключенном устройстве или эмуляторе Android под управлением Android 8.0 (API 26) или выше.
Щелкните строку «Энергия» , чтобы развернуть представление «Профилировщик энергии». Наведите указатель мыши на временную шкалу, чтобы увидеть распределение энергопотребления по ресурсам процессора, сети и местоположения (GPS), а также соответствующие системные события.
Системные события, влияющие на энергопотребление, отображаются на временной шкале «Система» под временной шкалой «Энергия» . Подробная информация о системных событиях в указанном временном диапазоне отображается на панели событий при выборе временного диапазона на временной шкале «Энергия» .
Чтобы просмотреть стек вызовов и другие сведения о системном событии, например, о пробуждении, выберите его на панели событий. Чтобы перейти к коду, ответственному за системное событие, дважды щёлкните запись в стеке вызовов.
Проверка ворса
Android Studio 3.2 включает множество новых и улучшенных функций для проверки линта .
Новые проверки lint помогают находить и идентифицировать распространенные проблемы кода: от предупреждений о потенциальных проблемах с удобством использования до высокоприоритетных ошибок, связанных с потенциальными уязвимостями безопасности.
Lint проверяет совместимость Java/Kotlin
Чтобы обеспечить взаимодействие вашего кода Java с кодом Kotlin, новые проверки lint реализуют лучшие практики, описанные в руководстве по взаимодействию с Kotlin . Примеры таких проверок включают поиск аннотаций Nullability, использование жёстких ключевых слов Kotlin и размещение лямбда-параметров в конце.
Чтобы включить эти проверки, нажмите Файл > Настройки ( Android Studio > Настройки на Mac), чтобы открыть диалоговое окно настроек , перейдите в раздел Редактор > Проверки > Android > Lint > Взаимодействие > Взаимодействие с Kotlin и выберите правила, которые вы хотите включить.

Чтобы включить эти проверки для сборок из командной строки, добавьте в файл build.gradle
следующее:
android {
lintOptions {
check 'Interoperability'
}
}
Проверка линта на наличие слайсов
Новые проверки линта для срезов помогают гарантировать их корректное создание. Например, проверки линта предупреждают, если срезу не назначено основное действие.
Новая цель Gradle
Используйте новую задачу Gradle lintFix
, чтобы применить все безопасные исправления, предложенные lint-проверкой, непосредственно к исходному коду. Примером lint-проверки, предлагающей безопасное исправление, является SyntheticAccessor
.
Обновления метаданных
Различные метаданные, такие как проверка приведения сервиса, были обновлены для проверки lint для работы с Android 9 (уровень API 28).
Предупреждение при запуске lint на новом варианте
Lint теперь записывает, с каким вариантом и версией была записана базовая линия, и lint предупреждает вас, если вы запускаете его с вариантом, отличным от того, с которым была создана базовая линия.
Улучшения существующих проверок ворса
В Android Studio 3.2 реализовано множество улучшений существующих проверок линтинга. Например, проверки цикла ресурсов теперь применяются к дополнительным типам ресурсов, а детектор переводов может находить отсутствующие переводы «на лету» прямо в редакторе.
Идентификаторы проблем стали более доступными для обнаружения
Идентификаторы проблем теперь отображаются в большем количестве мест, в том числе в окне «Результаты проверки» . Это упрощает поиск информации, необходимой для включения или отключения определённых проверок через lintOptions
в build.gradle
.
Дополнительные сведения см. в разделе Настройка параметров lint с помощью Gradle .
Привязка данных V2
Data Binding V2 теперь включен по умолчанию и совместим с V1. Это означает, что если у вас есть зависимости библиотек, скомпилированных с помощью V1, вы можете использовать их в проектах, использующих Data Binding V2. Однако обратите внимание, что проекты, использующие V1, не могут использовать зависимости, скомпилированные с помощью V2.
D8 десугаризация
В Android Studio 3.1 мы интегрировали этап дешугаринга в инструмент D8 в качестве экспериментальной функции, что сократило общее время сборки. В Android Studio 3.2 дешугаринг с помощью D8 включен по умолчанию.
Новый укоротитель кода
R8 — это новый инструмент для сжатия и обфускации кода, пришедший на смену ProGuard. Вы можете начать использовать предварительную версию R8, добавив следующие строки в файл gradle.properties
вашего проекта:
android.enableR8 = true
Изменены ABI по умолчанию для мультиAPK
При создании нескольких APK , каждый из которых ориентирован на отдельный ABI, плагин больше не генерирует APK для следующих ABI по умолчанию: mips
, mips64
и armeabi
.
Если вы хотите собрать APK, ориентированные на эти ABI, необходимо использовать NDK r16b или ниже и указать ABI в файле build.gradle
, как показано ниже:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Примечание: это изменение поведения также включено в Android Studio 3.1 RC1 и более поздние версии.
Улучшенные функции редактора для файлов сборки CMake
Если вы используете CMake для добавления кода C и C++ в свой проект , Android Studio теперь включает улучшенные функции редактора, которые помогут вам редактировать скрипты сборки CMake, например следующие:
- Подсветка синтаксиса и автодополнение кода: IDE теперь подсвечивает и предлагает варианты автодополнения кода для распространённых команд CMake. Кроме того, вы можете перейти к файлу, щёлкнув по нему с удержанием клавиши Control (Command на Mac).
- Переформатирование кода: теперь вы можете использовать функцию переформатирования кода IntelliJ, чтобы применять стили кода к скриптам сборки CMake.
- Безопасный рефакторинг: встроенные в IDE инструменты рефакторинга теперь также проверяют, переименовываете ли вы или удаляете файлы, на которые вы ссылаетесь в скриптах сборки CMake.
Навигация по внешним заголовочным файлам
В предыдущих версиях Android Studio при использовании окна «Проект» можно было просматривать и проверять только заголовочные файлы, принадлежащие библиотекам, собранным из локального проекта. В этой версии вы также можете просматривать и проверять заголовочные файлы, входящие в зависимости от внешних библиотек C/C++, импортируемых в проект приложения.
Если вы уже включили код и библиотеки C/C++ в свой проект , откройте окно «Проект» в левой части IDE, выбрав «Вид» > «Окна инструментов» > «Проект» в главном меню и выберите «Android» в раскрывающемся меню. В каталоге cpp все заголовочные файлы, относящиеся к проекту вашего приложения, организованы в узле include для каждой из локальных зависимостей библиотек C/C++, как показано ниже.

Собственный мультидекс включен по умолчанию
Предыдущие версии Android Studio включали встроенную поддержку мультидекса при развёртывании отладочной версии приложения на устройстве с API Android уровня 21 или выше. Теперь, независимо от того, развёртываете ли вы приложение на устройстве или собираете APK для релиза, плагин Android для Gradle включает встроенную поддержку мультидекса для всех модулей, для которых minSdkVersion=21
или выше.
AAPT2 перенесен в репозиторий Maven от Google
Начиная с Android Studio 3.2, источником AAPT2 (Android Asset Packaging Tool 2) является репозиторий Maven от Google.
Чтобы использовать AAPT2, убедитесь, что в вашем файле build.gradle
есть зависимость google()
, как показано здесь:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
Новая версия AAPT2 исправляет множество проблем, включая улучшенную обработку не-ASCII символов в Windows.
Удаление конфигурации по требованию
Параметр «Настроить по требованию » удален из Android Studio.
Android Studio больше не передает аргумент --configure-on-demand
в Gradle.
Помощник по подключению к ADB
Новый помощник по подключению ADB предоставляет пошаговые инструкции, которые помогут вам настроить и использовать устройство через подключение Android Debug Bridge (ADB) .
Чтобы запустить помощника, выберите «Инструменты» > «Помощник подключения» .
Помощник по подключению ADB предоставляет инструкции, контекстные элементы управления и список подключенных устройств на нескольких страницах панели Помощника .
Улучшения эмулятора
Теперь вы можете в любой момент сохранять и загружать снимки AVD (виртуального устройства Android) в эмуляторе Android, что позволяет быстро и легко вернуть эмулированное устройство в известное состояние для тестирования. При редактировании AVD с помощью AVD Manager вы можете указать, какой снимок AVD следует загружать при его запуске.
Элементы управления сохранением, загрузкой и управлением снимками AVD теперь находятся на вкладке «Снимки» в окне расширенных элементов управления эмулятора.
Подробности смотрите в разделе Снимки .
Дополнительную информацию о новых возможностях и изменениях в эмуляторе см. в примечаниях к выпуску эмулятора .