Android Studio 3.0 (октябрь 2017 г.)

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

Пользователи macOS: при обновлении старой версии Android Studio может появиться диалоговое окно с сообщением об ошибке обновления «В области установки обнаружены конфликты». Просто проигнорируйте эту ошибку и нажмите «Отмена» , чтобы продолжить установку.

3.0.1 (ноябрь 2017 г.)

Это небольшое обновление Android Studio 3.0, включающее в себя общие исправления ошибок и улучшения производительности.

Плагин Android для Gradle 3.0.0

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

  • Более быстрое время настройки сборки благодаря новому отложенному разрешению зависимостей.
  • Разрешение зависимостей с учетом вариантов только для тех проектов и вариантов, которые вы создаете.
  • Более быстрое время инкрементальной сборки при внесении простых изменений в код или ресурсы.

Примечание: эти улучшения потребовали значительных изменений, которые нарушили работу некоторых функций плагина, DSL и API. Обновление до версии 3.0.0 может потребовать внесения изменений в файлы сборки и плагины Gradle.

Эта версия также включает в себя следующее:

  • Поддержка Android 8.0.
  • Поддержка создания отдельных APK-файлов на основе языковых ресурсов.
  • Поддержка библиотек Java 8 и функций языка Java 8 (без компилятора Jack).
  • Поддержка Android Test Support Library 1.0 (Android Test Utility и Android Test Orchestrator ).
  • Улучшена скорость сборки ndk-build и cmake.
  • Улучшена скорость синхронизации Gradle.
  • AAPT2 теперь включен по умолчанию.
  • Использование ndkCompile теперь более ограничено. Вместо этого вам следует перейти на использование CMake или ndk-build для компиляции нативного кода, который вы хотите упаковать в APK. Подробнее см. в статье «Миграция с ndkcompile» .

Дополнительную информацию об изменениях см. в заметках о выпуске Android Plugin for Gradle .

Если вы готовы перейти на новый плагин, см. раздел Переход на плагин Android для Gradle 3.0.0 .

Поддержка Котлина

Как было объявлено на конференции Google I/O 2017 , язык программирования Kotlin теперь официально поддерживается на Android. В этом выпуске Android Studio включает поддержку языка Kotlin для разработки под Android.

Вы можете включить Kotlin в свой проект, преобразовав файл Java в Kotlin (щелкните Код > Преобразовать файл Java в файл Kotlin ) или создав новый проект с поддержкой Kotlin с помощью мастера создания нового проекта.

Для начала прочитайте, как добавить Kotlin в свой проект .

Поддержка функций языка Java 8

Теперь вы можете использовать определенные возможности языка Java 8 и использовать библиотеки, созданные с помощью Java 8. Jack больше не требуется , и вам следует сначала отключить Jack , чтобы использовать улучшенную поддержку Java 8, встроенную в цепочку инструментов по умолчанию.

Чтобы обновить проект для поддержки нового набора инструментов языка Java 8, обновите параметры «Совместимость с исходным кодом» и «Совместимость с целевым кодом» до версии 1.8 в диалоговом окне «Структура проекта» (щёлкните «Файл» > «Структура проекта» ). Подробнее см. в статье «Как использовать функции языка Java 8» .

Android Profiler

Новый Android Profiler заменяет инструмент Android Monitor и предоставляет новый набор инструментов для измерения использования процессора, памяти и сети вашим приложением в режиме реального времени. Вы можете выполнять трассировку методов на основе выборок для измерения времени выполнения кода, создавать дампы кучи, просматривать распределение памяти и проверять информацию о файлах, передаваемых по сети.

Чтобы открыть, нажмите «Вид» > «Окна инструментов» > «Профилировщик Android» (или нажмите «Профилировщик Android» на панели инструментов).

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

Примечание: представление Logcat также перемещено в отдельное окно (ранее оно находилось в Android Monitor, который был удален).

На временной шкале обзора Android Profiler нажмите на временные шкалы CPU , MEMORY или NETWORK , чтобы получить доступ к соответствующим инструментам профилировщика.

Профилировщик ЦП

Профилировщик ЦП помогает анализировать использование потоков ЦП вашим приложением, запуская выборочную или инструментированную трассировку ЦП. Затем вы можете выявлять и устранять проблемы с производительностью ЦП, используя различные представления данных и фильтры.

Более подробную информацию см. в руководстве CPU Profiler .

Профилировщик памяти

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

Более подробную информацию см. в руководстве по профилированию памяти .

Сетевой профилировщик

Сетевой профилировщик позволяет отслеживать сетевую активность вашего приложения, проверять полезную нагрузку каждого сетевого запроса и ссылаться на код, сгенерировавший сетевой запрос.

