安卓开发热修复-阿里hotfix接入-傻瓜操作

有关热修复的概念和原理不多BB,本文介绍的是阿里hotfix接入,直接上步骤:

1.阿里热修复控制台地址

https://www.aliyun.com/product/hotfix
在这里插入图片描述
这是我已经添加的项目,大家只需点击"添加产品",进入下一步即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200108153133971.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjY5MDk4,size_16,color_FFFFFF,t_70
这里随便填就好,确定
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200108153435515.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNjY5MDk4,size_16,color_FFFFFF,t_70
点击添加应用,填入APP名称和你的包名
在这里插入图片描述
下载下来这个.json
在这里插入图片描述
下载下来之后打开查看,红框内的字段在项目中会用到!
在这里插入图片描述

2、项目前期配置:

(1)、build.gradle中:

1、

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

2、

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

(2)、清单文件:Androidmanifest.xml中:

权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

meta:

   <meta-data
        android:name="com.taobao.android.hotfix.IDSECRET"
        android:value="刚下载的.json文件里的:hotfix.idSecret这个字段" />
    <meta-data
        android:name="com.taobao.android.hotfix.APPSECRET"
        android:value="刚下载的.json文件里的:emas.appSecret这个字段" />
    <meta-data
        android:name="com.taobao.android.hotfix.RSASECRET"
        android:value="刚下载的.json文件里的:hotfix.rsaSecret这个字段(这个字段超级长)"/>

3、配置application:项目里没有的话新建一个然后继承Application就好

在application中的attachBaseContext方法里初始化热修复:

    String version = "";
    try {
          version = this.getPackageManager()
                       .getPackageInfo(this.getPackageName(), 0).versionName;
    } catch (Exception e) {
       
    }
    final SophixManager instance = SophixManager.getInstance();
   
    instance.setContext(this)
            .setAppVersion(appVersion)
            .setSecretMetaData(null, null, null) 
            .setEnableDebug(true)
            .setEnableFullLog()
            .setPatchLoadStatusStub(new PatchLoadStatusListener() {
                @Override
                public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
                    if (code == PatchStatus.CODE_LOAD_SUCCESS) {
                         Log.d(TAG, "补丁加载成功");
                    } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
                         Log.d(TAG, "补丁更新成功");                
                    } else {
                       Log.d(TAG, "code--->" + code);
                       Log.d(TAG, "mode---> " + mode);
                       Log.d(TAG, "info---> " + info);
                       Log.d(TAG, "handlePatchVersion---> " + handlePatchVersion);
                    }
                }
            }).initialize();

将更新修复放在所需的位置,例放在了启动页的onCreate()方法里:

SophixManager.getInstance().queryAndLoadNewPatch();
在这里插入图片描述

4、打包APK

一个旧版本APK和一个改过的APK(名字叫啥都行),举例:
在这里插入图片描述

5、下载打包工具:

Mac版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_macos.zip

Windows版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_windows.zip

Linux版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_linux.zip

6、选择合适的下载,完成后运行 SophixPatchTool.exe

选择你的两个版本的APK,点击设置选择和输出补丁输出路径、签名、密码等,然后点击确定–>GO

在这里插入图片描述

弹出成功后,输出补丁路径下会生成一个补丁文件,这个文件不要改名,否则上传会失败,如下图:

在这里插入图片描述

7、回到阿里控制台

移动热修复->补丁管理->添加版本->输入版本号(注意:要与build.gradle中版本号一致!)

在这里插入图片描述

添加版本成功后->上传补丁->上传刚刚的.jar补丁文件,并进行一点补丁更新的描述

在这里插入图片描述

上传成功之后就能看到发布的补丁了,点击发布:

在这里插入图片描述

点击新建发布->选择全量发布

在这里插入图片描述

至此就结束了,去测试一波吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值