Android Studio 3.1 (март 2018 г.)

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

3.1.4 (август 2018 г.)

Это обновление Android Studio 3.1 включает следующие изменения и исправления:

  • В комплекте Kotlin теперь версия 1.2.50.
  • Новые проекты создаются с использованием kotlin-stdlib-jdk* artifacts , а не артефактов kotlin-stdlib-jre* , которые устарели.
  • Улучшен анализ правил ProGuard в R8.
  • Исправлены следующие ошибки:
    • Попытка запустить основной класс Kotlin завершилась с ошибкой: "Error: Could not find or load main class..."
    • R8 вошел в бесконечный цикл при выполнении определенных оптимизаций.
    • При использовании команды «Повторить неудачные тесты» в окне «Выполнить» иногда неправильно возвращалось сообщение «Тесты не найдены».
    • D8 неправильно обрабатывал экземпляры invoke-virtual , что приводило к сбою с ошибкой VerifyError : invoke-super/virtual can't be used on private method
    • Компилятор привязки данных зависел от старой версии com.android.tools:annotations . Компилятор теперь использует аннотации инструментов из базового проекта, если они доступны.
    • Android Studio аварийно завершала работу во время перехода фрагментов при использовании профилировщиков.
    • Отладчик аварийно завершал работу при отладке макета с текстовым полем.
    • D8 не удалось прочитать некоторые ZIP-файлы со специальными символами.

3.1.3 (июнь 2018 г.)

Это обновление Android Studio 3.1 включает исправления следующих ошибок:

  • Утечки памяти приводили к тому, что Android Studio работала медленно и не отвечала на запросы после использования редактора макетов. Это обновление включает исправления большинства этих проблем. В ближайшее время мы намерены выпустить еще одно обновление для устранения дополнительных утечек памяти.
  • Некоторые приложения, созданные с помощью D8, аварийно завершали работу на некоторых планшетах Verizon Ellipsis.
  • Установка приложений, созданных с помощью D8, завершилась с ошибкой INSTALL_FAILED_DEXOPT на устройствах под управлением Android 5.0 или 5.1 (уровень API 21 или 22).
  • Некоторые приложения, использующие библиотеку OkHttp и созданные с помощью D8, аварийно завершали работу на устройствах под управлением Android 4.4 (уровень API 19).
  • Android Studio иногда не запускалась из-за ProcessCanceledException во время инициализации класса для com.intellij.psi.jsp.JspElementType .

3.1.2 (апрель 2018 г.)

Это обновление Android Studio 3.1 включает исправления следующих ошибок:

  • В некоторых случаях Android Studio зависала на неопределенное время во время выхода.
  • Сборки, настроенные с использованием исходных наборов, завершились неудачно со следующим сообщением, когда был включен Instant Run:

    "The SourceSet name is not recognized by the Android Gradle Plugin."

  • Когда был включен Instant Run, сборка новых проектов Kotlin завершалась неудачей при запуске команды «Выполнить» .
  • Во время редактирования файла build.gradle иногда возникала заметная задержка между вводом символа и его появлением на экране.
  • Во время индексирования в некоторых проектах с большим количеством модулей или внешних зависимостей возникали сбои сборки со следующим сообщением об ошибке:

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

  • При вычислении основного списка DEX D8 не учитывались некоторые рефлексивные вызовы.

Это обновление также включает изменения, которые в некоторых сценариях ускоряют выполнение проверок из Gradle.

3.1.1 (апрель 2018 г.)

Это обновление Android Studio 3.1 включает исправления следующих ошибок:

  • В некоторых случаях, когда проект, созданный в Android Studio 3.0, впервые открывался в Android Studio 3.1, задача Make с поддержкой Gradle удалялась из области «Перед запуском» в «Конфигурациях запуска/отладки» . В результате проекты не собирались при нажатии кнопки «Выполнить» или «Отладка» , что, в свою очередь, приводило к сбоям, таким как развертывание неправильных APK-файлов и сбоям при использовании Instant Run.

    Чтобы решить эту проблему, Android Studio 3.1.1 добавляет задачу Make с поддержкой Gradle в конфигурацию запуска для проектов, в которых эта запись отсутствует. Эта модификация происходит после первой синхронизации Gradle при загрузке проекта.

  • Отладчик аварийно завершал работу при отладке макета с текстовым полем, если было включено расширенное профилирование.
  • Android Studio зависла после того, как вы нажали «Варианты сборки» .
  • Файлы AAR (архив Android) были извлечены дважды: один раз во время процесса синхронизации Gradle и один раз во время процесса сборки Gradle.
  • В некоторых векторных рисунках, импортированных из файлов SVG, отсутствовали элементы.
  • Предупреждение об устаревании конфигурации зависимостей compile было обновлено и теперь содержит более подробные инструкции по implementation и конфигурациям api . Подробные сведения об отказе от использования конфигурации compile см. в документации по новым конфигурациям зависимостей .

