ART
ART
=Android RunTime
- 是什么:Android的新一代的VM虚拟机
- 在
Dalvik
的基础上做了一些优化,提高了运行效率
- 用于替代旧的:Dalvik
- 特点
- 预先编译
AOT
- 垃圾回收方面的优化
- 开发和调试方面的优化
- 支持采样分析器
- 支持更多调试功能
- 优化了异常和崩溃报告中的诊断详细信息
- 对比:
Dalvik
vs ART
- 效率对比
Dalvik
:应用每次运行的时候,字节码
都需要通过即时编译器
=JIT
=Just In Time
转换为机器码
ART
:应用在第一次安装的时候,字节码
就会预先编译成机器码
- 使其成为真正的本地应用
- 这个过程叫做
预编译
=AOT
=Ahead-Of-Time
- 所用工具是:
dex2oat
- 这样的话,应用的启动(首次)和执行都会变得更加快速
- 文件类型变化:
.java
–> .class
–> .dex
–> .oat
.oat
: optimized android runtime machine code
- 效果对比
- Dalvik是运行时解释dex文件
- ART是安装时字节码预编译成机器码存储在本地,执行的时候直接就可以运行的
- 类比
- 就像骑自行车
- Dalvik ~= 折叠自行车:每次骑之前,都要先组装/展开才能骑
- ART ~= 组装好的自行车:每次直接骑着就走了