美文网首页
android集成阿里sophix热更新

android集成阿里sophix热更新

作者: hao_developer | 来源:发表于2020-09-06 18:22 被阅读0次

    地址:https://www.aliyun.com/product/hotfix?spm=5176.12825654.h2v3icoap.385.50e32c4a4wAMx1

    1.AndroidStudio集成
    gradle远程仓库依赖, 打开项目找到app的build.gradle文件,添加maven仓库地址:

    repositories {
       maven {
           url "http://maven.aliyun.com/nexus/content/repositories/releases"
       }
    }
    

    添加gradle坐标版本依赖:

    implementation 'com.aliyun.ams:alicloud-android-hotfix:3.2.14'
    

    2.配置AndroidManifest文件

    在AndroidManifest.xml文件中的application节点添加:


    image.png
    <meta-data
                android:name="com.taobao.android.hotfix.IDSECRET"
                android:value="请输入appkey" />
            <meta-data
                android:name="com.taobao.android.hotfix.APPSECRET"
                android:value="请输入appsecret" />
            <meta-data
                android:name="com.taobao.android.hotfix.RSASECRET"
                android:value="请输入rsasecert" />
    

    将上述value中的值分别改为通过阿里平台HotFix服务申请得到的APP ID、App Secret和RSA密钥(这三个东西是在阿里云平台创建应用后才能看到,可以等注册平台创建应用后,再来填写),出于安全考虑,也可以使用setSecretMetaData这个方法进行设置,后续配置会讲到这个方法。

    添加权限:

    <! -- 网络权限 -->
    <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.接入方式
    目前,Sophix提供两种接入方式:快速接入稳健接入,这部分大家可以直接点击进去看官方文档,这部分文档还是写得比较详细的,前文提到的setSecretMetaData方法也在快速接入中有详细介绍。由于稳健接入完美地兼容Android 8.0以后版本,且初始化与应用原先业务代码完全隔离,所以我直接使用了稳健接入
    使用稳健接入时要注意不要忘记添加这句代码:

    // queryAndLoadNewPatch不可放在attachBaseContext 中,否则无网络权限,建议放在后面任意时刻,如onCreate中
    SophixManager.getInstance().queryAndLoadNewPatch();//查询是否有新的补丁
    

    注意:\color{red}{SophixManager.getInstance().queryAndLoadNewPatch();//查询是否有新的补丁}这句话一定要添加

    我当时就是直接看了稳健接入的文档,但是这文档并没有这句代码(这句代码在快速接入文档里有),结果导致我所有都配置好之后没有实现热修复功能。这句代码的作用是查询是否有新的补丁,我是放在Application里的onCreate()中。

    完成以上步骤后,不出意外的话,接入已经成功。这个时候可以通过看log信息判断是否接入成功,第一个红框是初始化信息,第二、三红框是你调用了queryAndLoadNewPatch()返回的信息。大家可以等注册好阿里云平台创建好应用获取并填写APP ID、App Secret和RSA密钥这三个东西到配置文件后,再来看log信息对不对。

    注册平台:
    https://www.aliyun.com/product/list?spm=a2c4g.11186623.h2v3icoap.2.69014c07QXKkMj

    image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png

    相关文章

      网友评论

          本文标题:android集成阿里sophix热更新

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