Кодирование/IDE

IntelliJ 2017.3.3

Базовая интегрированная среда разработки Android Studio была обновлена ​​за счет улучшений IntelliJ IDEA до версии 2017.3.3. Улучшения включают улучшенный анализ потока управления для коллекций и строк, улучшенный вывод об отсутствии значений, новые быстрые исправления и многое другое.

Подробные сведения см. в примечаниях к выпуску JetBrains для IntelliJ IDEA версий 2017.2 и 2017.3 , а также в примечаниях к выпуску JetBrains для обновлений с исправлениями ошибок .

Улучшения редактирования SQL с помощью Room

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

  • Завершение кода в Query понимает таблицы SQL (сущности), столбцы, параметры запроса, псевдонимы, соединения, подзапросы и предложения With.
  • Подсветка синтаксиса SQL теперь работает.
  • Вы можете щелкнуть правой кнопкой мыши имя таблицы в SQL и переименовать ее, что также перезапишет соответствующий код Java или Kotlin (включая, например, тип возвращаемого запроса). Переименование работает и в другом направлении: переименование класса или поля Java перезаписывает соответствующий код SQL.
  • Использование SQL отображается при использовании функции «Найти использования» (щелкните правой кнопкой мыши и выберите «Найти использования» в контекстном меню).
  • Чтобы перейти к объявлению сущности SQL в коде Java или Kotlin, вы можете удерживать Control (Command на Mac), щелкая сущность.

Информацию об использовании SQL с Room см. в разделе Сохранение данных в локальной базе данных с помощью Room .

Обновления привязки данных

Это обновление включает в себя несколько улучшений привязки данных :

  • Теперь вы можете использовать объект LiveData в качестве наблюдаемого поля в выражениях привязки данных. Класс ViewDataBinding теперь включает новый метод setLifecycle() , который вы используете для наблюдения за объектами LiveData .

  • Класс ObservableField теперь может принимать в своем конструкторе другие объекты Observable .

  • Вы можете предварительно просмотреть новый инкрементный компилятор для своих классов привязки данных. Подробные сведения об этом новом компиляторе и инструкции по его включению см. в разделе Data Binding Compiler V2 .

    Преимущества нового компилятора включают следующее:

    • Классы ViewBinding генерируются подключаемым модулем Android для Gradle перед компилятором Java.
    • Библиотеки сохраняют созданные классы привязки при компиляции приложения, а не перегенерируют каждый раз. Это может значительно повысить производительность многомодульных проектов.

Компилятор и Gradle

D8 — компилятор DEX по умолчанию.

Компилятор D8 теперь используется по умолчанию для генерации байт-кода DEX.

Этот новый компилятор DEX имеет ряд преимуществ, в том числе следующие:

  • Более быстрая обработка
  • Меньшее использование памяти
  • Улучшенная генерация кода (лучшее распределение регистров, более умные таблицы строк).
  • Улучшенный опыт отладки при пошаговом выполнении кода.

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

Если вы установили android.enableD8 значение false в своем gradle.properties , либо удалите этот флаг, либо установите для него значение true :

        android.enableD8=true
      

Подробности см. в разделе «Новый компилятор DEX» .

Инкрементальное обессахаривание

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

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

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

        android.enableIncrementalDesugaring=false
      

Упрощенное окно вывода

Консоль Gradle была заменена окном «Сборка» с вкладками «Синхронизация» и «Сборка» .

Подробные сведения об использовании нового, упрощенного окна сборки см. в разделе Мониторинг процесса сборки .

Пакетные обновления и параллельная индексация

Процессы синхронизации Gradle и индексирования IDE теперь стали намного эффективнее, что сокращает время, затрачиваемое на многие избыточные операции индексирования.

С++ и LLDB

Мы внесли множество улучшений в качество и производительность на этапах кодирования, синхронизации, сборки и отладки разработки C++. Улучшения включают следующее:

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

  • Производительность при сборке и синхронизации с CMake была улучшена за счет более агрессивного повторного использования кэшированных результатов.

  • Добавление средств форматирования («красивых принтеров») для большего количества структур данных C++ упрощает чтение выходных данных LLDB.

  • LLDB теперь работает только с Android 4.1 (уровень API 16) и выше.

Примечание. Собственная отладка с помощью Android Studio 3.0 или более поздней версии не работает в 32-разрядной версии Windows. Если вы используете 32-разрядную версию Windows и вам необходимо отладить собственный код, используйте Android Studio 2.3.

Котлин

