一、热修复方案的意义:
1、热修复对业界的影响:
2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker(Bugly sdk也集成Tikner热更新)和阿里最新出品Sophix.它们在原理各有不同,适用场景各异。
2、热修复对现在开课啦的意义:
对当虹播放器的支持,从我们协作的情况来看,当虹播放器出现升级的概率很大,特别是修改临时的BUG,对他们开放一个绿色的通道,而不走我们正常的发布流程,对我们的用户损伤较小。
APP小型调整,类似于一些非产品型迭代的,比如界面微调,紧急BUG修复,用户协议变更或者公司名称变更等等,热修复技术这些对我们的产品体验非常好。
二、我们可能选择的热修复方案:
1、微信的tinker:
在没有sophix前,几乎所有公司都选择tinker,目前tinker 有很多同事用过,但存在如下情况:
. 部分同事的前同事用过,但有人反馈解决旧BUG,带来了新的BUG。
. 部分同事在原公司使用过,据说效果还不错。
我集成TINKER在开课啦应用当中,其中应用包的大小30M左右,补丁包括俩部分内容:一部分是开机图片更换,一部分是修改了一个toast信息,整个下载和合并过程需要2~30秒钟(与网络速度有关系,但是即便在网络良好,合并的时间也非常长),所以当用户进入的时间短,或者遇到快速down机的情况,tinker不能完成下载和合并操作,比较坑爹的是,每次他们需要重新下载重新合并,我在想一个问题,为什么不能先下载下来,然后再慢慢合并呢?可能是本身的合并太慢,然后想把问题的原因归结在网络速度太慢上面。
至于其他tinker可能存在的问题,目前尚未发现。但是,tinker是一个没有技术支持的产品,这就是应征IT行业的那句话----“从入门到放弃”。在修复功能上,可以修复资源文件,程序bug,动态库。
听说过的问题:在samsung 的 android 19手机上存在一些问题,只是听说。
2、阿里的sophix:
阿里的sophix从去年6月份面市以来,也被业界广泛使用,这玩意儿几乎没有怎么费劲就集成在系统当中,速度很快,目前暂时没有遇到过任何问题,可以修复资源文件,程序bug,动态库,我没测试出来问题,不代表本身无问题。
那么在钉钉群里边遇到的问题有哪些呢?他们刚刚修复了部分机型在4.3以下的问题,某些用户配置Application出现一些小问题,在群里协商。
三、为什么我们选择阿里系的sophix:
1、功能需求:
. 能满足我们修复so库, 修复资源文件,修复bug的功能-----已全部验证。 这个功能其他热修复工具存在缺陷,特别是速度缺陷。
. 能够完全回滚,一旦发现不喜欢使用修复机制,例如,某些用户说热修复后在4.2的机型上出现修复出问题的情况,可以设置回滚,这样及时解决修复引起的问题-----已全部验证。 这个功能其他热修复工具不具备。
2、支持需求:
阿里热修复是收费的,但是费用非常便宜,对开课啦来说,特别划算,因为我们的月活在5万左右,而阿里热修复5万以下是免费的,但是阿 里会提供完整的支持。在铭师堂进行的3年的android开发,接触数十家外部供应商,热修复的服务是我最满意的。所以一旦出现任何技术故障,阿里是我们可以信赖的伙伴。
3、与阿里的产品聊天记录:
Q:热修复资费
A:资费标准参考官网 https://help.aliyun.com/document_detail/57064.html
简单来说有两种:
后付费,
预付费(提前预估消费量,购买资源包,可以享受最低72折折扣)
热修复计费单位主要app月活(MAU)设备,每月5W免费阈值。
价格速算公式:(MAU-50000)*0.0150/月 = 消费额/月
100W月活的app如下:
后付费 14250 元/月
预付费 10260 元/月
Q:什么情况适合热修复,什么情况适合全量发布?
A:热修复支持代码,资源,so发布,但使用上也有一定的边界。线上紧急问题修复和轻量级发布建议走热修复,其它建议走全量布,避免碎片化。热修复接入以官网指导文档为准。
Q:热修复是否支持iOS平台
A:阿里云热修复支持iOS平台,请注意保密。因为苹果的审核和限制,官网只透出Android技术。如果使用iOS热修复技术提供app-id 和 阿里云uid,后台加白名单。