安卓虚拟机 Android虚拟机与Java虚拟机区别

栏目:体育 2021-09-21 11:12:51
分享到:

概念介绍

关于JVM的知识之前已经介绍过了,这里主要介绍安卓虚拟机。

安卓架构的一部分叫做安卓运行时,也就是安卓运行时环境,包括两部分,一部分是安卓的核心类库,另一部分是Dalvik虚拟机。

安卓之所以开发Dalvik虚拟机而不是JAVA自带的JVM,可能是基于以下两点考虑:

版权问题:如果使用JVM,就涉及到版权问题,所以谷歌需要在JVM的基础上做一些改进,创建自己的虚拟机。

性能问题:jvm虚拟机对于Java开发有足够的性能,但与移动平台低内存、低功耗的特点相比,似乎有些牵强。因此,为了优化虚拟机的工作效率,谷歌为安卓开发了自己的虚拟机。

JVM和Dalvik的区别

JAVA虚拟机运行JAVA字节码,Dalvik虚拟机运行Dalvik字节码

Java虚拟机:JAVA->类文件

Dalvik虚拟机:JAVA->类文件->Dalvik字节码->打包成DEX ->DVM通过解释DEX文件来执行这些字节码。

这里的dex文件是安卓系统的可执行文件,可以进一步将dex提取到odex中。odex相当于预读dex,这会占用更多内存,但程序运行速度会更快。

达尔维克与艺术的区别

自安卓5.0版本以来,安卓运行时已经取代达尔维克成为系统中的默认虚拟机。

概念

Dalvik虚拟机:可以支持已经转换成的Java应用的运行。dex格式。那个。dex格式是专门为Dalvik设计的压缩格式,适用于内存和处理器速度有限的系统。

ART:安卓运行时是在安卓操作系统上运行的环境。ART在第一次安装时可以将应用程序的字节码转换成机器码。采用预编译技术。

差异:

在Dalvik环境下,每次程序运行时,都需要通过即时编译器将字节码转换为机器码,这会减缓应用程序的启动时间。

ART环境下:程序第一次安装时,字节码会被预编译成机器码。在这种情况下,虽然设备和应用程序的初始启动会变慢,但以后每次启动执行时都可以直接运行,运行效率会提高。

艺术的优点和缺点

优势

系统性能显著提高

应用程序启动更快,运行更快,体验更流畅,感觉反馈更及时

更长的电池寿命

支持较低的硬件

劣势

字节码变成机器码后,会占用更多的内存空

应用程序的安装时间变长了

-结束-