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对人们未来的导引。
分享到:
相关推荐
Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应用程序对应有一个单独的Dalvik虚拟机实例。Android应用程序中的Dalvik虚拟机实例实际上是从Zygote进程的地址空间拷贝而来的,这样就可以加快Android应用...
进入 Android Dalvik 虚拟机,android dalvik介绍 Dalvik 虚拟机的特点——掌握 Android 程序的运行原理 Android 系统的架构采用分层思想,这样的好处是拥有减少各层之间的依赖性、便于独 立分发、容易收敛问题和...
Android Dalvik文件 编译方法
Dalvik opcodes
Google原创的Android Dalvik虚拟机讲义
dalvik_hook_demo,一个hook的例子
Dalvik虚拟机内存管理
Dalvik指令集ppt
android 4.0.4 源码中的dalvik的bytecode指令说明文档.
Dalvik VM Instruction Formats
Android Dalvik 虚拟机,想了解Android Dalvik 的朋友看过来
在SDKandroid中是不能看Dalvik的,想看还需要!有需要的可以下载
Dalvik 指令集 for2010
Android虚拟机Dalvik完整源码
NULL 博文链接:https://hwy1782.iteye.com/blog/1860810
dalvik虚拟机运行过程分析,详细介绍了dalvik虚拟机。
安卓4.2的系统源代码 虚拟机dalvik的(完整) 今天终于找到了,好东西一起分享。
深入理解Android之dalvik.pdf
dalvik字节编辑器