SDK简介

本文介绍阿里云移动热修复多个版本之间的差别。

最新版Sophix提供了一套更加完美的客户端服务端一体的热更新方案,做到了图形界面一键打包、加密传输、签名校验和服务端控制发布与灰度功能,让您用较少的时间实现完善且可靠的热更新。

热修复各个版本的差别:

方案对比

Andfix开源版本

阿里Hotfix 1.X

阿里Hotfix最新版 (Sophix)

方法替换

支持,除部分情况[0]

支持,除部分情况

全部支持

方法增加减少

不支持

不支持

以冷启动方式支持[1]

方法反射调用

只支持静态方法

只支持静态方法

以冷启动方式支持

即时生效

支持

支持

视情况支持[2]

多DEX

不支持

支持

支持

资源更新

不支持

不支持

支持

so库更新

不支持

不支持

支持

Android版本

支持2.3~7.0

支持2.3~6.0

全部支持包含7.0以上

已有机型

大部分支持[3]

大部分支持

全部支持

安全机制

加密传输及签名校验

加密传输及签名校验

性能损耗

低,几乎无损耗

低,几乎无损耗

低,仅冷启动情况下有些损耗

生成补丁

繁琐,命令行操作

繁琐,命令行操作

便捷,图形化界面

补丁大小

不大,仅变动的类

小,仅变动的方法

不大,仅变动的资源和代码[4]

服务端支持

支持服务端控制[5]

支持服务端控制

说明

  • [0] 部分情况指的是构造方法、参数数目大于8或者参数包括long,double,float基本类型的方法。

  • [1] 冷启动方式,指的是需要重启App在下次启动时才能生效。

  • [2] 对于Andfix及Hotfix 1.X能够支持的代码变动情况,都能做到即时生效。而对于其他代码变动较大的情况,会走冷启动方式,此时就无法做到即时生效。

  • [3] Hotfix 1.X已经支持绝大部分主流手机,只是在X86设备以及修改了虚拟机底层结构的ROM上不支持。

  • [4] 由于支持了资源和库,如果有这些方面的更新,就会导致的补丁变大一些,这个是很正常的。并且由于只包含差异的部分,所以补丁已经是最大程度的小了。

  • [5] 提供服务端的补丁发布和停发、版本控制和灰度功能,存储开发者上传的补丁包。