JVM:Java Virtual Machine, java 程序运行的虚拟机。java
JIT:just In Time Compiler。android
-------翻译
ART:Anroid RunTime。code
AOT:Ahead Of Time。blog
Dalvik:Android 中使用的java 虚拟机。进程
DVM: Dalvik Virtual Machine: 每一个android 进程对应一个 DVM。编译器
------虚拟机
2, JVM 与 DVM 的区别编译
JVM 运行java程序, 加载的事java 字节码。 DVM 运行android 程序。运行的是Dalvik字节码
, 均由Java字节码
转换而来。效率
3, DVM和ART(Android Runtime)虚拟机的区别与联系
DVM 执行的事 dalvik 字节码,而ART VM 执行的是本地机器码。
DVM原理:依靠JIT编译器去解释执行,运行时动态地将执行频率很高的dex字节码翻译成本地机器码而后在执行,可是将dex字节码翻译成本地机器码是发生在应用程序的运行过程当中,而且应用程序每一次从新运行的时候,都要从新作这个翻译工做.
ART原理:应用程序仍然是一个包含dex字节码的apk文件。在安装应用的时候,dex中的字节码将被编译成本地机器码,以后每次打开应用,执行的都是本地机器码。移除了运行时的解释执行,效率更高,启动更快。(安卓在4.4中发布了ART运行时)
4, Android 虚拟机发展历程:
< 4.4 DVM
< 5.0 DVM (ART)
< 7.0 ART
now ART :(AOT + JIT) 混合编译,大大提高了初次安装执行速度。
5,Android 编译打包流程。