Android热修复-AndFix简单使用

2017-05-02  本文已影响39人  PhoenixGG

热修复:产品出现小Bug,如果开发者修复Bug,重新发包,则成本较高、效率低,用户也需要重新下载更新;而热修复即可通过类似于一种打补丁的形式,将新旧版本的差异文件(.apatch文件),下载至客户端,现有客户端可以通过修补这个补丁,简单方便的实现bug的修改和处理。而用户需要下载的内容,即为这一个补丁的大小,实现类似于服务器更新的增量包的效果.(AndFix)

AndFix使用过程:

1、添加grade依赖:compile 'com.alipay.euler:andfix:0.5.0@aar',

2、初始化PatchManager:

patchManager = new PatchManager(context);

patchManager.init(app version);

3、加载已经添加到patchmanager中的patch

mPatchManager.loadPatch();

第二步和第三步,通常放在Application的onCreate()方法中

4、添加代码混淆配置:

-keepclass * extends java.lang.annotation.Annotation

-keepclasseswithmembernamesclass * {

      native <methods>;

}

5、判断补丁文件是否存在,如果存在,则直接打补丁:

private static finalStringAPATCH_PATH="/fix.apatch";// 补丁文件名

String patchFileStr = Environment.getExternalStorageDirectory().getAbsolutePath() +APATCH_PATH;

Log.d(TAG,patchFileStr);

File file =newFile(patchFileStr);

if(file.exists()){

Log.d(TAG,"update: 补丁存在");

try{

AndFixApplication.mPatchManager.addPatch(patchFileStr);

}catch(IOException e) {

e.printStackTrace();

}

}else{

Log.d(TAG,"update: 补丁不存在");

}

补丁生成方式,官方提供的工具apkpatch,采用命令行工具:

a、apkpatch.bat -f ok.apk -t error.apk -o fix -k keystore -p 111111 -a 111111 -e 111111(windows)

b、sh apkpatch.sh -f ok.apk -t error.apk -o fix -k keystore -p 111111 -a 111111 -e 111111(mac os)

其中:

-f:新文件

-t:旧文件

-o:生成文件

-k:keystone文件

-p:keystore密码

-a:keystore别名

-e:keystore别名密码

通过命令可生成.aptch文件,将.apatch文件重命名为fix.apatch,复制或者push到指定目录下即可.

上一篇下一篇

猜你喜欢

热点阅读