Dalvik

Dalvik是android4.4及以前版本使用的虚拟机。
他是正对android,google重新开发的虚拟机,与一般的jvm不同,它解析的是dex文件。
为了解决卡顿问题,它引入了JIT模式,just-in-time,也就是每次app执行的时候,Dalvik把dex加载进入内存,当某个类已经被 类加载器加载以后,就不会被重复加载,而是缓存本地代码。

ART

为了改善android卡顿的问题,google提出了AOT的方案,Ahead of time,也就是在apk安装的时候,把部分代码转化为机器码,这样每次加载的时候,就会加快执行效率。but,这样子编译以后,会增加app的空间,空间换时间的方案。

两种区别

  • Dalvik每次都要编译以后在运行,而art就会安装的时候运行

  • Art原生代码空间比Dalvik大

  • Art减少了编译,减少了CPU的使用时间。

  • Art应用更快,更及时。
    ART、Dalvik、AOT、JIT四个名称的关系:

  • JIT代表运行时编译策略,也可以理解成一种运行时编译器,是为了加快Dalvik虚拟机解释dex速度提出的一种技术方案,来缓存频繁使用的本地机器码

  • ART和Dalvik都算是一种Android运行时环境,或者叫做虚拟机,用来解释dex类型文件。但是ART是安装时解释,Dalvik是运行时解释

  • AOT可以理解为一种编译策略,即运行前编译,ART虚拟机的主要特征就是AOT

参考

https://www.jianshu.com/p/8bb770ec4c48
https://www.jianshu.com/p/59d98244fb52

发表评论

电子邮件地址不会被公开。 必填项已用*标注