Android热补丁技术方案整理

Posted robert_chao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android热补丁技术方案整理相关的知识,希望对你有一定的参考价值。

概述

项目快速迭代过程中,不可避免的出现BUG,android线上出现问题,通常需要发版解决。紧急发版,用户不一定升级,强制升级又不友好,有什么更好的解决方案呢?这就用到了热修复技术。

QQ团队的hotfix

hotfix,后来发展成为RocooFix,

GitHub地址: https://github.com/dodola/HotFix

原理详细介绍官方文章:安卓App热补丁动态修复技术介绍

HotFix存在的问题:这种方法无法在已经加载好的类中实现动态替换,只能在类加载之前替换掉。就是说,补丁下载下来后,只能等待用户重启应用才能完成补丁效果。

RocooFix支持两种模式:
静态修复某种情况下需要重启应用。
动态修复,无需重启应用即可生效。

补丁制作

该技术的原理很简单,其实就是用ClassLoader加载机制,覆盖掉有问题的方法。所以我们的补丁其实就是有问题的类打成的一个包。

例子中的出现问题的类是 dodola.hotfix.BugClass 原始代码如下:

public class BugClass {

    public String bug() {
        return "bug class";
    }
}

以上是关于Android热补丁技术方案整理的主要内容,如果未能解决你的问题,请参考以下文章

Android热补丁动态修复

Android热修复技术选型——三大流派解析

Android热修复分析

和android热修复AndFix技术亲密接触

Android 热修复方案Tinker 系列文章

Android热修复技术专题:来自微信淘宝支付宝QQ空间的热修复方案