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分钟就可以浏览完了。
2月 4th, 2010 at 7:30 上午
Hello there. Thanks for this site. I visit it regularly to read the latest stuff.