Android虚拟机 Dalvik

未知
Java
Android
2009-06-12
红薯

Dalvik虚拟机是Google的用于移动设备的Android平台的一个主要部分。虚拟机可运行Java平台应用程序,这些应用程序被转换成紧凑的Dalvik可执行格式(.dex),该格式适合内存和处理器速度受限的系统。

Dalvik虚拟机的作者是丹伯恩斯坦(Dan Bornstein)。

与 大多数虚拟机和真正的Java虚拟机不同,前者是栈机(stack machine),而Dalvik VM是基于寄存器的架构。就像CISC与RISC的争论,这两种方式的相对优点是一个不断争论的话题,且有时技术界限会变得模糊不清。此外,两种方法的相 对优势取决于所选择的解释/编译策略。但是,总的来说,基于stack的机器必须使用指令来载入stack上的数据,或使用指令来操纵数据,因此与基于寄 存器的机器相比,需要的指令更多。然而,在寄存器的指令必须编码源和目的地寄存器,因此往往指令更大。

一个名为dx的工具,它用于转换 Java的.class文件到.dex格式。多个类文件可包含到单个的.dex文件中。重复的、可用于多个类的字符串和其它常量在转换到.dex格式时输 出到保留空间。Java字节码还可转换成可选择的、Delvik VM使用的指令集。一个未压缩的.dex文件在文件大小方面往往比从同样的.class文件压缩成的.jar文件更小。

当Dalvik可执行文件安装到移动设备时,它们是可以被修改的。为了进一步的优化,在某些数据、简单数据结构和内联的函数库中的字节顺序可以互换,例如空类对象被短路。

为满足低内存要求而不断优化, Dalvik虚拟机有一些独特的、有别于其它标准虚拟机的特征:

(1)虚拟机很小,使用的空间也小;
(2)Dalvik没有JIT编译器;
(3)常量池已被修改为只使用32位的索引,以简化解释器;
(4)它使用自己的字节码,而非Java字节码。

此外, Dalvik被设计来满足可高效运行多种虚拟机实例。

Dalvik虚拟机在Android架构中的位置

加载中

评论(1)

喻恒春
喻恒春
@红薯 该项目首页 http://www.dalvikvm.com/ 改行了 #Dalvik#

Google 将用 ART 运行时替代 Dalvik

Android操作系统已经成熟,Google的Android团队开始将注意力转向一些底层组件,其中之一是负责应用程序运行的Dalvik运行时。Google开发者已经花了两年时间开发更快执行效率更高更省电的替代A...

2013/11/08 08:42

甲骨文与Google专利侵犯案要追溯到Sun时期的纠纷

GNOME和Mono项目发起人Miguel De Icaza在博客上分析了甲骨文起诉Google侵犯Java专利的前因后果,而Java之父James Gosling也证实,在Sun和甲骨文举行合并商讨会议期间曾讨论了Sun和Google之间...

2010/08/15 21:37

没有更多内容

加载失败,请刷新页面

没有更多内容

3
回答
在JVM里面运行Android字节码文件(.class)是否可行?

Android应用也是基于Java的,只是用到了一些额外的安卓的库,不同的是,dalvik虚拟机在执行安卓程序是会先将.class 文件转换为.dex文件...

2016/11/03 11:41
2
回答
Dalvik 支持java的全部方法吗?java虚拟机第三方也可以制作,那么java相当于开源的?
大汉刺史 的回答 2015/05/19 09:42
最佳答案
dalvik只执行Java 部分api,比如 AWT和swing 的这些类都拿掉了。虚拟机你自己都可以制作。不过dalvik并不是Java虚拟机,因为它不符合Java虚拟机的一些标准。
16
回答
百度Android开发面试题

1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指Dalvik的虚拟机。每一个Android应用程序都在它自...

2011/09/05 12:07
1
回答
Dalvik 内存调整及监控报告

原文转自:http://marshal.easymorse.com/archives/3942 目前开发android应用,主要问题在内存的使用上,需要熟...

2011/09/07 09:44
2
回答
在安卓机里的应用程序都会分配一个独立的虚拟机,然后这样的话沙盒技术在安卓机上怎么样啊

