章鱼热修复选型

热修复方案选择

市面上出现过的热修复方案很多,较为热门的有QQ空间方案的Nuwa、微信的Tinker、阿里的Andfix、360的RePlugin、美团的Robust。

先来看一下这些项目的现状:

  • Nuwa:上次更新日期为2015年12月。
  • Tinker:腾讯主推,依然保持活跃。
  • Andfix:半年未更新,阿里云开始推Sophix(闭源收费)。
  • RePlugin:360主推,社区活跃。
  • Robust:美团新宠,活跃中。

Nuwa几乎已停止维护,Andfix也即将被同门Sophix取代,阿里云官网贴出的对比图。


阿里主推的Sophix与自家产品对比

因此,Nuwa、Andfix将不纳入我们的考虑范围,Sophix加入对比队列。

那么,我们需要在 Tinker、RePlugin、Robust、Sophix中选出一个最合适的。挑取几个比较重要的方面,对比如下:

Tinker RePlugin Robust Sophix 意义
So替换 yes no yes 第三方sdk更新
资源替换 yes no yes 涉及到图片增改的更新
gradle支持 yes no yes 第三方库更新,版本升级
即时生效 no yes 特定情况支持 无需重启App即可修复bug
多渠道支持 支持 支持 支持 是否能应付章鱼多个渠道
大的第三方后台 TinkerPatch或Bugly或自搭 自搭 阿里云 免去自搭后台的烦恼
稳定性 服务微信数亿用户 美团
Android版本支持 2.X-8.X 2.X-8.X 2.X-8.X 能否支持所有章鱼用户
文档 丰富 完善中 丰富 丰富的文档易于排查问题
当前版本 1.9.1 0.4.82 HotFix 3.2.2 Api是否会频繁改动,相关参见版本号的文化
是否开源 yes 16年9月开源,已收获12k Star yes 17年6月开源,已收获4.6k Star yes 17年3月开源,已收获2.7k Star no 17年12月发布,前身为HotFix 技术开源一定程度上能吸引开发者&减少bug,使用者可以知其然且知其所以然
费用 Bugly提供免费后台或TinkerPatch提供CDN付费后台或自搭 自搭后台的管理费用 阿里云提供付费服务 额外支出与服务享受
其他优势 章鱼已接入同门MTA,Bugly 既具备Tinker的强大功能,也具备Robust场景下的即时生效

比较发现,Robust还处于初期且没有大的第三方后台支持,因此被出局。

Sophix半年前改造自HotFix 3.0,尚未经过时间的考验,且未开源,这可能在我们碰到怪异问题时无法定位(因为闭源,所以很难知道问题出在哪里),因此也被出局。

再来看看Tinker,16年9月作为Tencent在GitHub正式公开的第一个项目,功能强大、稳定,且有大的第三方后台支持,无论是文档还是源码,都可以轻松获取,这自然成为我们的首选。

热修复后台选择

选定了Tinker,我们还需要一个后台来下发补丁包。有三种选择:

  1. 自己搭建补丁后台;
  2. Bugly免费后台;
  3. TinkerPatch CDN付费后台。

三者孰优孰劣?我列了个表单进行比较。

自搭后台 Bugly TinkerPatch
灰度测试 yes yes yes
条件下发 可以做到非常精准 粗略 可以细化到id
费用 人力与带宽 免费 约 万日活5000/年
费时 接入很快 接入较快
维护成本
管理页面 自搭 Bugly TinkerPatch

可以看到,
自搭后台功能最强,但成本高;
Bugly免费但条件下发较为粗略;
TinkerPatch收费但具有更细化的条件下发。

考虑到章鱼现阶段接入热修复主要用于修复线上bug,因此TinkerPatch的条件下发相较Bugly并不算优势,这样一来,Bugly的免费与接入成本(章鱼已经集成了Bugly),最终选定Bugly-Tinker作为章鱼的热修复工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章