这是根据代码变动情况决定的。
代码若变动小,一般会走即时生效热修复,而如果代码变动大,比如在已存在的类中新增方法,修改了so等情况,都会走冷启动。这是由打包工具自行检测代码变化来判断的,开发者无需考虑。
如想测试即时生效,可以:
- 1、补丁工具可以不勾选强制冷启动,这样就由工具自行判断是否生成冷/热补丁。
- 2、不要改首启动页,加载补丁去修复也是需要时间的。
- 3、可以试下改动都是public修饰的类或方法,尽量不要改动static。
- 4、资源或so改动一般都是冷启动生效的。
- 5、实际建议使用冷启动补丁,热补丁可能少数机型加载有问题,如果使用热补丁,尽量全面测试后再发布。
上述使用时补丁还未即时生效,想了解具体细节,可以阅读免费电子版《深入探索Android热修复技术原理》,其中代码修复的章节有详细解释。
并且,在运行期如果在所运行的设备上检测到不支持即时生效热修复,也会在该机型上走强制冷启动修复。
而如果对稳定性有极高要求,可开启强制冷启动选项,这样任何变动都会按强制冷启动方式打包。
冷启动:app重启
热启动:app无需重启
文档内容是否对您有帮助?