ART全称是Android Runtime,ART不符合JVM标准,所以不属于JVM,ART基于寄存器的数据结构,是专门为Android系统定制的虚拟机,通过编译工具链将基于栈的Java字节码转换为基于寄存器结构(内存中虚拟出的寄存器)的dex字节码,并通过AOT(Ahead of time)编译技术,安装时通过dex2oat工具,将dex字节码转换为当前设备的机器码,提高了运行效率。
Android N:
- 使用AOT编译,解释和JIT
- 对于JIT编译过的方法记录在Profile配置中
- 当设备闲置和充电时,编译守护进程会运行,根据Profile文件对常用代码进行 AOT 编译。待下次运行时直接使用。
Android O:
- 并发压缩式垃圾回收器