测试阿里移动热修复框架3.0.2的修复能力以及稳定性。
要点总结
1.如手机上已安装一个客户端并使用热修复补丁进行修复,再选择相同版本号的apk覆盖安装,那么热修复补丁不会被覆盖,会引起异常。这种情况通常出现在测试阶段,为测试结果不被干扰,务必先卸载已安装的客户端再安装apk。升级到版本号高的客户端不会有异常。
2.热启动修复测试,支持修改无参数方法和有参方法(参数中有String、int、boolean基本类型测试通过),支持修改带返回值的方法。
3.冷修复测试通过:新增Field、修改Field值、修改Field类型、删除Field。
新增类测试通过。
4.资源修复测试时,不能修改strings.xml(因打包工具异常影响,此问题待确认)。
5.测试修复资源时遇到打补丁工具错误提示,工具版本3.0.0日志显示版本2.0.0,无法生成补丁,相同apk包在mac下可成功打补丁。
6.Activity、Fragment中修改方法、调用API、修改View隐藏等测试通过。
7.Broadcast Reciver动态注册,修复传参、onRecive成功,静态注册修复成功,冷启动。
实测用例
热修复打包工具存在不稳定的问题,可能影响修复时打补丁包的进度,此问题已与官方反馈。当遇到问题时,可尝试使用其它的平台打包工具。
此热修复框架具有较高的修复能力,对四大组件,方法和类的增改都有修复的能力。满足一般改bug时的需要。
性能影响
阿里移动热修复基于方法修复的原理,在寻找方法指针时会增加一定性能开销。
针对同一个复杂页面,在集成阿里移动热修复前后的性能开销差异见下图。
从截图可以看出,在集成热修复之前开启页面就已达到较高的CPU占用率,但高占用率的时间持续较短,因此只是偶有卡断的现象。集成热修复后,CPU高负载时间变长,卡顿增多。解决此问题唯有对复杂页面进行重构,性能调优。
官方传送
移动热修复产品文档:
https://help.aliyun.com/product/51340.html
demo、sdk、打包工具、测试工具下载:
https://help.aliyun.com/document_detail/53239.html?spm=5176.product51340.6.550.7ssVy1
管理控制台:
https://hotfix.console.aliyun.com/