阿里巴巴对Android热修复技术已经进行了长达多年的探索。
阿里云Sophix 3.0版本现已上线!Sophix提供了一套更加完美的客户端服务端一体的热更新方案,做到了图形界面一键打包、加密传输、签名校验和服务端控制发布与灰度功能,让你用最少的时间实现最强大可靠的全方位热更新。
Sophix的核心设计理念,就是非侵入性。
我们的打包过程不会侵入到apk的build流程中。我们所需要的,只有已经生成完毕的新旧apk,而至于apk是如何生成的——是Android Studio打包出来的、还是Eclipse打包出来的、或者是自定义的打包流程,我们一律不关心。在生成补丁的过程中间既不会改变任何打包组件,也不插入任何AOP代码,我们极力做到了——不添加任何超出开发者预期的代码,以避免多余的热修复代码给开发者带来困扰。
在Sophix中,唯一需要的就是初始化和请求补丁两行代码,甚至连入口Application类我们都不做任何修改,这样就给了开发者最大的透明度和自由度。我们甚至重新开发了打包工具,使得补丁工具操作图形界面化,这种所见即所得的补丁生成方式也是阿里热修复独家的。因此,Sophix的接入成本也是目前市面上所有方案里最低的。
这种非侵入式热更新理念,是我们在设计过程中从用户使用角度进行了深入思考而提炼出的核心思想。
这里的用户,指的自然是广大的开发者。对于开发者而言,热修复应该是一个与业务无关的SDK组件,在整个开发过程中感知不到它的存在。最理想的情况,就是开发者拿过来两个apk,一个是已经安装在手机上的apk,另一个是将要发布出去的apk。我们直接通过工具,就可以根据这两个apk生成补丁,然后把这个补丁下发给已经安装的旧app上,就可以直接加载,使旧app重生为新的app。而这个加载了补丁包新app,在功能和使用上,将会和直接安装新apk别无二致。
下面的这张表格,从几个热修复最重要的维度,把Sophix和另外两个主要商业化热修复方案进行了比较。
可以看到,Sophix在各个指标上全面占优。而其中唯一不支持的地方就是四大组件的修复,这是因为如果要修复四大组件,必须在AndroidManifest里面预先插入代理组件,并且尽可能声明所有权限,而这么做就会给原先的app添加很多臃肿的代码,对app运行流程的侵入性很强。所以,本着对开发者透明与代码极简的原则,我们没有做这种多余的处理。
这么好的热修复技术你还只是停留在使用阶段吗?想不想踩在过来人的肩膀上,轻松实现安卓专业技能的提升呢?
深入了解阿里andfix和Sophix热修复的原理,安卓五大专题全方位的带给你一场技术洗礼,增加你的核心竞争力。
动脑学院翻译Flutter跨平台开发全套电子书
这是一份偏向Android应用层连载视频及进阶经典视频的学习资料,想要提升的小伙伴不妨添加Android课程顾问瑶瑶老师微信免费领取你的学习资料吧。
上述学习资料领取完全免费,且不会强制要求进行朋友圈分享,赶紧添加Android课程顾问瑶瑶老师微信,免费领取你的专属学习资料吧!