Как создать сборку и запустить приложение

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

В этом обзоре рассматривается, как использовать Android Studio для сборки и запуска вашего приложения для тестирования и отладки. Информацию о том, как использовать Android Studio для сборки вашего приложения, чтобы его можно было выпустить для пользователей, см. в разделе «Сборка приложения для выпуска для пользователей» . Более подробную информацию об управлении и настройке сборки с помощью или без Android Studio см. в разделе «Настройка сборки» .

Базовая сборка и запуск

Чтобы собрать и запустить приложение, выполните следующие шаги:

  1. На панели инструментов выберите свое приложение в меню «Настройки запуска».
  2. В меню целевого устройства выберите устройство, на котором вы хотите запустить свое приложение.

    Меню целевого устройства.

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

  3. Нажмите «Выполнить» .

Android Studio предупреждает вас, если вы пытаетесь запустить свой проект на устройстве, связанном с ошибкой или предупреждением. Иконография и стилистические изменения позволяют различать ошибки (выбор устройства, приводящий к некорректной конфигурации) и предупреждения (выбор устройства, который может привести к неожиданному поведению, но при этом остается работоспособным).

Контролируйте процесс сборки.

Чтобы просмотреть подробную информацию о процессе сборки, выберите «Вид» > «Окна инструментов» > «Сборка » или нажмите «Сборка». в панели инструментов. В окне инструментов «Сборка» отображаются задачи, которые Gradle выполняет для сборки вашего приложения, как показано на рисунке 1.

Рисунок 1. Окно инструментов сборки в Android Studio.
  1. Вкладка «Синхронизация»: отображает задачи, которые Gradle выполняет для синхронизации с файлами вашего проекта. Аналогично вкладке «Вывод сборки» , если вы столкнулись с ошибкой синхронизации, выберите элементы в дереве, чтобы получить дополнительную информацию об ошибке. Также отображается сводка о влиянии загрузок , чтобы определить, оказывают ли загрузки зависимостей негативное влияние на вашу сборку.
  2. Вкладка «Вывод сборки»: отображает задачи, выполняемые Gradle, в виде дерева, где каждый узел представляет собой либо этап сборки, либо группу зависимостей задач. Если вы получаете ошибки во время сборки или компиляции, просмотрите дерево и выберите элемент, чтобы прочитать вывод ошибок, как показано на рисунке 2.
    Рисунок 2. Проверьте вкладку « Выходные данные сборки» на наличие сообщений об ошибках.
  3. Вкладка «Анализ сборки»: предоставляет информацию об анализе производительности сборки. Дополнительную информацию см. в разделе «Устранение неполадок с производительностью сборки с помощью анализатора сборки» .
  4. Перезапуск: Повторяет последнее действие сборки. Если вы в последний раз запускали команду «Сборка > Создать выбранный модуль» , будет собран текущий модуль. Если вы в последний раз запускали команду «Сборка > Создать проект» , будут сгенерированы промежуточные файлы сборки для всех модулей в вашем проекте.
  5. Фильтры: Отфильтровывает предупреждения, задачи или и то, и другое, успешно завершенные. Это может упростить поиск проблем в выходных данных.

Если ваши варианты сборки используют варианты продукта, Gradle также запускает задачи для сборки этих вариантов продукта. Чтобы просмотреть список всех доступных задач сборки, щелкните Вид > Окна инструментов > Gradle или щелкните Gradle. в панели инструментов.

Если в процессе сборки возникает ошибка, Gradle может предложить параметры командной строки для её устранения, например, --stacktrace или --debug . Чтобы использовать параметры командной строки в процессе сборки:

  1. Откройте диалоговое окно «Настройки» или «Предпочтения» :
    • В Windows или Linux выберите в строке меню «Файл» > «Настройки» .
    • В macOS выберите Android Studio > Настройки в строке меню.
  2. Перейдите в раздел Сборка, Выполнение, Развертывание > Компилятор .
  3. В текстовом поле рядом с пунктом «Параметры командной строки» введите параметры командной строки.
  4. Нажмите ОК , чтобы сохранить и выйти.

Gradle применит эти параметры командной строки при следующей попытке сборки вашего приложения.

Создайте и запустите систему, используя агента искусственного интеллекта.

В Android Studio ИИ-агент имеет доступ к инструментам, позволяющим ему создавать и развертывать ваше приложение, а затем проверять его состояние от вашего имени. При использовании режима агента агент может выполнять такие задачи, как:

  • Разверните свое приложение на подключенном физическом устройстве или эмуляторе.
  • Внимательно изучите экран и сделайте снимки экрана, чтобы проверить изменения в пользовательском интерфейсе.
  • Проверьте Logcat на наличие ошибок выполнения или конкретных сообщений в журнале.
  • Взаимодействуйте с приложением, используя команды adb shell для навигации или ввода данных.

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

