美文网首页
Jvm、Dalvik 和Art

Jvm、Dalvik 和Art

作者: 孤独的根号十二 | 来源:发表于2018-12-28 15:56 被阅读0次

Dalvik虚拟机和Java虚拟机的区别

Dalvik虚拟机与传统的Java虚拟机有着许多不同点,两者并不兼容,它们显著的不同点主要表现在以下几个方面:
(1)Dalvik指令集是基于寄存器的架构,执行特有的文件格式——dex字节码(适合内存和处理器速度有限的系统),数据的访问通过寄存器间直接传递,这样的访问方式比基于栈方式要快很多。而JVM是基于栈的。相对于基于栈的JVM而言,基于寄存器的Dalvik VM实现虽然牺牲了一些平台无关性,但是它在代码的执行效率上要更胜一筹。

(2)每一个Android 的App是独立跑在一个VM中的。因此一个App crash只会影响到自身的VM,不会影响到其他。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。
(3)Java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码,androis 使用dx工具对Java类文件重新排列,消除在类文件中出现的所有冗余信息,避免虚拟机在初始化时出现反复的文件加载与解析过程。

android在4.4以前使用Dalvik,4.4以后使用ART

什么是Dalvik:

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一,它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭

什么是ART:

ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time(JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。ART则完全改变了这套做法,在应用安装的时候就预编译字节码到机器语言,这一机制叫Ahead-Of-Time(AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

ART优点:

1、系统性能的显著提升。
2、应用启动更快、运行更快、体验更流畅、触感反馈更及时。
3、更长的电池续航能力。
4、支持更低的硬件。

ART缺点:

1、更大的存储空间占用,可能会增加10%-20%。
2、更长的应用安装时间。

相关文章

  • 2021-02-24

    JVM、Dalvik、ART三者的关系 JVM、Dalvik、ART三者的关系[https://www.jians...

  • 理解Dalvik和ART、JVM虚拟机

    理解基本的Dalvik和ART、JVM虚拟机 一、Dalvik介绍 Dalvik VM是Android平台的核心组...

  • Jvm、Dalvik和Art

    Dalvik: Dalvik是Google公司自己设计用于Android平台的虚拟机。它可以支持已转换为** .d...

  • Jvm、Dalvik 和Art

    Dalvik虚拟机和Java虚拟机的区别 Dalvik虚拟机与传统的Java虚拟机有着许多不同点,两者并不兼容,它...

  • Android虚拟机与类加载机制

    JVM和Dalvik/ART Android应用程序运行在Dalvik/ART虚拟机,并且每一个应用程序对应有一个...

  • Android虚拟机

    [Android开发JVM、Dalvik以及ART的区别] 前言 Dalvik是Google公司自己设计用于And...

  • JVM、Dalvik、ART

    文章较长,主要讲解了JVM的整个流程,其次点了Dalvik与JVM的区别及ARTJVM标题下Class文件结构 -...

  • ART Dalvik JVM

    1.JVM 以 .java 为后缀的文件,最终会被编译成.class字节码,运行在 jvm 上;JVM 的作用是将...

  • Dalvik、ART、JVM

    Dalvik虚拟机 dex文件 Java虚拟机运行的是java字节码,即class文件,而Dalvik虚拟机执行的...

  • Dalvik、JVM、ART

    Dalvik与JVM的不同 执行文件不同,一个是dex,一个是class 类加载系统与jvm区别较大 可以同时存在...

网友评论

      本文标题:Jvm、Dalvik 和Art

      本文链接:https://www.haomeiwen.com/subject/fhwslqtx.html