Разработчики мобильных приложений часто создают интерфейс поэтапно, а не сразу. Android Studio поддерживает этот подход с помощью Jetpack Compose, предоставляя инструменты, которые позволяют проверять и изменять значения, а также просматривать конечный результат без полной сборки.
Итерация интерфейса с помощью ИИ
Используя ИИ-агента в Android Studio, вы можете итеративно улучшать и преобразовывать интерфейс Compose прямо в окне предварительного просмотра макета. Нажмите правой кнопкой мыши на предварительный просмотр и выберите одно из следующих действий ИИ:
- Сопоставить интерфейс с целевым изображением. Выберите этот вариант, чтобы загрузить макет референсного дизайна. Затем агент предложит изменения в коде, чтобы ваша реализация максимально соответствовала дизайну.
- Преобразование интерфейса. Используйте запросы на естественном языке (например, "измени цвет кнопки на синий"), чтобы описать, какие изменения вы хотите внести в интерфейс.
Изменения в реальном времени
Функция «Изменения в реальном времени» позволяет обновлять composable-функции в эмуляторах и на физических устройствах в реальном времени. Эта функция позволяет не переключаться между написанием кода и созданием приложения, а сосредоточиться на коде.
В режиме изменений в реальном времени есть три варианта:
- Вручную. Изменения кода применяются, когда вы вручную нажимаете сочетание клавиш Ctrl + " (Command + " на macOS).
- Вручную при сохранении. Изменения кода применяются, когда вы вручную сохраняете их, используя сочетание клавиш Ctrl+S (Command+S в macOS).
- Автоматически. Изменения применяются на устройстве или эмуляторе, когда вы обновляете composable-функцию.
Изменения в реальном времени предназначены для изменений кода, связанных с интерфейсом и UX. Изменения в реальном времени не поддерживают такие изменения, как обновление сигнатуры метода, добавление новых методов или изменение иерархии классов. Подробнее об ограничениях Live Edit…
Эта функция не заменяет сборку и запуск приложения или применение изменений. Он предназначен для оптимизации рабочего процесса при создании, развертывании и итеративной разработке интерфейса Compose.
Рекомендуемый порядок действий:
- Настройте приложение, чтобы его можно было запустить.
- Используйте Изменения в реальном времени как можно дольше, пока не потребуется внести изменения, которые он не поддерживает, например добавить новые методы во время работы приложения.
- После того как вы внесете неподдерживаемое изменение, нажмите Выполнить
, чтобы перезапустить приложение и возобновить Изменения в реальном времени.
Как начать работу с Изменениями в реальном времени
Чтобы начать работу, выполните следующие действия: создайте пустой компонент Compose Activity, включите функцию Изменения в реальном времени для проекта и внесите изменения с помощью Изменений в реальном времени.
Как настроить новый проект
Прежде чем начать, убедитесь, что у вас установлена версия Android Studio Giraffe или более поздняя и что уровень API вашего физического устройства или эмулятора не ниже 30.
Откройте Android Studio и выберите New Project (Новый проект) в диалоговом окне Welcome to Android Studio (Добро пожаловать в Android Studio). Если у вас уже открыт проект, вы можете создать новый, выбрав Файл > Создать > Новый проект.
Выберите шаблон Empty Compose Activity (Пустой объект activity для создания) для Phone and Tablet (Телефоны и планшеты) и нажмите Next (Далее).
Рисунок 3. Шаблоны, которые можно выбрать. Для Изменения в реальном времени выберите Empty Compose Activity (Пустое действие создания). В диалоговом окне New Project (Новый проект) укажите необходимые сведения: название, название пакета, место сохранения, минимальную версию SDK и язык конфигурации сборки.
Рисунок 4. Пример настроек проекта. Нажмите Готово.
Как включить изменения в реальном времени
Чтобы включить функцию "Изменения в реальном времени", перейдите в настройки.
- В Windows или Linux выберите Файл > Настройки > Редактор > Изменения в реальном времени.
- На macOS выберите Android Studio > Settings (Настройки) > Editor (Редактор) > Изменения в реальном времени.
Выберите Изменения в реальном времени и режим, который хотите использовать.
В ручном режиме изменения кода отправляются каждый раз, когда вы нажимаете Control + " (Command + " на macOS). В ручном режиме изменения кода применяются при каждом сохранении, которое выполняется вручную с помощью сочетания клавиш Control+S (Command+S на macOS). В автоматическом режиме изменения кода применяются к устройству или эмулятору по мере их внесения.
Рисунок 5. Настройки Изменений в реальном времени. В редакторе откройте файл
MainActivity, который является точкой входа для вашего приложения.Нажмите Run (Запустить)
, чтобы развернуть приложение.После того как вы включите функцию Изменения в реальном времени, в правом верхнем углу окна инструмента Запущенные устройства появится зеленый флажок Актуально:

