JVM和Dalvik的区别
2014-03-14 21:21
357 查看
1.android应用程序运行在单独的一个Dalvik虚拟机内,Dalvik专门针对同时高效运行多个虚拟机进行了优化,
因此android系统可以方便地实现对应用程序进行隔离。
2.Dalvik并未遵守jvm规范,两者也不兼容,jvm运行的是java字节码(.class文件)
Dalvik运行的是其专有的dex(Dalvik Executeable)文件
DX工具将应用程序所有的.class文件编译成.dex文件,Dalvik运行.dex文件。
3.Dalvik虚拟机适应于移动终端上的特点:
1.专有的.dex文件吧所有的.class 文件整合到一个文件中,减少了.class文件中的冗余信息,提高
运行性能
2.基于寄存器实现,而jvm等pc上虚拟机大多是基于栈的。
总结:
jvm虚拟机:
1.java虚拟机基于栈,基于栈的机器必使用指令来载入和操作栈上的数据,
2.java虚拟机运行的是字节码(.class)
3.类会被编译成一个或多个字节码.class文件,打包到jar文件中,java虚拟机从相应的.class文件盒jar文件中获取相应的字节码
Dalvik:
1.dalvik虚拟机是基于寄存器的
2.Dalvik运行的是自定义的.dex 字节码格式
3.类编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据。
一个应用,一个虚拟机实例,一个进程(所有
android应用的线程都是对应一个linux线程,都运行在自己的沙盒中,不同的应用在不同的进程中运行。每个
android dalvik应用程序都被赋予了一个独立的linux PID(app_*))
因此android系统可以方便地实现对应用程序进行隔离。
2.Dalvik并未遵守jvm规范,两者也不兼容,jvm运行的是java字节码(.class文件)
Dalvik运行的是其专有的dex(Dalvik Executeable)文件
DX工具将应用程序所有的.class文件编译成.dex文件,Dalvik运行.dex文件。
3.Dalvik虚拟机适应于移动终端上的特点:
1.专有的.dex文件吧所有的.class 文件整合到一个文件中,减少了.class文件中的冗余信息,提高
运行性能
2.基于寄存器实现,而jvm等pc上虚拟机大多是基于栈的。
总结:
jvm虚拟机:
1.java虚拟机基于栈,基于栈的机器必使用指令来载入和操作栈上的数据,
2.java虚拟机运行的是字节码(.class)
3.类会被编译成一个或多个字节码.class文件,打包到jar文件中,java虚拟机从相应的.class文件盒jar文件中获取相应的字节码
Dalvik:
1.dalvik虚拟机是基于寄存器的
2.Dalvik运行的是自定义的.dex 字节码格式
3.类编译成.class文件后,会通过一个dx工具将所有的.class文件转换成一个.dex文件,然后dalvik虚拟机会从其中读取指令和数据。
一个应用,一个虚拟机实例,一个进程(所有
android应用的线程都是对应一个linux线程,都运行在自己的沙盒中,不同的应用在不同的进程中运行。每个
android dalvik应用程序都被赋予了一个独立的linux PID(app_*))
相关文章推荐
- Dalvik和JVM的区别
- JVM、Dalvik及ART虚拟机的区别
- 深入理解Java虚拟机——JVM、DVM(dalvik)和ART之间的区别
- Dalvik和JVM的区别
- Dalvik和JVM的几点区别
- Dalvik VM (DVM) 与Java VM (JVM)的区别
- 面试问题之:Dalvik VM和JVM的区别(1)
- Android中Dalvik和JVM的区别是什么?
- JVM和Dalvik VM的简要区别?
- 深入理解Java虚拟机——JVM、DVM(dalvik)和ART之间的区别
- JVM/Dalvik和ART的区别
- Dalvik与JVM区别
- 面试问题之:Dalvik VM和JVM的区别(1)
- Android中Dalvik和JVM的区别是什么?
- JVM和Dalvik VM的简要区别
- Android Dalvik和JVM的区别
- Dalvik虚拟机与JVM的区别
- Dalvik和JVM的几点区别
- JVM和Dalvik VM和ART虚拟机的区别
- JVM和Dalvik的区别