Dalvik VM介绍

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/4171240 Dalvik VM介绍 Dalvik虚拟机是Google的用于移动设备的Android平台的一个主要部分。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/4171240

Dalvik VM介绍

 


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架构中的位置

图

目录
相关文章
|
Oracle Java 关系型数据库
深入理解JVM系列教程(01) - HotSpot VM
深入理解JVM系列教程(01) - HotSpot VM
280 0
|
Java 编译器 Linux
Dalvik和ART的区别
Dalvik和ART的区别
181 0
|
缓存 Linux
【Linux】之【内存】相关的命令&&解析以及内存相关的问题[free、meminfo、内存泄漏、内存溢出、Overcommit]
free命令的功能是显示系统内存使用量情况,包含物理和交换内存的总量、使用量和空闲量情况。
215 0
|
存储 Java 程序员
JVM系列--Hotspot虚拟机的内存布局
JVM系列--Hotspot虚拟机的内存布局
132 0
|
Oracle Java 关系型数据库
JVM详解之:HotSpot VM中的Intrinsic methods
JVM详解之:HotSpot VM中的Intrinsic methods
JVM详解之:HotSpot VM中的Intrinsic methods
|
Oracle JavaScript 前端开发
你应该知道的关于HotSpot VM的内容
你应该知道的关于HotSpot VM的内容
174 0
|
Oracle Java 关系型数据库
Java HotSpot VM中的JIT编译
Java HotSpot虚拟机是Oracle收购Sun时获得的,JVM和开源的OpenJDK都是以此虚拟机为基础发展的。如同其它虚拟机,HotSpot虚拟机为字节码提供了一个运行时环境。实际上,它主要会做这三件事情:
360 0
Java HotSpot VM中的JIT编译
|
弹性计算 PHP Docker
Contain Yourself! The VM Is Evolving
From traditional VMs to Docker containers, learn how the virtualization industry is evolving to meet constantly changing business needs.
2214 0
Contain Yourself! The VM Is Evolving
|
算法 Java
HotSpot VM垃圾收集器
使用分代垃圾收集器,基于以下观察事实(弱分代假设) 大多数分配对象的存活时间短 存活时间久的对象很少引用存活时间短的对象 由此, HotSpot VM 将堆分为两个物理区空间,这就是分代(永久代只存储元数据, eg.
1325 0