简记:
JVM为java虚拟机,ART是搭载在android上的移动优化版的虚拟机,DVM是android4.4以前的移动化版虚拟机。
详情:
1.jvm:基于栈架构的虚拟机,运行java字节码
2.DVM:基于寄存器架构的虚拟机,运行dex文件; 每次运行application的时候,都通过JIT(即时编译器)将字节码转成机器码;效率低,cpu使用率大,能耗高(android4.4以前使用)
3.ART:兼容DVM,系统在安装application就通过AOT(Ahead Of Time)进行一次预编译(dex2oat),将dex文件处理成机器码(可供ART运行的.oat可执行文件,与硬件直接接触);效率提高,cpu使用率小,能耗低(android5.0后使用)
扩展:
hybird混合模式,JIT+AOT(All Of the Time)+解释器的结合;应用安装不编译,直接安装。代码执行方式用JIT,对于热点代码进行编译产生 profile文件,手机闲置和充电时,系统隔时间 扫描 profile,对profile的热点代码进行持久化处理,待application再次运行时,若本地 有相关 机器码,则无需JIT。(android7.0后使用)
优点:安装快,效率提高
缺点:应用初期执行效率一般,待用户多次使用后显著提高