为了账号安全,请及时绑定邮箱和手机立即绑定

开始不是说5.0以上会提前编译Dex吗?为什么后面的热修复还会生效?

前面说ART虚拟机会在安装时提前把Dex编译成AOT文件,运行时就不会再编译dex了,那后面的热修复流程为什么还是会执行?


正在回答

2 回答

被提前编译的,只有安装包内根目录下的的 classes.dex、classes2.dex... 这些dex,这个过程是APK安装过程中执行的。

我们自己生成的补丁dex,不在安装包内,是后续才被推送到手机内存中,不会被系统提前编译。

当应用启动后,我们会手动将自己的补丁dex插入到PathClassLoader内dexElements数组的最前方,从而达到热修复生效的效果。



1 回复 有任何疑惑可以回复我~

这个问题问得好 同问

1 回复 有任何疑惑可以回复我~

要下一个脚来执行一下,就可以了

0 回复 有任何疑惑可以回复我~
#1

慕运维4478716

下个脚本执行下? 什么意思 是在回答这个问题吗
2020-09-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
MultiDex从基础原理到实践优化
  • 参与学习       9778    人
  • 解答问题       4    个

Android进阶学习必备,带你从基础用法到实践优化一站式掌握MultiDex。

进入课程

开始不是说5.0以上会提前编译Dex吗?为什么后面的热修复还会生效?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信