就是想在安卓平台上运用沙盒技术来做类似于入侵检测和安全桌面那样子的东西 这个可以做么 可行性怎么样啊 我准备做一个东西去参加信息安全的竞赛 希望大神们给点意见

2013/03/09 13:21
4
回答
Android程序是以独立的用户身份运行的吗?

正在阅读《Andoird - 移动开发一本就够》,作者在介绍Android系统的时候,画了一张Android体系结构的图表:每个Android App运行...

2011/09/27 17:12
3
回答
Android的虚拟机Dalvik引来论战不断

随着上周Google的Android SDK的发布,关于它的API以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java...

2009/09/27 15:23
1
回答
Dalvik包不在api中是什么问题,需要重新下载吗 哪里有这个包

The import dalvik.annotation.EnclosingMethod cannot be resolved

2012/05/22 10:50
1
回答
Conversion to Dalvik format failed: Unable to exec

Description Resource Path Location Type Conversion to Dalvik format failed: U...

2011/02/22 22:07
1
回答
Dalvik——基本Dalvik VM调用

在android设备上,dalvik vm通常都被嵌入到android应用框架里执行,也可以直接运行vm,就像你要在你桌面系统运行虚拟机一样。 在编译完j...

2011/09/25 20:38

没有更多内容

加载失败,请刷新页面

JVM、Dalvik与ART

### Dalvik与JVM之间的主要区别 1. JVM是基于栈的,Dalvik是基于寄存器的,所以Dalvik速度会更快一点 2. Dalvik中的线程对应到Linux中的线程,所已这里线程的调度依赖的是Linux系统,而非Dal...

2016/06/19 11:26
56
0
android核心基础(5)_Android)java虚拟机和Dalvik虚拟机的区别

Google于2007年底正式发布了 Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖...

2013/08/18 20:58
547
0
Dalvik与JVM

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex格式的Java应用程序的运行...

2015/09/07 13:36
159
0
Dalvik VM (DVM) 与Java VM (JVM)之间有哪些区别

原文地址:http://www.jizhuomi.com/android/environment/332.html Dalvik虚拟机存在于Android系统,JVM是Java虚拟机,两者都是虚拟机,它们之间有什么区别呢?本文就对两者进行比较,讲述它...

2016/11/04 11:59
3
0
《逆向分析》 Android Dalvik虚拟机

Dalvik虚拟机的特点--Android应用程序的运行原理 虚拟机特点: # 体积小,占用内存空间小 # 专有的DEX可执行格式,体积更小,执行速度更快 # 常量池采用32位索引值,寻址方法名,字段名,常量...

2016/05/13 19:10
16
2
简介Android启动过程

其实吧,大家都不是神,不可能一出生就知道一个事情,都是后天学习的结果。 对于Android启动过程,网上讲的太复杂了,像我们这种菜鸟看都看不明白他说半天说个啥。 所以吧,我决定自己讲讲,...

2016/11/04 11:59
0
0
Android之Dalvik、ART、JIT、AOT

Android之Dalvik、ART、JIT、AOT 本文内容:Dalvik、ART、JIT、AOT之间关系 本文定位:知识记录 学习过程记录,加深理解,提升文字组合表达能力。也希望能给学习的同学一些灵感 本文整理于[...

2018/06/21 19:25
18
0
Dalvik 相关paper/doc/wiki

进阶类: [资料] Dalvik VM的JIT编译器的资料堆积(dumping...work in progress) http://hllvm.group.iteye.com/group/topic/17798 http://0xlab.org/~jserv/tmp/dalvik.pdf 基础类: http:/...

2013/08/01 15:41
81
0
Android的虚拟机Dalvik 介绍

随着上周Google的Android SDK的发布,关于它的API以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java社区是一石激起千层浪,这就是 Android平台的基础—...

2010/08/19 11:56
767
0
Android的虚拟机Dalvik 介绍

随着上周Google的Android SDK的发布,关于它的API以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java社区是一石激起千层浪,这就是 Android平台的基础—...

2010/07/07 17:23
566
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部