本文同步自微信公众号 "Android技术圈"
每次改一行代码,等 30 秒编译,再手动导航回刚才的页面。
这就是 Android 开发的日常。Flutter 开发者早就用上了亚秒级 Hot Reload,而我们还在盯着 Gradle 进度条发呆。
Compose HotSwan 来了,它要终结这一切。

先看效果:改代码,UI 秒变
改一个 Composable 的颜色、文字、布局,按下保存------不到 1 秒,运行中的 App 直接刷新。
不需要重新编译整个项目。不需要重启 App。不需要重新导航到当前页面。
甚至 remember{} 里的状态、滚动位置、导航栈,全部保留。
这不是 Android Studio 自带的 Live Edit。这是真正意义上的 Hot Reload。
Live Edit 哪里不行?
Android Studio 内置的 Live Edit 听起来很美好,但用过的人都知道它的局限:
- 只支持非常简单的修改(改个字符串颜色还行)
- 稍微复杂一点的改动就会触发全量重编译
- 经常莫名其妙地不生效,需要手动触发
- 状态丢失是家常便饭
Live Edit 本质上是一个"有限的代码替换",它没有解决根本问题:如何在不重建 APK 的前提下,把修改过的代码安全地注入到运行中的 App?
HotSwan 的思路完全不同。

五步流水线:从保存到生效
HotSwan 的核心是一条精心设计的五步流水线:
检测变更 → IDE 插件监听文件保存,识别哪些 .kt 文件被修改
增量编译 → 只编译发生变更的 Gradle 模块,而不是整个项目。首次编译 3-5 秒,后续命中缓存后降到 100ms-1s
提取差异 → 从编译产物中提取变更的 class,与已安装 APK 的字节码做对比,只保留真正有差异的部分
运行时替换 → 通过 Android Runtime (ART) 的 native agent,直接在内存中替换目标 class。已有的对象实例在下次方法调用时自动使用新代码
触发重组 → Compose 编译器插件精准定位受影响的 Composable 作用域,只重组必要的部分
整条流水线跑下来,差异提取 <100ms,运行时替换 <50ms,重组 <100ms。除去首次的编译预热,日常开发中的体感就是:保存即生效。
状态保留的三道防线
Hot Reload 最怕的就是丢状态。你好不容易填了一堆表单数据、导航到了三层深的页面,结果一刷新全没了。
HotSwan 设计了三级降级策略:
第一级:精准重组 ------默认行为。只影响修改过的 Composable 作用域,Slot Table 完整保留。remember{}、滚动位置、导航栈全部不受影响。
第二级:Composition 重置 ------当改动范围较大时触发。会销毁 Composition,但 rememberSaveable{} 和 ViewModel 仍然存活。
第三级:Activity 重启------最后的兜底方案。完整重建 Activity,相当于配置变更。
大多数日常修改都停留在第一级。你几乎感知不到状态有任何变化。

它能改什么?不能改什么?
支持的修改:
- 修改 Composable 函数体(颜色、文字、布局、逻辑)
- 新增 Composable 函数
- 调整 Composable 调用顺序
- 修改 XML 资源(strings、colors、dimensions)
不支持的修改:
- 修改方法签名(参数类型、返回值)
- 新增/删除字段
- 结构性的类变更
遇到不支持的修改时,HotSwan 会自动检测并降级为全量编译,不会默默吞掉你的改动。
不只是 Hot Reload
HotSwan 还附带了几个很实用的功能:
可视化快照------每次 Hot Reload 自动截图,配合代码 diff 一起保存。你可以在时间线上回溯,看到每次修改对 UI 的影响。
代码时光旅行------看到某个历史快照觉得更好?直接回退到那个版本的代码。
Design Bridge------把快照导出为可分享的视觉报告,方便和设计师沟通"这个效果对不对"。支持像素级对比、滑块叠加等协作功能。
这些功能放在一起,HotSwan 不只是一个 Hot Reload 工具,更像是一个 Compose UI 开发的完整工作台。

价格和使用门槛
HotSwan 是一个 JetBrains 插件,通过 JetBrains Marketplace 安装。
- 个人版 <math xmlns="http://www.w3.org/1998/Math/MathML"> 5 ,商业版 5,商业版 </math>5,商业版15,有效期到 2027 年底
- 要求 Android API 28+(因为依赖 ART 的 native agent 能力)
- 支持 IntelliJ IDEA 和 Android Studio
考虑到这个工具每天能帮你节省的时间,这个价格基本等于白送。
对开发体验意味着什么
我一直觉得 Android 开发体验和 Flutter、SwiftUI 之间最大的差距不在语言,不在框架,而在反馈循环的速度。
写一行代码到看到效果,Flutter 只要几百毫秒,而 Android 动辄几十秒。这个差距日积月累,直接影响开发者的心流状态和生产力。
HotSwan 把这个反馈循环压缩到了亚秒级。这不是一个"锦上添花"的工具,而是一个改变开发方式的工具。
当你可以秒级看到 UI 变化时,你会更愿意尝试不同的方案,更大胆地调整布局和动画,更快地迭代设计。
写在最后
Compose HotSwan 做了 Android 社区等了很久的事情:让 Compose 开发拥有和 Flutter 一样快的反馈循环。
五步流水线、三级状态保留、亚秒级生效------这是一套经过深思熟虑的工程方案,而不是简单的代码注入 hack。
如果你每天都在写 Compose,强烈建议试一试。
你现在的 Compose 开发中,等编译最久的场景是什么?评论区聊聊!