关于ART热修复内存地址错乱
来源:9-4 Tinker 如何实现热修复?

刺目啊1199
2020-04-11
老师,想问以下热修复在ART下发生内存地址错乱的原因是什么?
我看在这篇文章
(https://www.jianshu.com/p/fa593cf27b5d)
里举的例子下,Android7以下是不会发生内存错乱的。那么Android 7以下热修复导致ART内存错乱的原因是什么呢?是内联?还是其他什么原因?
写回答
1回答
-
文章分析的挺好的。
热修复这个东西其实稍微有个细节处理的不好就很容易出问题。Tinker 在实践时遇到的 Android N 当中地址错乱的问题,微信的研发团队也表示难以复现,所以同学给出的文章里面在 N 上没有遇到也是可以理解的。
同学可以参考下 Tinker 团队的文章:https://cloud.tencent.com/developer/article/1030971
简单来说就是混合编译会导致部分代码被编译成机器码,如果这部分代码恰好在热修复的代码当中,那么就会出现错乱的问题。
022020-04-24
相似问题
资源的热修复原理
回答 1