美文网首页
阿里热修复(记录)

阿里热修复(记录)

作者: 徘徊0_ | 来源:发表于2018-10-11 11:36 被阅读0次

阿里热修复

近端时间,看了看 阿里的热修复,记录一下集成的步骤也方便自己查阅:

一、使用

先说一下使用方式,我是在项目中写了一个空指针的bug,来测试,下面会说明这些文件是怎么来的

  • 空指针bug(生成一个存在问题的old.apk)存在的代码如下:
//注:此时的fix.apatch文件,也就是差分包,阿里热修复需要使用到的,下面会说明怎么生成该文件。
      File fixFile = new File(Environment.getExternalStorageDirectory() + File.separator + "fix.apatch");
        if (fixFile.exists()) {
            try {
                MyApplication.mPathManager.addPatch(fixFile.getAbsolutePath());//在这里调用addPatch方法
                showShortToast("热修复成功!");
            } catch (IOException e) {
                e.printStackTrace();
                showShortToast("热修复失败!");
            }
        }
        //注意,这里会报空指针异常(此时生成一个old.apk , 也就是存在bug的apk)
        mBtn.setText("11");
  • 修复后生成一个新的apk,代码如下:
//注:此时的fix.apatch文件,也就是差分包,阿里热修复需要使用到的,下面会说明怎么生成该文件。
      File fixFile = new File(Environment.getExternalStorageDirectory() + File.separator + "fix.apatch");
        if (fixFile.exists()) {
            try {
                MyApplication.mPathManager.addPatch(fixFile.getAbsolutePath());
                showShortToast("热修复成功!");
            } catch (IOException e) {
                e.printStackTrace();
                showShortToast("热修复失败!");
            }
        }
        //注意,此时将这行代码注掉
       // mBtn.setText("11");

二、集成项目

1、添加依赖到项目中:
implementation 'com.alipay.euler:andfix:0.5.0@aar',也可以到上面官网去查看最新的依赖。

2,在自己项目的Application中,添加以下初始化代码

public static PatchManager mPathManager;
    @Override
    public void onCreate() {
        super.onCreate();
        //阿里热修复
        mPathManager = new PatchManager(this);
        mPathManager.init("1");//当前应用版本(可以通过PackageManager获取)

        //加载之前的patch包
        mPathManager.loadPatch();
    }

三、准备apk(需要生成签名包)

1,需要一个有bug的Old,也就是存在问题的apk(需要签名)。
2,准备已修复bug的新的apk(需要签名)。
3,到官网阿里热修复,下载tools,下图的文件(并解压)

tools.png

4,将准备的apk,和打包时的签名文件,拷贝到解压出来的文件夹下:


image.png

四、执行下面的命令

在tools文件夹下打开命令窗口,输入下面的命令:

usage: apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***>
 -a,--alias <alias>     keystore entry alias.(签名的别名)
 -e,--epassword <***>   keystore entry password.(签名的密码)
 -f,--from <loc>        新的apk(无bug)
 -k,--keystore <loc>    keystore path.(签名打包秘钥)
 -n,--name <name>       patch name.
 -o,--out <dir>         生成的补丁文件所放的文件夹
 -p,--kpassword <***>   keystore password.(签名打包秘钥的密码)
 -t,--to <loc>          旧版apk(存在bug)

我的输入的命令为(命令解释可以看上面),出现如下图的add,即为成功,输出的文件(也就是差分包)在该目录的out文件夹下:

执行命令.png 输出文件后缀为:apatch.png

将生成的文件fix.apatch放置到手机里面,也就是步骤1的
File fixFile = new File(Environment.getExternalStorageDirectory() + File.separator + "fix.apatch"); 该位置。如果每次运行,改文件存在,就会进行修复。

相关文章

  • 阿里热修复(记录)

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

  • 阿里云移动热修复初窥(1013)

    写在前面 关于安卓热修复技术选型可以参考这篇文章,这里主要记录阿里移动热修复的接入流程。 开始接入 移动热修复现有...

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

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

  • 阿里热修复Hotfix

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

  • Android接入阿里云热修复

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

  • 08.源码阅读(阿里AndFix热修复原理)

    使用阿里热修复需要添加依赖 热修复的关键代码 接下来我们从这些方法开始看热修复是怎样实现的 mPatchMange...

  • Android-热修复技术框架如何选择?记录一波...

    贴出一堆网上看的记录: 目前主流的热修复技术框架 阿里系的: Andfix(Alibaba - start:6.6...

  • 热修复之阿里开源热修复

    1.什么是热修复? 在不重新安装apk的情况下修复bug 2.效果预览 3.阿里开源热修复使用 地址:https:...

  • 上班第二周

    任务 升级调试热修复框架 还是解决项目的ANR问题 热修复框架 目前公司项目有用到两套热修复框架:阿里的Sophi...

  • Android 阿里Sophix 热更新集成

    移动热修复(Mobile Hotfix)是面向Android、iOS平台应用提供的在线热修复服务方案,产品基于阿里...

网友评论

      本文标题:阿里热修复(记录)

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