关于阿里的热修复---android andfix

andfix 说起来网上的例子真的很多很多:

AndFix 是阿里巴巴开源的 Android 应用热修复工具,帮助 Anroid 开发者修复应用的线上问题。Andfix 是 "Android hot-fix" 的缩写。

AndFix 支持 Android 2.3 - 6.0,ARM 和 x86 架构,dalvik 运行时和 art 运行时。AndFix 的分支是 .apatch 文件。

AndFix 方法体取代实现规则:

关于阿里的热修复---android andfix_第1张图片
  

Bug 修复过程:

关于阿里的热修复---android andfix_第2张图片
  

适用环境说明

Andfix并不能修复所有情况下出现的bug,测试结果如下:

关于阿里的热修复---android andfix_第3张图片
还有部分小米华为手机存在无法修复的问题

做法

1.使用gradle添加依赖

compile'com.alipay.euler:andfix:0.3.1@aar'

2.在application中初始化

patchManager =newPatchManager(getApplicationContext());       

patchManager.init(version);//current versionpatchManager.loadPatch();

3加载

patchManager.addPatch(path);//pathofthe patchfilethat was downloaded

实际上就这么简单的几句话就可以实现加载,主要的操作还是生成补丁文件,然后提交给后台经过对比版本然后文件下载,最后加载:

1.生成补丁

使用工具apkpatch-1.0.3

下载地址:https://github.com/alibaba/AndFix/raw/master/tools/apkpatch-1.0.3.zip

使用命令apkpatch生成补丁。

关于阿里的热修复---android andfix_第4张图片

图示参数缺一不可,否则无法生成补丁!!!

例如:

旧的apk为1.apk,新的apk为2.apk, -o表示补丁的输出目录,-k表示keystore, -p表示keystore的密码,-a表示alias, -e表示entry password。

可以看到在当前目录下生成了相应的补丁文件:

关于阿里的热修复---android andfix_第5张图片

补丁命名规则如下:

a_b.apatch

a表示versionCode,b表示当前的补丁的版本。

例如:如果当前的versionCode的版本为4,补丁的版本为3,则命名为4_3.apatch。

2 判断下载条件并下载


关于阿里的热修复---android andfix_第6张图片
判断下载的条件


关于阿里的热修复---android andfix_第7张图片
xutils文件下载(当然可以通过其他的方式下载)


关于阿里的热修复---android andfix_第8张图片
下载后添加apatch文件

你可能感兴趣的:(关于阿里的热修复---android andfix)