其他分享
首页 > 其他分享> > Android 热修复原理,阿里Android研发岗二面

Android 热修复原理,阿里Android研发岗二面

作者:互联网

简单来说,在编译时通过新旧两个Dex生成差异path.dex。在运行时,将差异patch.dex重新跟原始安装包的旧Dex还原为新的Dex。这个过程可能比较耗费时间与内存,所以我们是单独放在一个后台进程:patch中。为了补丁包尽量的小,微信自研了DexDiff算法,它深度利用Dex的格式来减少差异的大小。

四、阿里Sophix

原理(双剑合璧):

1.优化Andfix(突破底层结构差异,解决稳定性问题):

Andfix底层ArtMethod结构时采用内部变量一一替换,倒是这个各个厂商是会修改的,所以兼容性不好。

Sophix改变了一下思路,采用整体替换方法结构,忽略底层实现,从而解决兼容稳定性问题。

2.突破QQ和Tinker的缺陷

QQ和Tinker的缺陷

Sophix对dex的解决方案

3.资源修复另辟蹊径

常用方案(Instant Run技术):这种方案的兼容问题在于替换AssetManager的地方

Sophix资源修复方案

![](https:

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享

//upload-images.jianshu.io/upload_images/15234279-b2d26d96806556ab?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “image”)

4.SO修复另辟蹊径

更多Android开发资料+面试架构资料 免费分享 点击链接 即可领取

《Android架构师必备学习资源免费领取(架构视频+面试专题文档+学习笔记)》

《Android架构师必备学习资源免费领取(架构视频+面试专题文档+学习笔记)》

标签:dex,Dex,二面,Sophix,补丁包,阿里,架构,Android
来源: https://blog.csdn.net/m0_65146275/article/details/122285368