Инструменты взаимодействия с устройством в Android Studio.
Рисунок 3: Агент ИИ может помочь вам протестировать и проверить изменения на устройстве.

Расширенные возможности сборки и запуска

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

  • Чтобы развернуть приложение в режиме отладки, нажмите «Отладка». Запуск приложения в режиме отладки позволяет устанавливать точки останова в коде, проверять переменные и вычислять выражения во время выполнения, а также запускать инструменты отладки. Для получения дополнительной информации см. раздел «Отладка приложения» .

  • Если у вас более крупное и сложное приложение, используйте кнопку «Применить изменения» вместо кнопки «Запустить». Это экономит время, поскольку вам не нужно перезапускать приложение каждый раз, когда вы хотите развернуть изменения. Для получения дополнительной информации о применении изменений см. раздел «Инкрементальное развертывание с применением изменений» .

  • Если вы используете Jetpack Compose, функция Live Edit — это экспериментальная функция, позволяющая обновлять создаваемые объекты в режиме реального времени без повторного нажатия кнопки «Запустить». Это позволяет вам сосредоточиться на написании кода пользовательского интерфейса с минимальными перерывами. Для получения дополнительной информации см. раздел « Редактирование в реальном времени (экспериментальная функция)» .

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

  • Для точной настройки параметров установки, запуска и тестирования приложения можно изменить конфигурацию запуска/отладки. Дополнительную информацию о создании пользовательских конфигураций запуска/отладки см. в разделе « Создание конфигураций запуска/отладки» .

  • Мы рекомендуем использовать Android Studio для разработки, но вы также можете развернуть приложение на виртуальном или физическом устройстве из командной строки. Для получения дополнительной информации см. раздел «Сборка приложения из командной строки» .

Развертывание выполняется поэтапно с помощью функции «Применить изменения».

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

Функция «Применить изменения» использует возможности реализации Android JVMTI , поддерживаемые на устройствах под управлением Android 8.0 (уровень API 26) или выше. Подробнее о работе функции «Применить изменения» см. в документации Android Studio Project Marble: Apply Changes .

Требования

Действия «Применить изменения» доступны только при соблюдении следующих условий:

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

Используйте кнопку «Применить изменения».

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

Применить изменения и перезапустить процесс Значок «Применить изменения и перезапустить действие» Эта опция пытается применить изменения как в ресурсах, так и в коде, перезапуская активность, но не перезапуская приложение. Как правило, её можно использовать, если вы изменили код в теле метода или изменили существующий ресурс.

Это действие также можно выполнить, нажав Control + Alt + F10 ( Control + Command + Shift + R в macOS).

Применить изменения кода значок «Применить изменения кода» Эта опция пытается применить только изменения в коде, не перезапуская ничего. Как правило, её можно использовать, если вы изменили код в теле метода, но не изменили никакие ресурсы. Если вы изменили и код, и ресурсы, используйте вместо этого опцию «Применить изменения и перезапустить действие» .

Это действие также можно выполнить, нажав Control + F10 ( Control + Command + R в macOS).

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

Включите резервный запуск для применения изменений.

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

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

  1. Откройте диалоговое окно «Настройки» или «Предпочтения» :

    • В Windows или Linux выберите в меню «Файл» > «Настройки» .
    • В macOS выберите в меню Android Studio > Настройки .
  2. Перейдите в раздел «Сборка, выполнение, развертывание» > «Развертывание» .

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

  4. Нажмите ОК .

Изменения, зависящие от платформы

Некоторые функции функции «Применить изменения» зависят от конкретных версий платформы Android. Для применения таких изменений ваше приложение должно быть развернуто на устройстве, работающем под управлением этой версии Android (или выше). Например, для добавления метода требуется Android 11 или выше.

Ограничения функции «Применить изменения»

Функция «Применить изменения» предназначена для ускорения процесса развертывания приложения. Однако существуют некоторые ограничения по ее использованию.

Изменения в коде, требующие перезапуска приложения.

Некоторые изменения в коде и ресурсах не будут применены до перезапуска приложения, в том числе следующие:

  • Добавление или удаление поля
  • Удаление метода
  • Изменение сигнатур методов
  • Изменение модификаторов методов или классов
  • Изменение наследования классов
  • Изменение значений в перечислениях
  • Добавление или удаление ресурса
  • Изменение манифеста приложения
  • Изменение собственных библиотек (SO-файлов)
