Dalvik虚拟机

昨天开始看Android相关的技术文章,Android里面使用了一个名为dalvik的虚拟机来支持java。

Dalvik是一个register-based 的虚拟机,register-based是相对stack-based而言的,register-based的操作数是放在寄存器里面的,因此每条指令都需要指明操作的是哪个寄存器,而stack-based的操作数是放在栈上,指令从栈顶pop出操作数操作,然后把结果push回栈即可。

因此stack-based对指令的要求低,对内存的要求高,而register-based对指令的要求高,对内存的要求低。

尽管Dalvik被视为一种Java Virtual Machine,然而其指令字节码是跟JVM不相同的,需要通过一个专用工具,把java的类文件转为.dex(Dalvik Executable)格式。

再过了一下Dex的文件格式,设计得还挺简单,20分钟就可以浏览完了。

Tags: , ,

One Response to “Dalvik虚拟机”

  1. Joanie Rising Says:

    Hello there. Thanks for this site. I visit it regularly to read the latest stuff.

Leave a Reply

Spam Protection by WP-SpamFree