Android HotFix热更新集成教程

1.快速集成

1.成为开发者,并创建一个应用,申请使用热更新(申请需要写理由,审核时间为4小时以内)

2.下载需要的资料

http://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.D8AbfB&treeId=234&articleId=105517&docType=1

里面有BCFixPatchTools-1.2.0.jar,这个打补丁的时候会使用到

3.添加maven仓库地址:

repositories {

maven {

url"http://repo.baichuan-android.taobao.com/content/groups/public/"

}

}

4.添加gradle坐标版本依赖:

dependencies {

compile'com.alibaba.sdk.android.plugins:alisdk-hotfix:1.3.3'

compile'com.alibaba.sdk.android.plugins.jar:alisdk-utdid:0.0.1'

}

5.权限说明


Android HotFix热更新集成教程_第1张图片

6.节点配置



7.混淆配置

-keepclass*extendsjava.lang.annotation.Annotation

-keepclasseswithmembernamesclass* {

native;

}

-keepclasscom.alipay.euler.andfix.**{

*;

}

-keepclasscom.taobao.hotfix.aidl.**{*;}

-keepclasscom.ta.utdid2.device.**{*;}

-keepclasscom.taobao.hotfix.HotFixManager{

public*;

}

8.application初始化,appVersion必须和后台配置的一样

2.生成patch补丁

1. 把BCFixPatchTools-1.2.0.jar放入该目录下

2. 新建一个patch_out文件夹作为最后补丁输出目录

3. 把原apk和修复后的apk也放置到该目录中, 打包命令参考(debug: `./gradlew clean assembleDebug` release:`./gradlew clean assembleRelease`), ps:请勿直接使用AS即时编译Instance Run出的apk产物进行打补丁操作.

4. hotfix_demo目录下执行以下命令

java -jar E:\HotFix\puth\BCFixPatchTools-1.2.0.jar -cmd patch -src_apk E:\HotFix\puth\app-debug-old.apk -fixed_apk E:\HotFix\puth\app-debug-new.apk -wp E:\HotFix\puth\output

-cmd: 值为patch: 打补丁命令 值为help: 查看使用说明

-src_apk:填写本地的原始APK(有问题的APK)的绝对路径,如果文件找不到会报错, 必选

-fixed_apk:已经修复过该问题APK的绝对路径, 必选

-wp:输出patch的绝对路径, 必选

-sign_file_url:本地的签名文件的绝对路径,不输入或者不正确则不做签名, 可选

-sign_file_pass: 证书文件的密码

-sign_alias: 证书的别名

-sign_alias_pass: 证书别名的密码

如果不输入-sign_**相关的签名参数, 那么hotfix-working目录下生成未签名的baichuan-hotfix-patch.jar补丁包, 如果输入了签名相关参数, 那么hotfix-working目录下会生成baichuan-hotfix-patch-unsigned.jar(未签名补丁包)和baichuan-hotfix-patch.jar(签名补丁包), 如果没有baichuan-hotfix-patch.jar(签名补丁包)则表示签名失败.

filterClassFilePath:本地的白名单类列表文件的绝对路径,放进去的类不会再计算patch,可选

filterClassFilePath参数的使用参考Demo工程下README.md文件的说明, 同时该文件的格式:每行一个类名, 必须包含包名前缀, 暂时不提供整包过滤


PatchLoadStatusListener接口

该接口需要自行实现并传入initialize方法中, 补丁加载状态会回调给该接口, 参数说明如下:

mode: 补丁模式, 0:正常请求模式 1:扫码模式 2:本地补丁模式

code: 补丁加载状态码, 详情查看PatchStatusCode类说明

info: 补丁加载详细说明, 详情查看PatchStatusCode类说明

handlePatchVersion: 当前处理的补丁版本号, 0:无 -1:本地补丁 其它:后台补丁

github源码:https://github.com/LostDeer/HotFix

你可能感兴趣的:(Android HotFix热更新集成教程)