导语
什么是热修复?热修复又称热补丁,一般是用事先定义好的接口,从网络下载代码并更新客户端代码,从而在用户无感知、也无需重装App的情况下,实现动态修复或动态更新。这样带来的优势就是成本低、效率高,快速作用,节省应用发布时间,缩短开发周期,降低开发成本;方便数据统计和测试反馈,有利于更好地改进App。
正常的流程:
热修复流程:
热修复特点:
- 无需重新发版,实时高效热修复;
- 用户无感知修复,无需下载新的应用,代价小;
- 修复成功率高,把损失降到最低。
一、开源流行方案对比:
如今的热修复技术可谓是百花齐放,每个产品都各有优势和特点,不过各自都存在局限性,或不稳定、或补丁大、或效率低、或接入繁琐,大部分技术上看起来似乎可行,但实际体验并不好。大体上从Githup星评能直观了解到各大平台方案受欢迎程度,即开发者信赖程度。
方案名称 | 方案开发公司 | 开发时间 | Github星评 |
---|---|---|---|
Robust | 美团(Java派系) | 2016年 | 2500 |
Andfix | 阿里(Native派系) | 2015年 | 5994 |
Nuwa | 大众点评(dex文件补丁) | 2015年 | 2880 |
Dexposed | 阿里(不考虑,需要root权限) | ||
Amigo | 饿了么(apk补丁) | 2016年 | 1231 |
Tinker | 微信(apk补丁) | 2016年 | 11259 |
RocooFix | 百度金融(Nuwa改进版) | 2016年 | 1599 |
1、美团Robust,基于Instant Run的原理兼容性高,实时生效,但是apk的体积会增大,so和资源的替换暂时不支持,侵入式打包,且接入复杂。
2、女娲Nuwa,坑比较多,比如不支持Gradle1.5以上、补丁包没有签名校验、字节码注入复杂,维护成本高。
3、QQ空间QZone,兼容性高,侵入式,不即时生效,混淆对性能会有一定的影响,且在Art模式下出现内存错乱(是Tinker在MDCC上指出的);
4、饿了么Amigo,目前使用人数最少,网上可参考资料太少,几乎查不到优接入经验和踩坑经验的文章。
5、RocooFix跟Andfix相似,问题是兼容性差,有些机型会失效。
平台 | HotFix | AndFix | Tinker | Qzone | Robust |
---|---|---|---|---|---|
即时生效 | yes | yes | no | no |