Skip to content

实现原理

这里介绍 Jugg 如何缩短 Android 日常开发中的「修改—运行—验证」循环,以及它如何保证连续多轮增量之后,编译产物、设备状态和源码仍然一致。

如果你正在完成一次具体操作,请从使用指南开始;如果你想确认某项能力支持哪些场景,请查看核心能力;遇到失败时优先进入常见问题

从一次 Run 建立全局认识

Jugg 将最近一次完整 Gradle 构建作为可信起点。后续点击 Run 时,它先判断当前工程和设备是否还能沿用这份基线,再编译本轮变化及其受影响代码,最后根据产物类型选择部署方式。只有部署成功,本轮结果才会成为下一次增量的起点。

第一次了解 Jugg,可以先阅读《Jugg 工作原理》,再按遇到的问题进入下面的专题。

按问题选择页面

你想了解什么建议阅读
一次 Run 如何完成决策、编译、部署和状态提交Jugg 工作原理编译流水线增量部署Gradle 回退与基线重建
为什么只改一个文件仍可能编译其他文件增量编译工程模型同步部署数据与影响分析
class 和资源怎样进入设备,为什么有时重启或更新 APK增量部署Apply Changes 中的 class 与 overlayAPK 更新与安装
为什么设备未 ready 仍能部署,状态不一致时怎样恢复Direct Overlay 部署机制部署状态与恢复部署自愈机制兼容部署
代码如何在应用进程中被替换并继续运行App 进程内 Jugg runtimeJugg JVMTI Agent
测试、界面取证和版本兼容如何接入主流程Android Test 流程布局导出与界面证据Android Studio 版本兼容

推荐阅读路径

如果你准备系统理解 Jugg,建议依次阅读:

  1. Jugg 工作原理:先建立一次 Run 的完整模型。
  2. 增量编译:理解不同输入如何生成局部产物。
  3. 增量部署:理解产物如何通过 Apply Changes、APK 更新或兼容部署在设备上生效。
  4. 部署自愈机制:理解已有增量产物怎样通过重试、切换策略和重装继续生效。
  5. Gradle 回退与基线重建:理解当前构建基线何时必须刷新。

需要查找配置、命令和状态含义时,请使用参考手册