SuperAPI AI 工具集

understanding-hot-reload-limits

编程与开发

查看项目

更新于 10-16 01:07

技能介绍

用途:该技能帮助开发者判断某次 Kotlin/Compose 改动是否会热重载,还是会触发全量增量构建回退,从而让迭代循环保持在亚秒级。适用于排查“为什么触发了全量重建”“为什么不热重载”“HotSwan 支持哪些改动”,或在 PR 评审中发现参数变更、构造函数变更、接口抽取、新资源 id 等会拖慢热重载的重构。不适用于安装与首次运行排错、纯状态保留问题或 AI 迭代循环与 MCP 服务配置,那些有各自的同级技能。

主要能力:基于 ART 类重定义规则(被重定义的类必须保持相同 schema,仅方法体可变)给出边界表。可热重载:Composable 与非 Composable 函数体、新增或重排 Composable、已有资源值改动、扩展函数、API 30+ 新增 data class 属性、字面量补丁。强制全量重建:增删函数参数、构造函数变更、接口或父类变更、新增资源 id、inline 函数、函数内 lambda 数量变化、删除已有函数、API 30 以下新增 data class 属性。

使用方式:改动不热重载时,先看 HotSwan 工具窗口状态,schema 变更会显示“falling back to incremental build”;再读 diff 判断是纯函数体改动还是 schema 改动。建议先做函数体改动热重载到可用视觉状态,再把签名变更单独保存并接受重建。inline 函数迭代期间可临时去掉 inline,提交前恢复。新资源 id 应批量添加,接受一次重建后再迭代值。

限制:新资源 id 与 inline 函数体改动在任何 Android API 级别都会强制重建;data class 属性新增仅在 API 30+ 可热重载。不要通过关闭 HotSwan 来“强制干净构建”,干净构建应使用 Gradle 的 :app:clean。未经上表核对不得声称某改动会热重载。