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热补丁技术方案整理的主要内容,如果未能解决你的问题,请参考以下文章