Котлин обновлен до версии 1.2.30

Android Studio 3.1 включает Kotlin версии 1.2.30 .

Код Kotlin теперь анализируется с помощью проверки командной строки.

Запуск lint из командной строки теперь анализирует ваши классы Kotlin.

Для каждого проекта, в котором вы хотите запустить lint, репозиторий Google Maven должен быть включен в файл build.gradle верхнего уровня. Репозиторий Maven уже включен в проекты, созданные в Android Studio 3.0 и выше.

Инструменты производительности

Примеры собственных процессов C++ с помощью CPU Profiler

Профилировщик ЦП теперь включает конфигурацию по умолчанию для записи выборочных трассировок собственных потоков вашего приложения. Вы можете использовать эту конфигурацию, развернув свое приложение на устройстве под управлением Android 8.0 (уровень API 26) или выше, а затем выбрав Выборочный (собственный) в раскрывающемся меню конфигураций записи CPU Profiler. После этого запишите и проверьте трассировку, как обычно.

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

Чтобы вернуться к отслеживанию потоков Java, выберите конфигурацию «Выборочная» (Java) или «Инструментированная» (Java) .

Фильтрация трассировки ЦП, результатов выделения памяти и дампов кучи

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

Для поиска нажмите Фильтрв правом верхнем углу панели введите запрос и нажмите Enter.

Совет: Вы также можете открыть поле поиска, нажав Control + F (Command + F на Mac).

На вкладке Flame Chart в CPU Profiler стеки вызовов, включающие методы, связанные с вашим поисковым запросом, выделяются и перемещаются в левую часть диаграммы.

Дополнительные сведения о фильтрации по методу, классу или имени пакета см. в разделе Запись и проверка трассировок методов .

Вкладка «Запрос» в профилировщике сети

Профилировщик сети теперь включает вкладку «Запрос» , на которой представлены подробные сведения о сетевых запросах в течение выбранного периода времени. В предыдущих версиях Network Profiler предоставлял только информацию об ответах сети.

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

Выбрав часть временной шкалы в Network Profiler , вы можете выбрать одну из следующих вкладок, чтобы просмотреть более подробную информацию о сетевой активности в течение этого периода времени:

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

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

Инспектор макетов получил новые функции, включая некоторые функции, ранее предоставляемые устаревшими инструментами Hierarchy Viewer и Pixel Perfect:

  • Кнопки масштабирования и сочетания клавиш для навигации и проверки макетов.
  • Наложение опорной сетки
  • Возможность загрузить эталонное изображение и использовать его в качестве наложения (полезно для сравнения вашего макета с макетом пользовательского интерфейса).
  • Предварительный просмотр поддерева для изоляции представления в сложном макете.

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

Палитра в редакторе макетов получила множество улучшений:

  • Реорганизация категорий для представлений и макетов.
  • Новая общая категория для видов и макетов, которую можно добавить с помощью команды «Избранное» .
  • Улучшен поиск видов и макетов .
  • Новые команды для открытия документации по определенному виду или элементу макета.

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

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

Бег и мгновенный бег

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

При выборе устройства под управлением Android 8.0 (уровень API 26) или более поздней версии Instant Run может развертывать изменения в ресурсах, не вызывая перезапуска приложения. Это возможно, поскольку ресурсы содержатся в разделенном APK.

Эмулятор

Подробные сведения о том, что нового и изменилось в эмуляторе по сравнению с Android Studio 3.0, см. в примечаниях к выпуску эмулятора Android для версий с 27.0.2 по 27.1.12 .

Основные улучшения включают следующее:

  • Снимки быстрой загрузки для сохранения состояния эмулятора и более быстрого запуска с возможностью использования команды «Сохранить сейчас» для сохранения пользовательского состояния запуска.
  • Безоконный экран эмулятора.
  • Системные образы для Android 8.0 (уровень API 26), Android 8.1 (уровень API 27) и Android P Developer Preview.

Улучшения пользовательского интерфейса и пользовательского опыта

Дополнительные подсказки, сочетания клавиш и полезные сообщения.

Мы добавили всплывающие подсказки и наложения полезных сообщений во многих местах Android Studio.

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

Инструменты > Меню Android удалено.

Меню «Инструменты > Android» удалено. Команды, которые ранее находились в этом меню, были перемещены.

  • Многие команды перенесены непосредственно в меню «Инструменты» .
  • Команда «Синхронизировать проект с файлами gradle» перемещена в меню «Файл» .
  • Команда Device Monitor была удалена, как описано ниже.

Монитор устройств доступен из командной строки

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

Инструкции по вызову Device Monitor из командной строки и подробную информацию об инструментах, доступных через Device Monitor, см. в документации Device Monitor .