HotFix的抉择

作者: 程序亦非猿 | 来源:发表于2016-04-22 09:11 被阅读1726次

前天在公众号发起了一个HotFix的小调查,结果是 AndFix遥遥领先
更有三个牛逼哄哄的同学自己写!!表示佩服!!
但是我没那么屌,怎么破?只能选择依靠开源
本文记录一个不会自己HotFix的弱鸡的HotFix调研过程以及最后结果和建议

现有框架 :

qq空间的暂时还没开源

AndFix

alibaba出品

功能:method body's replacing 即支持方法级别修复

Support

Android Version :2.3-6.0
dalvik & art runtime

优缺点

无需重启

andfix只能替换方法而不能增减新的字段,也不能下发类

issue(122个)

查看了一些issue,记录一些可能存在的问题以及缺陷:

  1. 兼容性问题
  2. 部分手机奔溃
  3. 部分手机ANR
  4. 不能改变量的值,不过方法的添加修改,删除,都可以
  5. 需要注意多进程
  6. ART下模式无法对同一个方法进行多次更新

只是说可能,因为很多issue都没人回复

Nuwa

贾吉鑫(原点评)出品

Support

dalvik & art runtime
productFlavor & buildType
proguard & multidex
纯Java 实现

优缺点

基于类级别的修复,不仅仅只是修复方法

需要重启

issue(46个)

  1. ART环境支持的不好
  2. i50 nuwa只支持 4.0以上,并不是作者所描述的2.3~6.0,作者使用的BaseDexClassLoader这个4.0才有的API,导致4.0以下的手机用Nuwa就必定崩溃,特此提醒

我联系了一下作者,他离开点评去创业后,非常忙碌,所以近期没有时间维护项目,很是可惜,作者的能力十分了得!

Compare

dexposed 不支持art(5.0+) 比较致命,所以最开始就被排除了

Nuwa HotFix DroidFix 都基于ClassLoader,兼容性以及稳定性好,支持4.0~6.0,对于启动速度有影响,补丁重启后才能生效

AndFix,支持2.3~6.0,但是兼容性以及稳定性较差,关键是不需要重启

原本想画个表,但是时间有限,不画了,就是这么任性。。。

|HotFix|Reboot|Version|LastUpdateTime|
|:---:|:---:|:---:|
|AndFix|No|0.4.0|2016.4|
|Nuwa|Yes|1.0.0|五个月之前|

结果

虽然我原本从各个维度去考虑如何选择,比如Star数,版本号,更新频率,issue解答率等等,
但是到最后其实可选的余地就两个,想要不重启即可生效,就选AndFix,否则可以考虑Nuwa

另外据小道消息听闻,QQ空间团队的热补(ClassLoader原理的鼻祖)会在qcan结束后开源,时间未知

我这个只是简单的比较,较为详细的可以看看大帅的『各大热补丁方案分析和比较』一文

另外提供了些许资料,有兴趣的可以看看

资料

Android热更新实现原理
各大热补丁方案分析和比较

安卓App热补丁动态修复技术介绍

相关文章

  • HotFix的抉择

    前天在公众号发起了一个HotFix的小调查,结果是 AndFix遥遥领先更有三个牛逼哄哄的同学自己写!!表示佩服!...

  • AndFix从入门到放弃

    前一段时间,我在公众号上发起了HotFix调研,之后又写了一篇HotFix的抉择,也告诉了大家我们最后选择了And...

  • XLua热更学习笔记(一)

    1.hotfix.md说明,常见FAQ解答 hotfix.md的原话:这个特性默认是关闭的,需要添加HOTFIX_...

  • Hotfix

    使用方式 1、打开该特性 添加HOTFIX_ENABLE宏,(在Unity3D的File->Build Setti...

  • android热更新

    HotFix 简介:阿里的热补,https://github.com/dodola/HotFix阿里巴巴无线事业部...

  • 如何解决意料之外的问题

    这周处理了一个HOTFIX,一面忙的焦头烂额,另一面也在反思,HOTFIX可能完全避免吗? 什么是HOTFIX?字...

  • 2022-03-15 gitflow

    hotfix: 从master 拉分支,修改完后 合并到 dev 和 master,接着删除hotfix分支。 r...

  • Android Hotfix

    Hotfix:让应用能够在无需重新安装的情况实现更新,帮助应用快速建立动态修复能力。 热补丁技术在2015年开始爆...

  • hotfix to inchat

    前两天发现python一个很有趣的库,itchat,它提供了很多微信的接口,可以利用它来做很多微信相关的事情,比...

  • 阿里HotFix成功经验流程分享(最全最专业)

    登陆官网申请权限,开通HotFix支持。 一、进入HotFix后台,配置好后台数据。 二、找到iOS的SDK,下载...

网友评论

本文标题:HotFix的抉择

本文链接:https://www.haomeiwen.com/subject/soxxrttx.html