如何使用阿里百川hotfix热修复功能(二)

   前面我讲到了如何接入阿里百川热修复的准备工作   如何使用阿里百川hotfix热修复功能(一)     

       如果申请通过了,应该就是这样的,显示已开通:

  

    点击进入后台,可以看到,会自动生成AndroidiOS 两个版本的appId。appId我们在后面集成会用到。点击管理,可以看到生成的rsa密钥:

  



这样,我们就可以开始集成了:

   1. android studio集成方式:

添加maven仓库地址:打开项目找到app的build.gradle文件,添加如下配置:


添加gradle坐标版本依赖:


这里因为我使用了友盟推送,所以会有utdid类重复异常, 应该是其它阿里系SDK也依赖了utdid这个SDK, 此时去掉compile 'com.alibaba.sdk.android.plugins.jar:alisdk-utdid:0.0.1'依赖即可

如果远程依赖失败,可以使用官方demo提供的jar进行使用:

sdk&demo下载:http://baichuan.taobao.com/docs/doc.htm?spm=a3c0d.7629140.0.0.NlDYS7&treeId=234&articleId=105517&docType=1


2.添加权限

<! -- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<! -- 外部存储读权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
3.配置AndroidManifest文件

将你之前申请的appsecret和rsa文件填入

<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="your-app-secret"/>
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="your-rsa-secret"/>
4.设置混淆配置

-keepclass*extendsjava.lang.annotation.Annotation
-keepclasseswithmembernamesclass* {
    native<methods>;
}
-keepclasscom.alipay.euler.andfix.**{
    *;
}
-keepclasscom.taobao.hotfix.aidl.**{*;}
-keepclasscom.ta.utdid2.device.**{*;}
-keepclasscom.taobao.hotfix.HotFixManager{
    public*;
}
ps:如果你的项目中使用到了 armeabi-v7a, arm64-v8a文件,

请复制下载SDK(SDK下载&版本更新记录里“SDK”项下载下来, 然后解压)加入so文件,不然会报错。


5.初始化

初始化应该尽可能的早. 强烈推荐在Application.onCreate()中进行SDk初始化以及查询服务器是否有可用补丁的操作. 这里用到了appId:

private void initApp() {
    this.appId = "78962-1"; //替换掉自己应用的appId
    try {
        this.appVersion = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
    } catch (Exception e) {
        this.appVersion = "1.6";
    }
}
private void initHotfix() {
    HotFixManager.getInstance().initialize(this, appVersion, appId, true, new PatchLoadStatusListener() {
        @Override
        public void onload(int mode, int code, String info, int handlePatchVersion) {
            // 补丁加载回调通知
            if (code == PatchStatusCode.CODE_SUCCESS_LOAD) {
                /**
                 code: 1 补丁加载成功
                 code: 6 服务端没有最新可用的补丁
                 code: 12 当前应用已经存在一个旧补丁, 应用重启尝试加载新补丁
                 code: 13 补丁加载失败, 导致的原因很多种, 比如UnsatisfiedLinkError等异常, 此时应该严格检查logcat异常日志
                 */
                // TODO: 10/24/16 表明补丁加载成功
                MyLog.e("补丁加载成功:code=",code+"--------");
            } else if (code == PatchStatusCode.CODE_ERROR_NEEDRESTART) {
                // TODO: 10/24/16 表明新补丁生效需要重启. 业务方可自行实现逻辑, 提示用户或者强制重启, 建议: 用户可以监听进入后台事件, 然后应用自杀
                MyLog.e("新补丁生效需要重启:code=",code+"--------");
            } else {
                // TODO: 10/25/16 其它错误信息, 查看PatchStatusCode类说明
                MyLog.e("补丁加载:code=",code+"--------");
            }
        }
    });
    /**
     * queryNewHotPatch()方法主要用于查询服务器是否有新的可用补丁, 如果查询到可用的话, 首先下载补丁到本地, 然后应用原本没有补丁, 那么第一个补丁会立刻加载应用已经存在一个补丁, 首先会把之前的补丁文件删除, 然后不立刻加载, 而是等待下次应用重启再加载该补丁
     补丁在后台发布之后, 并不会主动下行推送到客户端, 需要手动调用queryNewHotPatch方法查询后台补丁是否可用.
     只会下载补丁版本号比当前应用存在的补丁版本号高的补丁, 比如当前应用已经下载了版本号为5的补丁, 那么只有后台发布的补丁版本号>5才会重新下载.
     */
    HotFixManager.getInstance().queryNewHotPatch();
}

转载:http://blog.csdn.net/wsdbssxq/article/details/53287464

这里就算是接入完成了,是不是很简单。我们接下来就可以进行打补丁patch了。

进入上一篇:如何使用阿里百川hotfix热修复功能(一)

进入下一篇:如何使用阿里百川hotfix热修复功能(三)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值