安卓Art编译方式
1.名词解释
.dex:
java源代码编译之后生成众多class文件,之后通过DX/D8编译为dex文件,之后可以由安卓虚拟机执行。
.odex:
dex经过验证与优化后的产物。
.art:
art下根据配置文件生成odex同时,生成.art文件,主要是提升运行时加载odex中热点代码的速度;执行过speed-profile命令的app才会生成.art文件。
解释器:
程序运行时对代码进行逐行解释,翻译成对应平台的机器码执行。
Jit编译:
解释器方式运行太慢,对于频繁运行的热点代码实时编译(在ART下以方法为粒度)执行,缓存JIT编译后的代码在内存中用于下次执行,JIT编较于解释器可以生成效率更高的代码。
AOT编译:
应用安装时,全量编译所有代码为机器码,运行时,执行机器码。
2.编译选择
verify:
只对 DEX 文件进行代码验证,校验各部分合法性。
quicken:
在verify的基础上优化一些 DEX 指令,提升解释器性能。
speed:
在verify的基础对所有方法进行 AOT 编译。
speed-profile:
在verify的基础对配置文件中列出的方法(热点方法)进行 AOT 编译。
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果