贴出一堆网上看的记录:
目前主流的热修复技术框架
阿里系的: Andfix(Alibaba - start:6.6k 3、4年未更新了)、Hotfix(3、4年未更新了)、Sophix(移动热修复App热修复Android热修复实时修复线上Bug热修复 - 阿里云 - 没开源)
腾讯系的:QQ空间超级补丁技术、Qfix(热度不高)、Tinker(微信 Tencent/tinker - 持续更新 start: 14.3k)
美团系的:Robust (Meituan-Dianping/Robust - start:3.4k 有更新 - 可以考虑拿来做方法级别修复)
饿了么的:Amigo (eleme/Amigo - start:1.3k 2,3年未更)
关于热修复的技术积淀
最开始 ,是手淘基于Xposed进行了改进,产生了针对Android Dalvik虚拟机运行时的Java method Hook技术——Dexposed。但是这个方案由于对底层Dalvik结构过于依赖,最终无法兼容Android5.0以后
后来支付宝提出了新的热修复方案Andfix。Andfix同样是一种底层结构替换的方案,也达到了运行时生效及时修复的效果,阿里后来对Andfix改进,对相关业务解耦后,推出了阿里百川Hotfix方案,此时的修复已经非常的不错,对代码修复需求都可以解决,而且全版本兼容,但是问题在于Anfix本身有局限,它只提供代码层面的修复,对于资源和so库的修复都还未能实现
最终在2017年Sophix的横空出世,打破了各家热修复技术纷争的局面。在代码修复,资源修复,so修复的方面,以及方案的安全性,易用性放慢,sophix都做到了业界领先
通过类加载机制实现
优点:适用性强、修复范围广、限制少
缺点:属于热修复中的冷修复、需要重启App
通过底层替换方法实现
优点:时效好、不需重启,即使生效
缺点:受限制较多(需要修改虚拟机字段,如果手机厂商修改了虚拟机…….)。
-------我觉得当前的选择-------
- 如果只是简单的修复方法,选择美团的Meituan-Dianping/Robust,小公司小项目应该可以了,也还是在更新中。像阿里之前的修复方案不建议选择了,基本三四年没维护了。
- 如果是还需要针对so,资源等,可以考虑微信的Tencent/tinker,基础版开源免费.
- 也可以采用阿里的Sophix,不过收费,有免费阀值,这个如果项目没啥这种硬性需求,感觉没必要。 毕竟android这种一年更新多次,不会怎么影响用户,关键是要保证产品品质和用户体验才是关键! 所以我打算快速试下Robust和tinker.....其他的都可以深入了解学习!
Next, Let's do it!
来自如下网友分享:
网友评论