最近比较闲,就接手了一个比较烫手的山芋,热更新,这个被抄烂的词。 下面是这段事件我在做技术调研的时候收集的方案,和最终选型的记录。
1 ):Andfix(alipay开源出来的一个android热修补方案) https://github.com/alibaba/AndFix
缺点:
1 不支持yunos
2 不支持新增class,不能修改文件,不能替换资源。
3 我实验了几把也都没有成功。。。
2 ):Amigo(饿了么方案) https://github.com/eleme/Amigo/blob/master/README_zh.md#amigo
这个方案没有做深入的研究,实际使用人数不多。
ps:其实饿了么的这个方案我这里虽然没有做深入的研究,但是看作者写的文档和代码可以看出来,如果是打算自行搭建后端服务来实现的话,我倒是比较推荐该方案。
3):Tinker(微信) https://github.com/Tencent/tinker
缺点:
1 需要修改application,Tinker的实现方案需要完全隐藏原有的application。修改代码比较多
2 gradle配置文件比较复杂
优点:
1 so xml等资源文件都支持
2 差分文件也比较小
如何集成tinker写了个demo 见:https://github.com/hehr/TinkerDemo
总结一下:
1.以上三中方案都需要在代码集成开源方案,代码改动会相对较大。尤其以Tinker为甚。
2.需要自行搭建后端服务。开发成本较高,后期维护的成本也比较高。
以上三种方案,我不推荐。
在调研这些方案的时候,我发现阿里和腾讯确实会挣钱,也很有远见,已经依据原有的方案的基础上纷纷推出来自家的热修补平台,以sdk的方案来集成,服务做成收费的模式。比较称赞这样的行为,君子生财,取之有道。其实想一想,对于中小公司来说,其实初衷无非是想让自家的app拥有热修补的能力,在用户不直觉或者很小的成本上去修补突发和意外情况下的Bug。下面是两种付费方案:
4):Tinker的升级版本:
http://www.tinkerpatch.com/
我打入到tinker的官方群,发现该平台也是刚刚搭建,我试着在平台注册了一个账号,没有收到确认通邮件,下面是我最终向公司推荐的方案,也是我最终选型定下来的方案。
5):Andfix 的升级版本,Hotfix (推荐方案)
http://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.90sF4N&treeId=234&articleId=105461&docType=1 (阿里百川Hotfix)
优点:
1 支持yunos。
2 sdk集成方便,代码改动很小。
3 文档清晰,在其官方网站上可以看到代码集成,生成差分文件,以及测试工具和后台操作都有文档支持。
4 支持多种渠道发布补丁,支持灰度发布,全量发布,支持回滚。
5 支持数据统计。
缺点:
1 据了解,目前还不支持资源文件的替换和修改。(他们官方给我的回复是正在集成,即将支持)
2 需要额外so文件支持。
3 付费,价格还没有对外公布,需要的可以找阿里的技术支持聊天。
如上,做一个记录。希望能对后来者有所帮助。因为hotfix的方案文档都比较清晰,也就不需要在去写demo之类的贴上去了。
来源:oschina
链接:https://my.oschina.net/u/2278066/blog/789500