采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,想问以下热修复在ART下发生内存地址错乱的原因是什么? 我看在这篇文章 (https://www.jianshu.com/p/fa593cf27b5d) 里举的例子下,Android7以下是不会发生内存错乱的。那么Android 7以下热修复导致ART内存错乱的原因是什么呢?是内联?还是其他什么原因?
文章分析的挺好的。
热修复这个东西其实稍微有个细节处理的不好就很容易出问题。Tinker 在实践时遇到的 Android N 当中地址错乱的问题,微信的研发团队也表示难以复现,所以同学给出的文章里面在 N 上没有遇到也是可以理解的。
同学可以参考下 Tinker 团队的文章:https://cloud.tencent.com/developer/article/1030971
简单来说就是混合编译会导致部分代码被编译成机器码,如果这部分代码恰好在热修复的代码当中,那么就会出现错乱的问题。
非常感谢!
最近学习了一下,ART内存错乱暂时知道有三个原因: 1. dexopt指令优化 2. 内联 3. Android N的oat预加载
登录后可查看更多问答,登录/注册
改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程
1.1k 1
1.2k 16
960 10
1.3k 10
1.2k 10