精选 · Gradle 构建提速实录
配置缓存踩坑:一个 Provider 引发的全量失效
配置缓存开了半年一直命中不了,最后发现是一处 project.file() 在配置阶段读了构建目录。记录完整的排查路径和判定方法。
2026-07-18·990 字 · 约 3 分钟
继续阅读 →POSTS 5 · TIL 4 · SINCE 2026
精选 · Gradle 构建提速实录
配置缓存开了半年一直命中不了,最后发现是一处 project.file() 在配置阶段读了构建目录。记录完整的排查路径和判定方法。
2026-07-18·990 字 · 约 3 分钟
继续阅读 →47 个模块、干净构建 8 分 40 秒。在动手优化之前,先花半天把时间花在哪儿这件事测清楚——结果和团队里所有人的直觉都不一样。
用 Layout Inspector 抓到三处过度重组,逐个分析范围是怎么被撑大的。结论是:lambda 捕获和不稳定参数造成的影响,比状态提升不当更常见。
线上崩溃只在 release 包复现,栈里是 ClassNotFoundException。根因是一条 keep 规则写了类名却没保留其实现类。
buildSrc 里那份 Dependencies.kt 维护了四年,改一个版本号触发全量重编译。迁到 libs.versions.toml 之后,依赖变更不再让 buildSrc 失效。