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. - Исправлены следующие ошибки:
- При использовании библиотеки Data Binding имена переменных, содержащие подчеркивания, вызывали ошибки компиляции.
- 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.
Оба флага устанавливаются в true при использовании команды Migrate to AndroidX .
Если вы хотите сразу начать использовать библиотеки AndroidX и вам не нужно конвертировать существующие сторонние библиотеки, вы можете установить флаг android.useAndroidX в true и флаг android.enableJetifier в false .
Пакет приложений для Android
Android App Bundle — это новый формат загрузки, который включает весь скомпилированный код и ресурсы вашего приложения, но откладывает генерацию и подпись APK-файла до Google Play Store.
Новая модель запуска приложений в Google Play использует ваш пакет приложения для генерации и предоставления оптимизированных APK-файлов для конфигурации устройства каждого пользователя, поэтому каждый пользователь загружает только тот код и ресурсы, которые ему необходимы для запуска вашего приложения. Вам больше не нужно создавать, подписывать и управлять множеством APK-файлов, а пользователи получают более компактные и оптимизированные загрузки.
Кроме того, вы можете добавлять функциональные модули в свой проект приложения и включать их в пакет приложения. Таким образом, пользователи смогут загружать и устанавливать функции вашего приложения по запросу.
Чтобы создать пакет, выберите Сборка > Создать пакет(ы) / APK(ы) > Создать пакет(ы) .
Для получения дополнительной информации, включая инструкции по созданию и анализу пакета приложений Android, см. раздел «Пакет приложений Android» .
Пример данных в редакторе макета
Многие макеты Android содержат данные, хранящиеся во время выполнения, что может затруднить визуализацию внешнего вида макета на этапе проектирования приложения. Теперь вы можете легко увидеть предварительный просмотр вашего представления в редакторе макетов, заполненном примерами данных. При добавлении представления появляется кнопка.
Эта кнопка отображается под окном «Конструктор». Нажмите её, чтобы задать атрибуты представления на этапе проектирования. Вы можете выбрать один из множества шаблонов примеров данных и указать количество примеров элементов, которыми будет заполнено представление.
Чтобы попробовать использовать тестовые данные, добавьте RecyclerView в новый макет и нажмите кнопку атрибутов, доступных в режиме проектирования.
Ниже в окне просмотра выберите нужный шаблон из карусели примеров данных.
Ломтики
Слайсы предоставляют новый способ встраивания частей функциональности вашего приложения в другие элементы пользовательского интерфейса на Android. Например, слайсы позволяют отображать функциональность и контент приложения в подсказках поиска Google.
В Android Studio 3.2 встроен шаблон, который поможет вам расширить возможности вашего приложения с помощью новых API-интерфейсов Slice Provider, а также новые проверки кода, гарантирующие соблюдение лучших практик при создании срезов.
Для начала щелкните правой кнопкой мыши папку проекта и выберите Создать > Другое > Поставщик срезов .
Чтобы узнать больше, в том числе о том, как протестировать взаимодействие с Slices, прочтите руководство по началу работы со Slices .
Kotlin 1.2.61
В состав Android Studio 3.2 входит Kotlin 1.2.61, а новый Android SDK лучше интегрируется с Kotlin. Для получения дополнительной информации см. блог разработчиков Android .
IntelliJ IDEA 2018.1.6
В базовой среде разработки Android Studio были внесены улучшения, заимствованные из IntelliJ IDEA, вплоть до версии 2018.1.6 .
Профайлеры Android
Попробуйте следующие новые функции профилировщика Android в Android Studio 3.2.
Сессии
Теперь вы можете сохранять данные профилировщика в виде сессий , чтобы вернуться к ним и изучить их позже. Профайлер хранит данные вашей сессии до перезапуска IDE.
При записи трассировки метода или создании дампа памяти IDE добавляет эти данные (вместе с сетевой активностью вашего приложения) в качестве отдельной записи к текущей сессии, и вы можете легко переключаться между записями для сравнения данных.
Трассировка системы
В профилировщике ЦП выберите новую конфигурацию трассировки системы , чтобы проверить активность ЦП и потоков вашего устройства. Эта конфигурация трассировки основана на systrace и полезна для исследования проблем системного уровня, таких как задержки в работе пользовательского интерфейса.
При использовании этой конфигурации трассировки вы можете визуально отмечать важные подпрограммы в профилировщике, используя собственный API трассировки для вашего кода на C/C++ или класс Trace для вашего кода на Java.
Проверьте ссылки JNI в профилировщике памяти.
Если вы развертываете свое приложение на устройстве под управлением Android 8.0 (уровень API 26) или выше, теперь вы можете проверять выделение памяти для кода JNI вашего приложения с помощью профилировщика памяти .
Во время работы приложения выберите участок временной шкалы, который хотите просмотреть, и выберите «Куча 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, используя Debug API для своего приложения. После развертывания приложения на устройстве профилировщик автоматически начинает запись активности ЦП, когда ваше приложение вызывает startMethodTracing(String tracePath) , и останавливает запись, когда ваше приложение вызывает stopMethodTracing() . Во время записи активности ЦП, запускаемой с помощью этого API, CPU Profiler отображает Debug API в качестве выбранной конфигурации записи ЦП.
Энергетический профилировщик
Функция «Профилировщик энергопотребления» отображает визуализацию предполагаемого энергопотребления вашего приложения, а также системные события, влияющие на энергопотребление, такие как блокировки пробуждения, будильники и задания.
При запуске приложения на подключенном устройстве или эмуляторе Android с операционной системой Android 8.0 (API 26) или выше, профилировщик энергии отображается в виде новой строки в нижней части окна профилировщика .
Щелкните строку «Энергия» , чтобы развернуть окно «Профилировщик энергопотребления». Наведите указатель мыши на полосу на временной шкале, чтобы увидеть разбивку энергопотребления по ресурсам ЦП, сети и местоположения (GPS), а также соответствующие системные события.
Системные события, влияющие на энергопотребление, отображаются на временной шкале системы , расположенной под временной шкалой энергопотребления . Подробная информация о системных событиях в указанном временном диапазоне отображается в панели событий при выборе временного диапазона на временной шкале энергопотребления .
Чтобы просмотреть стек вызовов и другие подробности системного события, например, блокировки пробуждения, выберите его в панели событий. Чтобы перейти к коду, ответственному за системное событие, дважды щелкните запись в стеке вызовов.
Проверка синтаксиса
В Android Studio 3.2 включено множество новых и улучшенных функций для проверки синтаксиса .
Новые проверки синтаксиса помогают находить и выявлять распространенные проблемы в коде, начиная от предупреждений о потенциальных проблемах с удобством использования и заканчивая серьезными ошибками, связанными с потенциальными уязвимостями безопасности.
Lint проверяет совместимость Java и Kotlin.
Чтобы обеспечить корректную совместимость вашего Java-кода с Kotlin-кодом, новые проверки линтера обеспечивают соблюдение лучших практик, описанных в руководстве по взаимодействию Kotlin . Примеры таких проверок включают проверку наличия аннотаций Nullability, использование жестких ключевых слов Kotlin и размещение параметров лямбда-выражений в конце.
Чтобы включить эти проверки, щелкните Файл > Настройки ( Android Studio > Настройки на Mac), чтобы открыть диалоговое окно настроек , перейдите в раздел Редактор > Инспекции > Android > Lint > Взаимодействие > Взаимодействие с Kotlin и выберите правила, которые вы хотите включить.

