美文网首页
Android HotFix热更新集成教程

Android HotFix热更新集成教程

作者: 丶Lost_Deer | 来源:发表于2016-11-09 16:11 被阅读1265次

    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.权限说明

    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热更新集成教程

          本文链接:https://www.haomeiwen.com/subject/dgftpttx.html