`
cqllang
  • 浏览: 67507 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Dalvik 十件事

阅读更多

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对人们未来的导引。

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics