JVM虚拟机,Dalvik虚拟机,Art虚拟机
2020-07-17 本文已影响0人
dreamkid
JVM虚拟机
JVM虚拟机用来运行Java程序,java文件首先被编译成class字节码文件,然后交给虚拟机解释执行
如下图
JVM工作流程图.png
Dalvik虚拟机
Dalvik虚拟机是用来运行Android程序,每一个Android应用程序都有一个Dalvik虚拟机实例,执行的是dalvik字节码dex文件,dex字节码文件是由dx工具将class字节码打包生成的.应用程序运行时由JIT即时编译器将dex字节码翻译成机器码执行
Art虚拟机
Art虚拟机是Android4.4发布的,应用程序安装时就将dex字节码翻译成机器码存储到本地,运行时直接执行机器码.大大提高了启动速度和执行效率.
Dalvik和Art比较
Art启动速度快:Dalvik每次运行都要编译,Art只有首次安装需要编译一次
续航能力强:编译次数少,cpu使用频率更低
Art占用空间大:需要预先将字节码翻译成机器码存储,空间换时间的做法