作为移动开发者,您通常需要逐步开发应用界面,而不是一次性开发所有内容。Android Studio 通过提供不需要完整 build 即可检查、修改值和验证最终结果的工具,支持使用 Jetpack Compose 进行逐步开发。
AI 辅助界面迭代
您可以使用 Android Studio 中的 AI 智能体,直接从设计预览中迭代优化和转换 Compose 界面。右键点击 Compose 预览,然后选择以下 AI 操作之一:
- Match UI to target image:选择此选项可上传参考设计模拟。 然后,代理会建议代码更改,以使您的实现尽可能与设计保持一致。
- Transform UI:使用自然语言提示(例如“将 按钮颜色更改为蓝色”)来描述您要对界面进行的具体修改 。
实时编辑
借助实时编辑功能,您可以实时更新模拟器和实体设备中的可组合项。此功能可最大限度地减少编写应用与构建应用之间的上下文切换,从而减少中断,让您有更多时间专注于代码编写。
实时编辑有三种模式:
- 手动:所做的代码更改会在您使用 Control+'(在 macOS 上,则使用Command+')手动推送时应用。
- 保存时手动:所做的代码更改会在您使用 Control+S(在 macOS 上,则使用Command+S)手动保存时应用。
- 自动:当您更新可组合函数时,所做的更改会应用到设备或模拟器中。
实时编辑侧重于界面和用户体验方面的代码更改,而不支持进行方法签名更新、新方法添加或类层次结构变更等方面的更改。如需了解详情,请参阅实时编辑的限制列表。
此功能不能代替构建和运行应用或 Apply Changes,而旨在优化 Compose 界面开发过程中的构建、部署和迭代工作流程。
最佳实践工作流程如下:
- 设置应用,使其能够运行。
- 尽可能多地进行实时编辑,直到您需要进行实时编辑功能不支持的更改,例如,在应用运行时添加新方法。
- 进行不受支持的更改后,点击 Run
以重启
应用并恢复实时编辑。
开始使用实时编辑功能
如需开始使用,请按照以下步骤创建空的 Compose activity,为项目启用实时编辑功能,并使用该功能来进行更改。
设置新项目
在开始之前,请确保您已安装 Android Studio Giraffe 或更高版本,并且实体设备或模拟器的 API 级别不低于 30。
打开 Android Studio,然后在 Welcome to Android Studio 对话框中选择 New Project 。如果您已打开某个项目,则可以依次前往 File > New > New Project 来创建新项目。
对于 Phone and Tablet ,选择 Empty Compose Activity 模板,然后点击 Next 。
图 3. 您可以选择的模板。为实时编辑, 选择 Empty Compose Activity。 使用所需信息填写 New Project 对话框,其中包含名称、软件包名称、保存位置、最低 SDK 和 build 配置语言。
图 4. 示例项目设置。 点击 Finish 。
启用实时编辑功能
前往设置以启用实时编辑功能。
- 在 Windows 或 Linux 上,依次前往 File > Settings > Editor > Live Edit。
- 在 macOS 上,依次前往 Android Studio > Settings > Editor > Live Edit。
从设置中选择 实时编辑 选项和要运行的模式。
在手动模式下,每次按 Control+'(在 macOS 上,则按 Command+')时,系统都会推送代码更改。在保存时手动模式下,所做的代码更改会在您每次使用 Control+S(在 macOS 上,则使用 Command+S)手动保存时应用。在自动模式下,所做的代码更改会即时应用到设备或模拟器中。
图 5. 实时编辑设置。 在编辑器中,打开
MainActivity文件,这是应用的入口点。点击 Run
以部署应用。开启实时编辑功能后,Running Devices 工具窗口的右上角会显示 Up-to-date 绿色对勾标记:

