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、调试或用户显式重启

关联能力