Более подробную информацию см. в руководстве Network Profiler .

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

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

Чтобы начать, нажмите «Профиль или отладка APK» на экране приветствия Android Studio. Или, если у вас уже открыт проект, нажмите «Файл» > «Профиль или отладка APK» в строке меню. Это отобразит распакованные APK-файлы, но не декомпилирует код. Таким образом, для корректного добавления точек останова и просмотра трассировки стека необходимо прикрепить исходные файлы Java и нативные отладочные символы.

Для получения дополнительной информации см. раздел Профилирование и отладка готовых APK-файлов .

Проводник по файлам устройства

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

Чтобы открыть, нажмите Вид > Окна инструментов > Проводник файлов устройства .

Более подробную информацию см. в руководстве Device File Explorer .

Поддержка мгновенных приложений

Новая поддержка Android Instant Apps позволяет вам создавать Instant Apps в вашем проекте, используя два новых типа модулей : модули Instant App и модули функций (для этого требуется установить Instant Apps Development SDK ).

В Android Studio также есть новый метод рефакторинга «Модулизовать», который поможет вам добавить поддержку Instant Apps в существующий проект. Например, если вы хотите рефакторить свой проект, поместив некоторые классы в модуль функции Instant App, выберите классы в окне проекта и нажмите «Рефакторинг» > «Модулировать» . В открывшемся диалоговом окне выберите модуль, в который должны быть помещены классы, и нажмите «ОК» .

Когда вы будете готовы протестировать свое приложение Instant App, вы можете создать и запустить свой модуль Instant App на подключенном устройстве, указав URL-адрес приложения Instant App в параметрах запуска конфигурации : выберите «Запуск» > «Изменить конфигурации» , выберите свой модуль Instant App, а затем задайте URL-адрес в разделе «Параметры запуска» .

Более подробную информацию можно найти в разделе Приложения Android Instant Apps .

Модули Android Things

Новые шаблоны Android Things в мастерах создания нового проекта и нового модуля помогут вам начать разработку для устройств Интернета вещей на базе Android.

Для получения дополнительной информации ознакомьтесь с разделом «Как создать проект Android Things» .

Мастер адаптивных значков

Image Asset Studio теперь поддерживает векторные рисунки и позволяет создавать адаптивные значки запуска для Android 8.0, одновременно создавая традиционные значки (значки «Legacy») для старых устройств.

Для начала щёлкните правой кнопкой мыши по папке res в вашем проекте и выберите «Создать» > «Ресурс изображения» . В окне Asset Studio выберите «Значки запуска (адаптивные и устаревшие)» в качестве типа значка.

Примечание: для использования адаптивных значков запуска необходимо установить compileSdkVersion на 26 или выше.

Более подробную информацию можно найти в статье об адаптивных иконках .

Поддержка ресурсов шрифтов

Для поддержки новых ресурсов шрифтов в Android 8.0 в Android Studio есть селектор ресурсов шрифтов , который поможет вам добавить шрифты в приложение или настроить проект для загрузки шрифтов на устройство (при наличии). Редактор макетов также позволяет предварительно просматривать шрифты в макете.

Чтобы попробовать загружаемые шрифты, убедитесь, что на вашем устройстве или эмуляторе установлены сервисы Google Play версии 11.2.63 или выше. Подробнее см. в статье «Загружаемые шрифты» .

Помощник по индексированию приложений Firebase

В Firebase Assistant добавлено новое руководство по тестированию индексирования приложений . Чтобы открыть помощник, выберите «Инструменты» > «Firebase» . Затем выберите «Индексирование приложений» > «Тестировать индексирование приложений» .

В руководство включены новые кнопки для проверки индексации вашего публичного и личного контента:

  • На шаге 2 нажмите «Предварительный просмотр результатов поиска», чтобы убедиться, что ваши URL-адреса отображаются в результатах поиска Google.
  • На шаге 3 нажмите Проверить наличие ошибок , чтобы убедиться, что индексируемые объекты вашего приложения добавлены в индекс личного контента.

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

  • Добавьте URL-тесты для каждого сопоставления URL-адресов, чтобы убедиться, что ваши фильтры намерений обрабатывают реальные URL-адреса.

    Вы также можете определить эти проверки URL вручную, используя тег <tools:validation> описанный ниже.

  • Создайте файл ссылок на цифровые активы с соответствующей записью объекта для поддержки Google Smart Lock и добавьте соответствующий тег asset_statements <meta-data> в файл манифеста.

Валидатор URL-фильтра намерений

Android Studio теперь поддерживает специальный тег в файле манифеста, позволяющий тестировать URL-адреса фильтров намерений . Это те же теги, которые может создать App Links Assistant .