进行更改并查看更改效果
当您在编辑器中做出支持的更改时,虚拟或实体测试设备会自动更新。
例如,将 MainActivity 中现有的 Greeting 方法修改为以下内容:
@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 可能未能更新您的修改。请检查实时编辑指示器是否显示 Out Of Date (如图 7 所示),这表示发生了编译错误。如需了解有关错误的信息以及有关如何解决该错误的建议,请点击指示器。
实时编辑功能的限制
以下是现有限制的列表。
[仅适用于 Android Studio Giraffe 及更高版本] 实时编辑需要 Compose Runtime 1.3.0 或更高版本。 如果您的项目使用较低版本的 Compose,系统会停用实时编辑功能。
[仅适用于 Android Studio Giraffe 及更高版本] 实时编辑需要 AGP 8.1.0-alpha05 或更高版本。如果您的项目使用较低版本的 AGP,系统会停用实时编辑功能。
实时编辑功能要求实体设备或模拟器搭载 API 级别为 30 或更高级别的操作系统。
实时编辑功能仅支持修改函数正文,也就是说,您无法进行下列操作:更改函数名称或签名、添加或移除函数、更改非函数字段。
首次更改文件中的 Compose 函数时,实时编辑会重置应用的状态。这仅在首次更改代码后发生,也就是说,您对该文件中的 Compose 函数进行的后续代码更改不会重置应用状态。
使用实时编辑功能修改过的类可能会导致性能下降。如果要评估应用的 性能,请使用干净的发布 build 运行应用。
您必须执行完整运行,以便调试程序在使用实时编辑修改过的类上运行。
使用实时编辑修改正在运行的应用,可能会导致应用崩溃。如果发生这种情况, 您可以使用 Run
按钮重新部署应用。实时编辑不会执行项目 build 文件中定义的任何字节码处理,例如,使用 Build 菜单中的选项或通过点击 Build 或 Run 按钮构建项目时要应用的字节码处理。
非可组合函数会在设备或模拟器上实时更新,并且会触发完全重组。完全重组可能不会调用更新后的函数。对于非可组合函数,您必须触发新更新的函数或再次运行应用。
应用重启后,实时编辑不会自动恢复。您必须再次运行应用。
实时编辑功能仅支持可调试的进程。
实时编辑不支持在 build 配置中的
kotlinOptions下为moduleName使用自定义值的项目。实时编辑功能不适用于多部署部署。这意味着,您不能先部署到一台设备,然后再部署到另一个设备。实时编辑功能仅在应用部署到的最后一组设备上有效。
实时编辑功能支持多设备部署(部署到通过目标设备下拉菜单中的 Select multiple devices 创建的多台设备)。不过,此功能尚未获得正式支持,因此可能会出现问题。如果您遇到问题, 请报告该问题。
Apply Changes/Apply Code Changes 与实时编辑不兼容,并且需要重启正在运行的应用。
实时编辑目前不支持 Android Automotive 项目。
关于实时编辑功能的常见问题解答
实时编辑功能目前处于什么状态?
实时编辑功能已在 Android Studio Giraffe 中推出。如需开启此功能,请依次前往 File > Settings > Editor > 实时编辑 (在 macOS 上,则依次前往 Android Studio > Settings > Editor > 实时编辑 )。
何时应使用实时编辑功能?
如果您想快速查看用户体验元素更新(例如,修饰符更新、动画更新)对整体应用体验的影响,就可以使用实时编辑功能。
何时应避免使用实时编辑功能?
实时编辑侧重于界面和用户体验方面的代码更改,而不支持进行方法签名更新、新方法添加或类层次结构变更等方面的更改。如需了解详情,请参阅实时编辑功能的 限制。
何时应使用 Compose 预览?
开发单个可组合项时,请使用 Compose 预览。预览会直观呈现 Compose 元素,还会自动刷新来显示代码更改的效果。预览还支持在不同的配置和状态(例如深色主题、语言区域、字体大小)下查看界面元素。
使用 Compose 进行迭代式代码开发
实时编辑和 Compose Multiplatform 的热重载功能可以节省 您的时间,并提高您在使用 Compose 进行开发时的效率。不过,它们满足了不同类型开发的需求:
实时编辑支持使用 Jetpack Compose 进行 Android 应用 的迭代开发。借助此功能,您可以实时更新模拟器和实体设备中的可组合项。此功能可最大限度地减少编写应用与构建应用之间的上下文切换,从而减少中断,让您有更多时间专注于代码编写。
Compose 热重载功能满足了 同样的需求,但支持 使用 Compose Multiplatform 构建的桌面应用。借助此功能,您可以更改 Compose Multiplatform 应用中的界面代码,并在代码发生更改时通过智能重载代码来实时查看结果。
虽然这两个功能在 Compose 引擎中共享许多技术,并且 支持许多类似的使用场景,但它们的功能并不相同 ,因为它们适用于不同类型的 Compose 开发。
如果您要开发 Android 应用,则应使用实时编辑来加快 开发过程。如果您要使用 Compose Multiplatform 开发桌面应用,则应使用 Compose 热重载。
实时编辑字面量(已废弃)
Android Studio 可以实时更新在预览、模拟器和实体设备中的可组合项中使用的一些常量字面量。下面是一些受支持的类型:
IntStringColorDpBoolean
通过“字面量实时编辑”界面指示器启用字面量修饰功能,无需进行编译即可查看触发实时更新的常量字面量:
Apply Changes
Apply Changes 可让您更新代码和资源 ,而不必将应用重新部署到模拟器或实体设备上(存在一些 限制)。
每当您添加、修改或删除可组合项时,您只需点击一下 Apply Code Changes 按钮,即可更新应用,而不必重新部署:

为您推荐
- 注意:当 JavaScript 处于关闭状态时,系统会显示链接文字
- 自定义动画 {:#customize-animations}
- 基于价值的动画