Библиотеки и плагины

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

  • Если библиотека или плагин вносят изменения в манифест вашего приложения, вы не сможете использовать функцию «Применить изменения». Для отображения изменений необходимо перезапустить приложение.
  • Если библиотека или плагин вносят изменения в файлы ресурсов вашего приложения, вы не сможете использовать функцию «Применить изменения кода». значок «Применить изменения кода» Необходимо использовать функции «Применить изменения» и «Перезапустить действие» . Значок «Применить изменения и перезапустить действие» (или перезапустите приложение), чтобы увидеть изменения.

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

Например, Firebase Crashlytics обновляет ресурсы приложения с уникальным идентификатором сборки при каждой сборке, что препятствует использованию функции «Применить изменения кода». значок «Применить изменения кода» Для отображения изменений требуется перезапустить активность приложения. Отключите это поведение, чтобы использовать функцию «Применить изменения кода» вместе с Crashlytics в отладочных сборках.

Код, напрямую ссылающийся на содержимое установленного APK-файла.

Если ваш код напрямую ссылается на содержимое APK-файла вашего приложения, установленного на устройстве, это может привести к сбоям или некорректной работе после нажатия кнопки «Применить изменения кода». значок «Применить изменения кода» Такое поведение возникает из-за того, что при нажатии кнопки «Применить изменения кода» базовый APK-файл на устройстве заменяется во время установки. В таких случаях можно нажать «Применить изменения и перезапустить процесс». Значок «Применить изменения и перезапустить действие» или Беги значок «Запуск» вместо.

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

Монтаж в реальном времени

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

Узнайте больше о редактировании в реальном времени.

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

По умолчанию Android Studio при нажатии кнопки «Запустить» собирает отладочную версию вашего приложения, предназначенную только для использования во время разработки.UI кнопка .

Чтобы изменить вариант сборки, используемый Android Studio, выполните одно из следующих действий:

  • В меню выберите «Сборка» > «Выбрать вариант сборки» .
  • В меню выберите «Вид» > «Окна инструментов» > «Варианты сборки» .
  • На панели инструментов нажмите вкладку « Варианты сборки» .

Для проектов без нативного/C++ кода панель «Варианты сборки» имеет два столбца: «Модуль» и «Активный вариант сборки» . Значение «Активный вариант сборки» для модуля определяет, какой вариант сборки IDE развернет на подключенном устройстве, и отображается в редакторе.

Рисунок 9. На панели «Варианты сборки» есть два столбца для проектов, не содержащих нативный/C++ код.

Для переключения между вариантами щелкните ячейку «Активный вариант сборки» для модуля и выберите нужный вариант из списка.

Для проектов с нативным кодом/кодом на C++ панель « Варианты сборки» имеет три столбца:

  • Модуль
  • Активный вариант сборки
  • Активный ABI

Значение параметра Active Build Variant для модуля определяет вариант сборки, который IDE развертывает на вашем устройстве и который отображается в редакторе. Для нативных модулей значение Active ABI определяет ABI , используемый редактором, но не влияет на то, что будет развернуто.

Рисунок 10. На панели «Варианты сборки» добавлен столбец «Активный ABI» для проектов с нативным кодом/кодом на C++.

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

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

Конфликты в диалоговом окне «Варианты сборки» в Android Studio.

В диалоговом окне «Варианты сборки» в Android Studio вы можете увидеть сообщения об ошибках, указывающие на конфликты между вариантами сборки, например, следующие:

В окне «Создать вариант» отображаются ошибки конфликта вариантов.

Эта ошибка не указывает на проблему сборки в Gradle. Она указывает на то, что среда разработки Android Studio не может разрешить символы между вариантами выбранных модулей.

Например, если у вас есть модуль M1 , который зависит от варианта v1 модуля M2 , но в IDE для M2 выбран вариант v2 , то в IDE появятся неразрешенные символы. Предположим, M1 зависит от класса, который доступен только в v1 ; когда выбран вариант v2 , этот класс неизвестен IDE. Поэтому IDE не может разрешить имя класса и выдает ошибки в коде модуля M1 .

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

Измените конфигурацию запуска/отладки.

При первом запуске приложения Android Studio использует конфигурацию запуска по умолчанию. Эта конфигурация определяет, следует ли развертывать приложение из APK-файла или из пакета Android App Bundle, а также модуль для запуска, пакет для развертывания, активность для запуска, целевое устройство, настройки эмулятора, параметры Logcat и многое другое.

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

Чтобы отредактировать конфигурацию запуска/отладки, выберите «Запуск» > «Редактировать конфигурации» . Дополнительную информацию см. в разделе «Создание и редактирование конфигураций запуска/отладки» .