Как вносить и проверять изменения
Когда вы вносите поддерживаемые изменения в редакторе, виртуальное или физическое тестовое устройство обновляется автоматически.
Например, измените существующий метод 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) ) }
Изменения мгновенно отображаются на тестовом устройстве, как показано на рисунке 6.
Greeting.Устранение неполадок с изменениями в реальном времени
Если изменения не отображаются на тестовом устройстве, возможно, Android Studio не удалось их обновить. Проверьте, не указано ли в индикаторе изменений в реальном времени Устарело, как показано на рисунке 7. Это означает, что произошла ошибка компиляции. Чтобы узнать больше об ошибке и получить рекомендации по ее устранению, нажмите на индикатор.
Ограничения функции "Изменения в реальном времени"
Ниже приведен список действующих ограничений.
[Только для Android Studio Giraffe и более поздних версий] Для функции "Изменения в реальном времени" требуется Compose Runtime 1.3.0 или более поздней версии. Если в проекте используется более ранняя версия Compose, функция Изменения в реальном времени будет отключена.
[Только для Android Studio Giraffe и более поздних версий] Для функции "Изменения в реальном времени" требуется AGP 8.1.0-alpha05 или более поздней версии. Если в проекте используется более ранняя версия AGP, функция Изменения в реальном времени будет отключена.
Для работы функции "Изменения в реальном времени" требуется физическое устройство или эмулятор с уровнем API 30 или выше.
В режиме Live Edit можно редактировать только тело функции. Это значит, что вы не можете изменить название или сигнатуру функции, добавить или удалить функцию или изменить поля, не относящиеся к функциям.
При первом изменении функции Compose в файле Изменения в реальном времени сбрасывает состояние приложения. Это происходит только после первого изменения кода. Последующие изменения кода в функциях Compose в этом файле не сбрасывают состояние приложения.
Изменение классов с помощью функции Live Edit может привести к снижению производительности. Запустите приложение и используйте чистую конечную сборку, если вы оцениваете его производительность.
Чтобы отладчик работал с классами, измененными с помощью функции "Изменение в реальном времени", необходимо выполнить полный запуск.
Приложение, которое вы редактируете с помощью функции "Изменение в реальном времени", может аварийно завершить работу. В этом случае вы можете повторно развернуть приложение, нажав кнопку Выполнить
.Функция "Изменения в реальном времени" не выполняет никаких манипуляций с байт-кодом, которые определены в файле сборки проекта, например манипуляций с байт-кодом, которые будут применены при сборке проекта с использованием параметров в меню Сборка или при нажатии кнопок Сборка или Запустить.
Функции, не поддерживающие композицию, обновляются в реальном времени на устройстве или эмуляторе, и запускается полная перекомпоновка. При полной рекомпозиции функция updated может не вызываться. Для функций, которые нельзя объединять, необходимо запустить обновленные функции или приложение ещё раз.
Изменения в реальном времени не возобновляются при перезапуске приложения. Вам нужно будет запустить приложение снова.
Изменения в реальном времени поддерживают только процессы, доступные для отладки.
Изменения в реальном времени не поддерживают проекты, в которых используются специальные значения для
moduleNameв разделеkotlinOptionsконфигурации сборки.Изменения в реальном времени не работают с развертываниями, в которых используется несколько файлов развертывания. Это означает, что вы не можете сначала развернуть приложение на одном устройстве, а затем на другом. Режим Изменения в реальном времени активен только на последнем наборе устройств, на которые было развернуто приложение.
Функция "Изменения в реальном времени" работает с развертываниями на нескольких устройствах (развертываниями на нескольких устройствах, созданными с помощью функции Выбрать несколько устройств в раскрывающемся списке целевых устройств). Однако официально эта функция не поддерживается, поэтому могут возникнуть проблемы. Если у вас возникнут проблемы, сообщите нам о них.
Функции "Применение изменений" и "Применение изменений кода" несовместимы с функцией "Изменения в реальном времени" и требуют перезапуска приложения.
В настоящее время функция Изменения в реальном времени не поддерживает проекты Android Automotive.
Часто задаваемые вопросы об изменениях в реальном времени
Каков текущий статус функции "Редактирование трансляций"?
Функция "Изменения в реальном времени" доступна в Android Studio Giraffe. Чтобы включить эту функцию, выберите File (Файл) > Settings (Настройки) > Editor (Редактор) > Изменения в реальном времени (в macOS: Android Studio > Settings (Настройки) > Editor (Редактор) > Изменения в реальном времени).
Когда следует использовать Изменения в реальном времени?
Используйте функцию "Изменения в реальном времени", когда хотите быстро увидеть, как изменения в элементах UX (например, модификаторах и анимации) влияют на общее удобство использования приложения.
Когда следует избегать использования функции "Изменения в реальном времени"?
Изменения в реальном времени предназначены для изменений кода, связанных с интерфейсом и UX. Он не поддерживает такие изменения, как обновление сигнатуры метода, добавление новых методов или изменение иерархии классов. Подробнее об ограничениях Live Edit…
Когда следует использовать предварительный просмотр
Используйте Compose Preview при разработке отдельных компонентов. Предварительный просмотр позволяет визуализировать элементы Compose и автоматически обновляется, чтобы показать эффект изменений в коде. Предварительный просмотр также поддерживает просмотр элементов интерфейса в разных конфигурациях и состояниях, например в тёмной теме, с разными региональными настройками и масштабом шрифта.
Итеративная разработка кода с помощью Compose
Функции Изменения в реальном времени и Hot Reload для Compose Multiplatform помогают экономить время и повышать продуктивность при разработке с помощью Compose. Однако они предназначены для разных типов разработки:
Изменения в реальном времени поддерживают итеративную разработку с помощью Jetpack Compose для приложений для Android. Он позволяет обновлять композиции в эмуляторах и на физических устройствах в режиме реального времени. Эта функция позволяет не переключаться между написанием кода и сборкой приложения, чтобы вы могли дольше сосредоточиться на коде.
Горячая перезагрузка Compose выполняет ту же функцию, но поддерживает приложения для компьютеров, созданные с помощью Compose Multiplatform. Она позволяет вносить изменения в код интерфейса приложения Compose Multiplatform и видеть результаты в реальном времени, поскольку код автоматически перезагружается при каждом изменении.
Хотя эти две функции используют много общих технологий в движке Compose и поддерживают похожие варианты использования, они не обладают одинаковыми возможностями, поскольку применяются к разным типам разработки с помощью Compose.
Если вы разрабатываете приложение для Android, используйте функцию "Изменения в реальном времени", чтобы ускорить процесс разработки. Если вы разрабатываете приложение для ПК с помощью Compose Multiplatform, используйте горячую перезагрузку Compose.
Изменение литералов в реальном времени (устаревшая функция)
Android Studio может в реальном времени обновлять некоторые константные литералы, используемые в composable-функциях в предварительном просмотре, эмуляторе и на физическом устройстве. Вот некоторые поддерживаемые типы:
IntStringColorDpBoolean
Вы можете просматривать постоянные литералы, которые активируют обновления в реальном времени без этапа компиляции, включив декорации литералов с помощью индикатора "Редактирование литералов в реальном времени":
Применение изменений
Функция Применить изменения позволяет обновлять код и ресурсы без повторного развертывания приложения на эмуляторе или физическом устройстве (с некоторыми ограничениями).
При добавлении, изменении или удалении элементов composable можно обновить приложение, не развертывая его заново. Для этого нажмите кнопку Применить изменения кода:

Рекомендуем
- Примечание. Текст ссылки показывается, когда JavaScript отключен.
- Как настроить анимацию{:#customize-animations}
- Анимации на основе ценности