Чтобы включить эти проверки для сборок из командной строки, добавьте следующее в файл build.gradle :
android {
lintOptions {
check 'Interoperability'
}
}
Проверка синтаксиса для фрагментов кода
Новые проверки синтаксиса для срезов помогают убедиться в правильности их построения. Например, проверки синтаксиса предупреждают, если вы не назначили срезу основное действие.
Новая цель Gradle
Используйте новую задачу Gradle lintFix , чтобы применить все безопасные исправления, предложенные проверкой линтера, непосредственно к исходному коду. Примером проверки линтера, предлагающей безопасное исправление для применения, является SyntheticAccessor .
Обновления метаданных
Для корректной работы с Android 9 (уровень API 28) были обновлены различные метаданные, такие как проверка привязки сервиса.
Предупреждение при запуске проверки синтаксиса на новом варианте.
Теперь Lint записывает, для какого варианта и версии был создан базовый вариант, и lint предупреждает вас, если вы запускаете его на варианте, отличном от того, для которого был создан базовый вариант.
Улучшения существующих проверок на наличие линтера.
В Android Studio 3.2 внесено множество улучшений в существующие проверки синтаксиса. Например, проверки циклов ресурсов теперь применяются к дополнительным типам ресурсов, а детектор переводов может находить отсутствующие переводы на лету прямо в редакторе.
Идентификаторы проблем становятся более доступными для поиска.
Идентификаторы ошибок теперь отображаются в большем количестве мест, в том числе в окне результатов проверки . Это упрощает поиск необходимой информации для включения или отключения определенных проверок с помощью lintOptions в build.gradle .
Для получения дополнительной информации см. раздел «Настройка параметров проверки кода в 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++, как показано ниже.

Встроенная функция multidex включена по умолчанию.
В предыдущих версиях Android Studio функция нативного multidex включалась при развертывании отладочной версии приложения на устройстве с Android API уровня 21 или выше. Теперь, независимо от того, развертываете ли вы приложение на устройство или собираете APK для выпуска, плагин Android для Gradle включает нативный multidex для всех модулей, у которых 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 вы можете указать, какой снимок AVD следует загрузить при запуске AVD.
Элементы управления сохранением, загрузкой и управлением снимками AVD теперь находятся на вкладке «Снимки» в окне расширенных элементов управления эмулятора.
Подробности см. в разделе «Снимки» .
Для получения дополнительной информации о новых функциях и изменениях в эмуляторе см. примечания к выпуску эмулятора .