Как мобильный разработчик, вы часто разрабатываете пользовательский интерфейс своего приложения шаг за шагом, а не разрабатываете все сразу. Android Studio использует этот подход в Jetpack Compose, предоставляя инструменты, не требующие полной сборки для проверки, изменения значений и проверки конечного результата.
Живое редактирование
Live Edit — это функция, которая позволяет обновлять составные элементы в эмуляторах и физических устройствах в режиме реального времени. Эта функция сводит к минимуму переключение контекста между написанием и созданием приложения, позволяя вам дольше сосредоточиться на написании кода, не отвлекаясь.
Live Edit имеет три режима:
- Вручную: изменения кода применяются, когда они вручную вводятся с помощью Control+' ( Command+' в macOS).
- Ручное сохранение: изменения кода применяются, если они сохраняются вручную с помощью Control+S ( Command+S в macOS).
- Автоматически: изменения применяются на вашем устройстве или в эмуляторе при обновлении составной функции.
Live Edit ориентирован на изменения кода, связанные с пользовательским интерфейсом и UX. Live Edit не поддерживает такие изменения, как обновление сигнатур методов, добавление новых методов или изменение иерархии классов. Для получения дополнительной информации см. список ограничений Live Edit .
Эта функция не заменяет создание и запуск приложения или применение изменений . Вместо этого он предназначен для оптимизации вашего рабочего процесса при создании, развертывании и итерации разработки пользовательского интерфейса Compose.
Оптимальный рабочий процесс выглядит следующим образом:
- Настройте свое приложение так, чтобы его можно было запустить.
- Live Edit насколько это возможно, пока вам не понадобится внести изменения, которые Live Edit не поддерживает, например добавить новые методы во время работы приложения.
- После внесения неподдерживаемого изменения нажмите «Выполнить». чтобы перезапустить приложение и возобновить Live Edit.
Начните работу с Live Edit
Чтобы начать, выполните следующие действия, чтобы создать пустое действие Compose, включить Live Edit для своего проекта и внести изменения с помощью Live Edit.
Настройте свой новый проект
Прежде чем начать, убедитесь, что у вас установлена Android Studio Giraffe или более поздняя версия и что уровень API вашего физического устройства или эмулятора составляет не менее 30.
Откройте Android Studio и выберите «Новый проект» в диалоговом окне «Добро пожаловать в Android Studio» . Если у вас уже открыт проект, вы можете создать новый, выбрав «Файл» > «Создать» > «Новый проект» .
Выберите шаблон «Пустое действие по созданию сообщения» для телефона и планшета и нажмите «Далее» .
Заполните диалоговое окно «Новый проект» , указав необходимую информацию: имя, имя пакета, место сохранения, минимальный пакет SDK и язык конфигурации сборки.
Нажмите «Готово» .
Включить живое редактирование
Перейдите к настройкам, чтобы включить Live Edit.
- В Windows или Linux перейдите в «Файл» > «Настройки » > «Редактор» > «Live Edit» .
- В macOS перейдите в Android Studio > Настройки > Редактор > Live Edit .
В настройках выберите опцию Live Edit и режим, который вы хотите запустить.
В ручном режиме изменения кода вносятся каждый раз, когда вы нажимаете Control+' ( Command+' в macOS). В ручном режиме при сохранении изменения кода применяются каждый раз при сохранении вручную с помощью Control + S ( Command + S в macOS). В автоматическом режиме изменения кода применяются на вашем устройстве или в эмуляторе по мере внесения изменений.
В редакторе откройте файл
MainActivity
, который является точкой входа для вашего приложения.Нажмите «Выполнить». для развертывания вашего приложения.
После включения 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.
Устранение неполадок интерактивного редактирования
Если вы не видите свои изменения на тестовом устройстве, возможно, Android Studio не смогла обновить ваши изменения. Проверьте, отображается ли индикатор Live Edit «Устарело» , как показано на рисунке 5, что указывает на ошибку компиляции. Для получения информации об ошибке и предложений по ее устранению щелкните индикатор.
Ограничения живого редактирования
Ниже приведен список текущих ограничений.
[Применимо только к 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 литералов:
Применить изменения
Применить изменения позволяет обновлять код и ресурсы без необходимости повторного развертывания приложения на эмуляторе или физическом устройстве (с некоторыми ограничениями ).
Всякий раз, когда вы добавляете, изменяете или удаляете составные элементы, вы можете обновить свое приложение без необходимости его повторного развертывания, нажав кнопку «Применить изменения кода» :
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Настройка анимации {:#customize-animations}
- Анимация на основе значений
- Добавить параметры