美文网首页
阿里热修复集成

阿里热修复集成

作者: Ello_Orld | 来源:发表于2020-08-10 16:40 被阅读0次
  1. 修改app/build.gradle,添加
implementation 'com.aliyun.ams:alicloud-android-hotfix:3.2.14'
  1. 添加SophixStubApplication类,作为App的Application
public class SophixStubApplication extends SophixApplication {
    private final String TAG = "SophixStubApplication";

    /**
     * 此处SophixEntry应指定真正的Application,并且保证RealApplicationStub类名不被混淆。
     */
    @Keep
    @SophixEntry(MyRealApp.class)
    static class RealApplicationStub {
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
//         如果需要使用MultiDex,需要在此处调用。
        MultiDex.install(this);
        initSophix();
    }

    private void initSophix() {
        String appVersion = "0.0.0";
        try {
            appVersion = this.getPackageManager()
                    .getPackageInfo(this.getPackageName(), 0)
                    .versionName;
        } catch (Exception ignored) {
        }
        final SophixManager instance = SophixManager.getInstance();
        instance.setContext(this)
                .setAppVersion(appVersion)
                .setSecretMetaData(idSecret, appSecret, rsaSecret)
                .setEnableDebug(true)
                .setEnableFullLog()
                .setPatchLoadStatusStub(new PatchLoadStatusListener() {
                    @Override
                    public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
                        String msg = "" + "Mode:" + mode +
                                " Code:" + code +
                                " Info:" + info +
                                " HandlePatchVersion:" + handlePatchVersion;
                        Log.d(TAG, msg);
                        if (code == PatchStatus.CODE_LOAD_SUCCESS) {
                            Log.i(TAG, "sophix load patch success!");
                        } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
                            // 如果需要在后台重启,建议此处用SharePreference保存状态。
                            Log.i(TAG, "sophix preload patch success. restart app to make effect.");
                        }
                    }
                }).initialize();
    }
}
  1. 修改原有的Application类,
    去掉MultiDex.install(this);防止重复加载
    在onCreate方法中直接去请求patch
SophixManager sophixManager = SophixManager.getInstance();
sophixManager.queryAndLoadNewPatch();
  1. 修改AndroidManifest.xml文件,修改Application的入口
 <application
        android:name=".base.SophixStubApplication"
      ...
      ...
  1. App配置完成
  2. 下载补丁生成工具和安卓调试工具
  1. 生成patch
    比如新发布的版本是2.0.2,发布后发现有bug,则修改bug重新打包,版本号还是保持2.0.2
    然后用补丁生成工具,选择旧包和新包的路径,生成一个patch文件 sophix-patch.jar
    注意:如果使用了加固,一定要使用加固之前的包来生成patch。

    截屏2020-08-10 下午4.36.35.png
  2. 发布patch
    在阿里移动热修复后台,补丁管理,添加版本,命名为2.0.2,然后上传补丁


    image.png
    image.png

    选择发布-新建发布-发布类型
    可以选择灰度发布或者全量发布,至此就全部处理完成。

相关文章

  • 阿里热修复集成

    修改app/build.gradle,添加 添加SophixStubApplication类,作为App的Appl...

  • 阿里热修复Sophix使用

    学习热修复,觉得阿里的热修复Sophix使用挺简单的,是个入门学习热修复的好例子,于是按照文档自己写例子开始集成(...

  • 阿里热修复(记录)

    阿里热修复 近端时间,看了看 阿里的热修复,记录一下集成的步骤也方便自己查阅: 一、使用 先说一下使用方式,我是在...

  • 集成阿里热修复采坑

    在阿里云管理控制台创建你的应用,得到AppKey、AppSecret、RSA 在你的Androidmanifest...

  • 集成阿里热修复的步骤

    1.集成配置文件:aliyun-emas-services放入到app目录下,配置台下载2.清单文件中配置Soph...

  • 阿里热更新最新集成

    前言:希望帮助不会的小伙伴们! 一:阿里官方文档 阿里热修复文档 二:集成步骤: 1.先注册: 2.查看Appke...

  • 阿里热修复Sophix集成与体验

    前言 热更新很早就想体验一下了,最近工作不是很忙,腾出来一些时间体验了一下,感觉还是挺爽的。 开发环境: Andr...

  • Android热修复(阿里热修复)

    一、概述当一个产品上线后,如果出现了bug,传统的方式是,收集bug,修复,重新发布新版本。这样用户还得重新下载a...

  • 阿里热修复Hotfix

    移动热修复(Mobile Hotfix)是阿里云提供的全平台App热修复服务方案。产品基于阿里巴巴首创hotpat...

  • Android接入阿里云热修复

    阿里云热修复的使用 在阿里云上注册账户,并配置好相关信息,在阿里云热修复钉钉群里,发现3.1.3有兼容7.0失败的...

网友评论

      本文标题:阿里热修复集成

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