android 热修复 so,Android 热修复

考虑问题

类替换

so替换

资源替换

即时生效

性能损耗

补丁包大小

全平台支持

AndFix

nativeHook ,在native进行方法结构体信息替换

优点:

即时生效,性能开销小

缺点:

兼容性问题,只能替换方法

Robust

javaHook

为每个方法自动插入修复逻辑,ChangeQuickRedirect不为空执行对应逻辑

优点:

兼容性高,立即生效,支持混淆,内联优化等操作

缺点:

不支持so和资源替换,侵入性强,会增加包体积

multidex

QQ空间热修复

DexPathList-> makePathElements (Element[] dexElements;)

findclass 顺序遍历Element数据获取DexFile,然后调用DexFile findClass。

插件化原理将补丁dex插入到数组最前面

优点:

代码是非侵入性的,对包体积影响不大

缺点:

重启生效,性能消耗大

dex替换

Tinker

提供差分包,合并后替换

优点:

兼容性高,补丁小,非侵入性

缺点:

冷启动生效,Dex合并内存消耗在VM head,容易OOM

资源修复

反射 AssertManager addAssertPath

so修复

接口替换

先加载指定补丁so,如不存在,再去加载apk so。

反射注入

将so 插入到nativeLibraryDirectories最前面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值