美文网首页看场电影
理解Dalvik和ART、JVM虚拟机

理解Dalvik和ART、JVM虚拟机

作者: 01_小小鱼_01 | 来源:发表于2018-06-03 21:36 被阅读76次

理解基本的Dalvik和ART、JVM虚拟机

一、Dalvik介绍

Dalvik VM是Android平台的核心组成部分之一,它的名字来源于冰岛一个名为Dalvik的小渔村。Dalvik VM并不是一个Java虚拟机,它没有遵循Java虚拟机规范,不能直接执行Java的Class文件,使用的是寄存器架构而不是JVM中常见的栈架构。但是它与Java又有着千丝万缕的联系,它执行的dex(Dalvik Executable)文件可以通过Class文件转化而来,使用Java语法编写应用程序,可以直接使用大部分的Java API等。

2014年6月25日,Android L 正式亮相于召开的谷歌I/O大会,Android L 改动幅度较大,谷歌将直接删除Dalvik,代替它的是传闻已久的ART。

二、ART介绍

在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效,但让应用安装比较快,而且更容易在不同硬件和架构上运行。

ART完全改变了这种做法,在应用安装时就预编译字节码到机器语言,在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

三、Dalvik与JVM的区别

1、Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于编译后变大的程序来说,在它们执行的时候,花费的时间更短。
2、Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件格式Dex

四、Dalvik与ART的区别

1、ART与Dalvik最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。

2、ART占用空间比Dalvik大(字节码变为机器码之后,可能会增加10%-20%),这就是“时间换空间大法”。

3、预编译也可以明显改善电池续航,因为应用程序每次运行时不用重复编译了,从而减少了 CPU 的使用频率,降低了能耗。

更多内容:
1. JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
2. JVM、Dalvik VM和ART虚拟机之间的区别

相关文章

  • 理解Dalvik和ART、JVM虚拟机

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

  • Android 热修复原理解析

    前期我们已经讨论过了JVM ClassLoader机制以及理解Dalvik和ART、JVM虚拟机,今天带着大家来分...

  • Android 虚拟机—Dalvik&ART

    Dalvik 虚拟机与ART 虚拟机 Dalvik是什么? Dalvik 是实现了 JVM 规范的虚拟机,内部默认...

  • Android虚拟机与类加载机制

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

  • 类加载器

    Android有两种虚拟机,分别是Dalvik和ART。而Java有自己的虚拟机,是大家熟知的JVM。Dalvik...

  • 类加载机制

    JVM 与 Dalvik Android 应用程序运行在 Dalvik / ART 虚拟机上,每个应用程序都有一个...

  • 虚拟机 Dalvik 和 Art 理论笔记

    虚拟机分类: 目前,JVM,Dalvik 和 Art,G1 等 Davlvik 基于寄存器的虚拟机 什么是基于栈...

  • 虚拟机

    前言 本篇文章将会介绍Java虚拟机(JVM)的结构等基础知识、Dalvik(DVM)/ART虚拟机与JVM的比较...

  • 虚拟机概述

    前言 本篇文章将会介绍Java虚拟机(JVM)的结构等基础知识、Dalvik(DVM)/ART虚拟机与JVM的比较...

  • Android 架构演进

    为什么从Dalvik虚拟机演变成ART运行环境 HIDL 的浅浅理解 为什么从Dalvik虚拟机演变成ART运行环...

网友评论

    本文标题:理解Dalvik和ART、JVM虚拟机

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