Чтобы объявить тестовый URL для фильтра намерений, добавьте элемент <tools:validation> рядом с соответствующим элементом <intent-filter> . Например:

      <activity ...>
          <intent-filter>
              ...
          </intent-filter>
          <tools:validation testUrl="https://www.example.com/recipe/1138" />
      </activity>
    
    

Обязательно также включите xmlns:tools="http://schemas.android.com/tools" в тег <manifest> .

Если какой-либо из тестовых URL-адресов не соответствует определению фильтра намерений, возникает ошибка линтинга. Такая ошибка всё ещё позволяет собирать отладочные варианты, но нарушает работу релизных сборок.

Редактор макетов

Редактор макетов был обновлен и получил ряд улучшений, включая следующие:

  • Новая компоновка панели инструментов и значков.
  • Обновленная компоновка дерева компонентов.
  • Улучшена вставка представлений методом перетаскивания.
  • Новая панель ошибок под редактором, на которой отображаются все проблемы с предложениями по их устранению (если таковые имеются).
  • Различные улучшения пользовательского интерфейса для создания с помощью ConstraintLayout , включая следующие:
    • Новая поддержка для создания барьеров .
    • Новая поддержка создания групп: на панели инструментов выберите «Руководства» > «Добавить группу» (требуется ConstraintLayout 1.1.0 beta 2 или выше).
    • Новый пользовательский интерфейс для создания цепочек: выберите несколько представлений, затем щелкните правой кнопкой мыши и выберите Цепочка .

Инспектор макетов

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

APK-анализатор

Теперь вы можете использовать APK Analyzer из командной строки с помощью инструмента apkanalyzer .

APK Analyzer также был обновлен и получил следующие улучшения:

  • Для APK, созданных с помощью ProGuard, вы можете загрузить файлы сопоставления ProGuard, которые добавляют возможности средству просмотра DEX, в том числе:
    • Узлы, выделенные жирным шрифтом, указывают на то, что их не следует удалять при сжатии кода.
    • Кнопка для отображения узлов, удаленных в процессе сжатия.
    • Кнопка, восстанавливающая исходные имена узлов в древовидной структуре, которые были скрыты ProGuard.
  • DEX Viewer теперь показывает предполагаемое влияние размера каждого пакета, класса и метода.
  • Новые параметры фильтрации вверху для отображения и скрытия полей и методов.
  • В древовидной структуре узлы, являющиеся ссылками, не определенными в файле DEX, отображаются курсивом.

Для получения дополнительной информации см. раздел Анализ вашей сборки с помощью APK Analyzer .

Предварительный просмотр компилятора D8 DEX

В Android Studio 3.0 доступен новый опциональный компилятор DEX под названием D8. В конечном итоге он заменит компилятор DX, но вы можете уже сейчас включить его использование.

Компиляция DEX напрямую влияет на время сборки вашего приложения, размер файла .dex и производительность выполнения. Сравнивая новый компилятор D8 с текущим компилятором DX, D8 компилирует быстрее и выводит файлы .dex меньшего размера, обеспечивая при этом такую же или даже лучшую производительность выполнения приложения.

Чтобы попробовать, установите следующее в файле gradle.properties вашего проекта:

android.enableD8=true
    

Более подробную информацию можно найти в блоге о компиляторе D8 .

Репозиторий Maven от Google

Android Studio теперь по умолчанию использует репозиторий Maven от Google, а не полагается на Android SDK Manager для получения обновлений для Android Support Library, Google Play Services, Firebase и других зависимостей. Это упрощает поддержание библиотек в актуальном состоянии, особенно при использовании системы непрерывной интеграции (CI).

Все новые проекты теперь по умолчанию включают репозиторий Google Maven. Чтобы обновить существующий проект, добавьте google() в блок repositories файла build.gradle верхнего уровня:

      allprojects {
          repositories {
              google()
          }
      }
    
    

Подробнее о репозитории Maven от Google можно узнать здесь .

Другие изменения

  • Отладка нативного кода в Android Studio больше не поддерживается в 32-разрядной версии Windows. Мы решили сосредоточиться на других платформах, поскольку их использует очень мало разработчиков. Если вы используете 32-разрядную версию Windows и планируете отлаживать нативный код, вам следует продолжать использовать Android Studio 2.3 .
  • Обновлена базовая IDE до IntelliJ 2017.1.2 , которая добавляет ряд новых функций из версий 2016.3 и 2017.1 , таких как рефакторинг языка Java 8, подсказки параметров, семантическая подсветка, перетаскиваемые точки останова, мгновенные результаты поиска и многое другое.
  • Добавлено много новых проверок линта.
  • Также ознакомьтесь с последними обновлениями эмулятора Android .