Skip to content

Full Swap ​

Full Swap 用于那些不能只靠在线 Code Swap 收口、但仍不需要完整 reinstall 的增量部署。Jugg 会先下发增量产物,再通过 Apply Changes and Restart Activity 让当前界面重新加载变化。

Full Swap 触发场景 ​

操作场景当前支持情况部署策略
需要重启 Activity 的增量变更支持执行 Apply Changes and Restart Activity
资源 overlay 更新后需要界面刷新支持下发 overlay 后重启 Activity
不需要重启 App 的非空变更支持根据 isNeedRestartActivity 选择 full swap
warm-up / dry deploy不触发用户可见 full swap仅用于状态探测
需要 App 进程重启的 hot fix不走 full swap转入 Restart 或 install

这项能力如何生效 ​

text
增量编译成功
  -> 生成非空 JuggDeployData
  -> 判断不需要重启 App,但需要重启 Activity
  -> runTask 选择 APPLY_CHANGES_AND_RESTART_ACTIVITY
  -> JuggDeployer.fullSwap()
  -> 成功后提交部署历史

Full Swap 仍然属于增量部署。它的重点不是重新安装 APK,而是在 Apply Changes 成功后刷新 Activity 生命周期,让资源、布局或部分运行态变化在当前界面重新加载。

与 Code Swap 的区别 ​

策略用户感知适合场景
Code SwapApp 和 Activity 尽量保持运行方法体等可在线替换代码
Full Swap当前 Activity 会重启overlay 或代码变化需要界面重新加载
RestartApp 进程会重启hot fix、agent、调试或用户显式重启

关联能力 ​