Android(OPhone)系统的模拟器为Dalvik,DEX文件格式为Android操作系统上的Dalvik虚拟机可执行文件即Dalvik VM executes 的缩写。
下文翻译自John R. Rose在Google I/O上的介绍,《The top ten things I learned about Android and the Dalvik VM》,略有删节。其英文博客原文地址为:http://blogs.sun.com/jrose/entry/with_android_and_dalvik_at 。
1.Android是Linux/JVM 的简化版,他们重写了libc,减小到200k,重做了速度-空间的优化,扔掉了c++的例外和c级别的wide char的支持。
2.该平台的一个特别的地方是他们在减少私有页面开销时花费了很大的功夫。
3.他们不用OpenJDK而是使用Harmony的主要原因是GPL。
4.Android 1.0 的虚拟机是很简单的:一个类似资源分配(malloc-like)的堆和一个解释器。
5.不使用JVM字节码的关键理由是解释器的复杂性和脏页面的印记。
6.虚拟机使用dex文件就像java cards使用自己的内部指令集一样。据说它可以在手机上得到局部优化运行。该工具链使用class文件,有一个叫dx的工具可以把jar转换成dex的汇编文件。
7.dx之类的工具可以强制植入手机,使java代码可以继续生成字节码,然后还要转换成虚拟机可以执行的格式。
8.dx将class文件转换成静态单一赋值形式(SSA:Static Single Assignment), 然后转换成dex文件。该过程中没有优化(optimizations are missing)。
9.dex格式的常数pool通常是合并的带类型的,具有32位的索引。它很有可能会促进java的class文件标准的升级。
10.人们感激Sun之前做的java服务性工作,但是并不能看到Sun对人们未来的导引。
分享到:
相关推荐
Dalvik虚拟机是Android操作系统中用于执行应用程序的虚拟机。它的作用主要是解释执行Android应用程序中的Dalvik可执行文件(DEX格式),使得Java程序能够在Android设备上运行。Dalvik虚拟机与Java虚拟机(JVM)有很...
Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。Android应用程序中的Dalvik虚拟机实例实际上是从Zygote进程的地址空间拷贝而来的,这样就可以加快Android应用...
Android Dalvik 文件编译方法 Android Dalvik 文件编译方法是 Android 应用程序开发过程中的一步关键步骤。 Dalvik 是 Android 操作系统中的虚拟机字节码格式,所有 Android 应用程序都需要将 Java 代码编译成 ...
**Android Dalvik虚拟机讲义** Android Dalvik虚拟机是Android操作系统的核心组成部分,它是Google为移动设备特别设计的一种高效、轻量级的虚拟机。在Android系统中,应用程序以Dalvik可执行文件(.dex)的形式运行...
**Android Dalvik 源码解析** Android操作系统以其开源特性吸引了众多开发者,而Dalvik虚拟机作为Android系统的核心组成部分,负责运行应用程序。了解Dalvik的源码有助于我们深入理解Android应用的执行机制,优化...
进入 Android Dalvik 虚拟机,android dalvik介绍 Dalvik 虚拟机的特点——掌握 Android 程序的运行原理 Android 系统的架构采用分层思想,这样的好处是拥有减少各层之间的依赖性、便于独 立分发、容易收敛问题和...
《Android 4.0.4 Dalvik字节码详解》 在Android系统中,Dalvik虚拟机是核心组件之一,负责执行应用程序的字节码。本文档将深入探讨Android 4.0.4版本中Dalvik虚拟机所使用的字节码指令集,帮助开发者更好地理解和...
【dalvik_hook_demo】是一个关于Android系统中Dalvik Hook技术的实际应用示例。在这个项目中,开发者通过hook技术对Dalvik虚拟机进行了深入的操作,展示了如何在运行时改变应用程序的行为,以此来达到调试、监控或者...
在Android操作系统中,Dalvik虚拟机扮演着至关重要的角色,它是Android系统早期版本中的核心组件,负责执行应用程序的字节码。在Android 4.2版本中,Dalvik虚拟机进一步优化,提升了性能和效率。这里我们将深入探讨...
根据提供的信息,我们可以深入探讨Dalvik虚拟机及其指令集的关键知识点。 ### Dalvik虚拟机概述 #### 1. Dalvik虚拟机的历史与地位 - **发布背景**:2007年底,随着Android SDK的正式发布,Dalvik虚拟机作为...
Dalvik opcodes是Android操作系统中Dalvik虚拟机执行指令集的一种核心元素。Dalvik虚拟机,作为Android系统早期的关键组成部分,是基于寄存器架构的轻量级VM,设计目标是优化资源有限的移动设备。在Dalvik虚拟机中,...
**Android的Dalvik虚拟机(Dalvik Virtual Machine, DVM)是Android系统中运行应用程序的核心组件之一。在Android系统早期版本中,应用是以Dalvik字节码(Dalvik Bytecode)的形式存储和执行的,而DEX(Dalvik ...
Android Dalvik虚拟机是Android操作系统的核心组成部分,它为Android应用程序提供了运行环境。在这个环境中,应用程序的代码被转换成Dalvik可执行格式,称为.dex(Dalvik Executable)文件,然后在此虚拟机上运行。...
**Android Dalvik虚拟机源码解析** Android操作系统中,Dalvik虚拟机扮演着至关重要的角色。它是Android系统的核心组件之一,负责运行应用程序的字节码(.dex文件)。Dalvik虚拟机是基于寄存器架构的,这与传统的...
【dalvik.zip】是一个包含Dalvik虚拟机源码的离线帮助文档,旨在为开发者提供一个全面、便捷的参考资源,无需在线搜索即可进行查阅。Dalvik是Android系统早期采用的一种专门为移动设备优化的Java虚拟机,它在Android...
在Android系统中,Dalvik虚拟机是其运行应用程序的核心组件,它使用了一种特定的指令集,称为Dalvik字节码或操作码(Opcode)。这些操作码是Dalvik虚拟机执行程序的基础,对于理解Android应用的运行机制以及进行逆向...
《Android编程之虚拟机Dalvik教程》是一份深入解析Android操作系统核心组件——Dalvik虚拟机的宝贵资料。本文将从多个角度详细介绍Dalvik虚拟机及其在Android开发中的重要性,帮助开发者深化对Android系统运行机制的...
《深入解析Android虚拟机Dalvik》 Android操作系统的核心之一就是其独特的虚拟机——Dalvik。这个名字源于美国科罗拉多州的一个小镇,寓意着在移动设备有限的资源下,为应用提供高效运行环境的愿景。本篇文章将深入...
这两个位图对于内存管理至关重要,它们的大小通常是堆内存大小的六十四分之一。例如,在MIUI中,这两个位图各占1MB的内存。 ##### 4. 内存管理实现 Dalvik虚拟机的内存管理底层依赖于bionic C库中的`malloc`和`...