问答详情
源自:5-8 案例演示

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

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


提问者:Uchiha_Obito 2020-06-14 17:45

个回答

  • allenfeng
    2020-12-15 11:18:43
    已采纳

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

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

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



  • 慕运维4478716
    2020-09-12 17:38:22

    这个问题问得好 同问

  • 慕梦前来
    2020-08-17 22:35:11

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