简介
JVM
java虚拟机,解析并运行字节码。
Dalvik
Android平台的虚拟机,支持运行dex文件。
.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统
ART
ART代表AndroidRuntime,在应用安装的时候就预编译字节码到机器语言,这一机制叫Ahead-Of-Time(AOT)预编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快
比较
Dalvik pk JVM
- Dalvik指令集是基于寄存器的架构,执行特有的文件格式——dex字节码(适合内存和处理器速度有限的系统)
- 每一个Android 的App是独立跑在一个VM中的。因此一个App crash只会影响到自身的VM,不会影响到其他。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。
Dalvik pk ART
Dalvik
是依靠一个Just-In-Time(JIT)编译器去解释字节码,运行时编译后的应用代码都需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。
ART
应用安装时候把字节码编译成机器语言 ,启动更快,执行效率更高,省电。