常用热修复方案以及原理

常用热修复方案以及原理

bsdiff.exe 比对文件不同

bspatch.exe 生成增量包

在这里插入图片描述

增量级别更新,应用很广泛,抖音微信都有使用增量更新

所有的热修复都是使用 反射和类加载机制完成热修复,和增量更新的

热修复框架

  • andfix 阿里的以前热修复方案,现在已经废弃

    在C++层级替换,所以无需重启应用,不支持资源替换

    public class Test{
    	@MethodReplace(class="con.dabin.test",method="test")
    	public void test()
    	{
    	}
    }
    
    1. 第一步android开发端 使用gradle生成patcheRelease生成patch包
    2. 移动段从服务端下载patch.jar,包内包含 dex文件,dex文件中是编译后的class文件
    3. classloader,加载class文件到内存中,使用反射找到方法,根据方法中的 @methodreplace注解 找到要替换的类,要替换的方法。
  • Robust 美团的热修复

    字节码自动插桩,会增加包的大小,即时生效,无需重启,不支持资源替换

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值