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 .

,

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 .

,

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).
  • Некоторые приложения, в которых использовались библиотека OKTTP и были построены с D8, разбиты на устройствах под управлением Android 4.4 (уровень 19 API 19).
  • Android Studio иногда не смог запустить, с ProcessCanceledException во время инициализации класса для com.intellij.psi.jsp.JspElementType .

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

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

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

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

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

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

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

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

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

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

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

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

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

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

Intellij 2017.3.3

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

Для получения подробной информации см. Примечания к выпуску Jetbrains для версий Intellij Idea 2017.2 и 2017.3 , а также заметки о выпуске Jetbrains для обновлений .

Улучшения редактирования SQL с комнатой

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

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

Для получения информации об использовании SQL с комнатой см. Сохранить данные в локальной базе данных с использованием комнаты .

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

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

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

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

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

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

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

Компилятор и Градл

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

Компилятор D8 теперь используется по умолчанию для генерации Dex Bytecode.

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

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

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

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

        android.enableD8=true
      

Для получения подробной информации см. Новый компилятор Dex .

Постепенное освобождение

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

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

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

        android.enableIncrementalDesugaring=false
      

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

Консоль Gradle была заменена окном сборки , которое имеет синхронизацию и вкладки .

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

Обновления пакетов и индексация параллелизма

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

C ++ и LLDB

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

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

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

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

  • LLDB теперь работает только с Android 4.1 (уровень 16 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 в командной строке

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

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

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

Образец нативных процессов C ++ с профилировщиком процессора

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

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

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

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

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

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

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

На вкладке « Пламя ПРОФИЛЕРА» ЦП, стеки вызовов, которые включают методы, связанные с запросом поиска, выделены и перемещены в левую сторону диаграммы.

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

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

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

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

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

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

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

Инспектор макета получил новые функции, в том числе некоторые функциональные возможности, ранее предоставленные устаревшим зрителем иерархии и Pixel Perfect:

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

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

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

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

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

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

Запустить и мгновенно запустить

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

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

Эмулятор

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

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

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

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

Больше всплесков инструментов, сочетания клавиш и полезные сообщения

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

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

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

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

  • Многие команды перенесены непосредственно под меню «Инструменты» .
  • Проект Sync с командой Gradle Files переместился в меню файла .
  • Команда монитора устройства была удалена, как описано ниже.

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

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

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

,

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

Android Studio 3.1.0 - это основной релиз, который включает в себя множество новых функций и улучшений.

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

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

  • Котлин в комплекте теперь версия 1.2.50.
  • Новые проекты создаются с kotlin-stdlib-jdk* artifacts , а не с артефактами kotlin-stdlib-jre* , которые устарели.
  • Расположение 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).
  • Некоторые приложения, в которых использовались библиотека OKTTP и были построены с D8, разбиты на устройствах под управлением Android 4.4 (уровень 19 API 19).
  • Android Studio иногда не смог запустить, с ProcessCanceledException во время инициализации класса для com.intellij.psi.jsp.JspElementType .

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

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

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

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

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

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

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

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

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

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

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

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

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

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

Intellij 2017.3.3

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

Для получения подробной информации см. Примечания к выпуску Jetbrains для версий Intellij Idea 2017.2 и 2017.3 , а также заметки о выпуске Jetbrains для обновлений .

Улучшения редактирования SQL с комнатой

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

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

Для получения информации об использовании SQL с комнатой см. Сохранить данные в локальной базе данных с использованием комнаты .

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

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

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

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

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

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

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

Компилятор и Градл

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

Компилятор D8 теперь используется по умолчанию для генерации Dex Bytecode.

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

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

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

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

        android.enableD8=true
      

Для получения подробной информации см. Новый компилятор Dex .

Постепенное освобождение

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

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

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

        android.enableIncrementalDesugaring=false
      

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

Консоль Gradle была заменена окном сборки , которое имеет синхронизацию и вкладки .

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

Обновления пакетов и индексация параллелизма

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

C ++ и LLDB

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

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

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

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

  • LLDB теперь работает только с Android 4.1 (уровень 16 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 в командной строке

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

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

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

Образец нативных процессов C ++ с профилировщиком процессора

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

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

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

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

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

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

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

На вкладке « Пламя ПРОФИЛЕРА» ЦП, стеки вызовов, которые включают методы, связанные с запросом поиска, выделены и перемещены в левую сторону диаграммы.

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

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

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

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

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

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

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

Инспектор макета получил новые функции, в том числе некоторые функциональные возможности, ранее предоставленные устаревшим зрителем иерархии и Pixel Perfect:

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

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

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

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

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

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

Запустить и мгновенно запустить

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

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

Эмулятор

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

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

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

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

Больше всплесков инструментов, сочетания клавиш и полезные сообщения

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

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

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

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

  • Многие команды перенесены непосредственно под меню «Инструменты» .
  • Проект Sync с командой Gradle Files переместился в меню файла .
  • Команда монитора устройства была удалена, как описано ниже.

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

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

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