Итеративная разработка кода

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

Живое редактирование

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

Live Edit имеет три режима:

  • Вручную: изменения кода применяются, когда они вручную вводятся с помощью Control+\ ( Command+\ в macOS).
  • Ручное сохранение: изменения кода применяются, если они сохранены вручную с помощью Control+S ( Command+S в macOS).
  • Автоматически: изменения применяются на вашем устройстве или в эмуляторе при обновлении составной функции.

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

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

Оптимальный рабочий процесс выглядит следующим образом:

  1. Настройте свое приложение так, чтобы его можно было запустить.
  2. Live Edit насколько это возможно, пока вам не понадобится внести изменения, которые Live Edit не поддерживает, например добавить новые методы во время работы приложения.
  3. После внесения неподдерживаемого изменения нажмите «Выполнить». Значок запуска чтобы перезапустить приложение и возобновить Live Edit.

Начните работу с Live Edit

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

Настройте свой новый проект

  1. Прежде чем начать, убедитесь, что у вас установлена ​​Android Studio Giraffe или более поздняя версия и что уровень API вашего физического устройства или эмулятора составляет не менее 30.

  2. Откройте Android Studio и выберите «Новый проект» в диалоговом окне «Добро пожаловать в Android Studio» . Если у вас уже открыт проект, вы можете создать новый, выбрав «Файл» > «Создать» > «Новый проект» .

  3. Выберите шаблон «Пустое действие по созданию сообщения» для «Телефон и планшет» и нажмите «Далее» .

    Выбор шаблона в Android Studio
    Рисунок 1. Шаблоны, которые вы можете выбрать. Для Live Edit выберите Empty Compose Activity .
  4. Заполните диалоговое окно «Новый проект» , указав необходимую информацию: имя, имя пакета, место сохранения, минимальный пакет SDK и язык конфигурации сборки.

    Пример настроек проекта из шага 4, введенных в Android Studio.
    Рисунок 2. Пример настроек проекта.
  5. Нажмите «Готово» .

Включить живое редактирование

  1. Перейдите к настройкам, чтобы включить Live Edit.

    • В Windows или Linux выберите «Файл» > «Настройки» > «Редактор» > «Live Edit» .
    • В macOS перейдите в Android Studio > Настройки > Редактор > Live Edit .
  2. В настройках выберите опцию Live Edit и режим, который вы хотите запустить.

    В ручном режиме изменения кода вносятся каждый раз, когда вы нажимаете Control+\ ( Command+\ в macOS). В ручном режиме при сохранении изменения кода применяются каждый раз при сохранении вручную с помощью Control + S ( Command + S в macOS). В автоматическом режиме изменения кода применяются на вашем устройстве или в эмуляторе по мере внесения изменений.

    Пользовательский интерфейс флажка Live Edit в настройках Android Studio
    Рисунок 3. Настройки Live Edit.
  3. В редакторе откройте файл MainActivity , который является точкой входа для вашего приложения.

  4. Нажмите «Выполнить» . кнопка пользовательского интерфейса для развертывания вашего приложения.

  5. После включения Live Edit в правом верхнем углу окна инструмента «Работающие устройства» появится зеленая галочка «Обновлено» :

    Пользовательский интерфейс с зеленой галочкой Live Edit

Внесение и проверка изменений

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

Например, измените существующий метод Greeting в MainActivity следующим образом:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

Ваши изменения мгновенно появятся на тестовом устройстве, как показано на рисунке 4.

Изменения в методе приветствия, примененном на устройстве
Рисунок 4. Тестовое устройство, отображающее изменения Live Edit в методе Greeting .

Устранение неполадок с интерактивным редактированием

Если вы не видите свои изменения на тестовом устройстве, возможно, Android Studio не смогла обновить ваши изменения. Проверьте, отображается ли индикатор Live Edit «Устарело», как показано на рисунке 5, что указывает на ошибку компиляции. Для получения информации об ошибке и предложений по ее устранению щелкните индикатор.

Устаревший значок Live Edit
Рисунок 5. Индикатор состояния Live Edit.

Ограничения живого редактирования

Ниже приведен список текущих ограничений.

  • [Только для Android Studio Giraffe и более поздних версий] Для Live Edit требуется Compose Runtime 1.3.0 или более поздняя версия . Если в вашем проекте используется более ранняя версия Compose, Live Edit отключен.

  • [Относится только к Android Studio Giraffe и более поздним версиям] Для Live Edit требуется AGP 8.1.0-alpha05 или более поздняя версия. Если в вашем проекте используется более ранняя версия AGP, Live Edit отключен.

  • Для Live Edit требуется физическое устройство или эмулятор с API уровня 30 или выше.

  • Live Edit поддерживает редактирование только тела функции, а это означает, что вы не можете изменить имя функции или подпись, добавить или удалить функцию или изменить нефункциональные поля.

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

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

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

  • Работающее приложение может аварийно завершить работу, если вы редактируете его с помощью Live Edit. Если это произойдет, вы можете повторно развернуть приложение с помощью команды «Выполнить». кнопка пользовательского интерфейса кнопка.

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

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

  • Live Edit не возобновляется при перезапуске приложения. Вам необходимо запустить приложение еще раз.

  • Live Edit поддерживает только отлаживаемые процессы.

  • Live Edit не поддерживает проекты, в которых используются пользовательские значения для moduleName в разделе kotlinOptions в конфигурации сборки.

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

  • Live Edit работает с развертываниями на нескольких устройствах (развертываниями на нескольких устройствах, которые были созданы с помощью параметра «Выбрать несколько устройств» в раскрывающемся списке целевых устройств). Однако он официально не поддерживается, и могут возникнуть проблемы. Если у вас возникли проблемы, сообщите о них .

  • Применить изменения/Применить изменения кода несовместимы с Live Edit и требуют перезапуска работающего приложения.

  • Live Edit в настоящее время не поддерживает проекты Android Automotive.

Часто задаваемые вопросы о Live Edit

  • Каков текущий статус Live Edit?

    Live Edit доступен в Android Studio Giraffe. Чтобы включить его, перейдите в «Файл» > «Настройки» > «Редактор» > «Live Edit» ( Android Studio > «Настройки» > «Редактор» > «Live Edit» на macOS).

  • Когда мне следует использовать Live Edit?

    Используйте Live Edit, если хотите быстро увидеть влияние обновлений UX-элементов (например, обновлений модификаторов и анимации) на общее впечатление от приложения.

  • Когда мне следует избегать использования Live Edit?

    Live Edit ориентирован на изменения кода, связанные с пользовательским интерфейсом и UX. Он не поддерживает такие изменения, как обновления сигнатур методов, добавление новых методов или изменения иерархии классов. Для получения дополнительной информации см. Ограничения Live Edit .

  • Когда мне следует использовать предварительный просмотр Compose?

    Используйте предварительный просмотр композиции при разработке отдельных компонуемых объектов. Предварительный просмотр визуализирует элементы Compose и автоматически обновляется, чтобы отобразить эффект изменений кода. Предварительная версия также поддерживает просмотр элементов пользовательского интерфейса в различных конфигурациях и состояниях, таких как темная тема, локали и масштаб шрифта.

Живое редактирование литералов (устарело)

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

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

Включение живого редактирования литералов

Применить изменения

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

Всякий раз, когда вы добавляете, изменяете или удаляете составные элементы, вы можете обновить свое приложение без необходимости его повторного развертывания, нажав кнопку «Применить изменения кода» :

Пользователь нажимает кнопку «Применить изменения»

{% дословно %} {% дословно %} {% дословно %} {% дословно %}