关于JVM与DVM,这些你可能不知道
来源:互联网 发布:茄子换机软件 编辑:程序博客网 时间:2024/05/16 15:35
JVM,Dalvik,我们每天都在和他们打交道,可是我们真的了解他俩吗?
提到他俩可以追溯到sun和Google的官司,感兴趣的小伙伴可以自行百度哈。
现在我们先对他俩做一个比较:
DVM将许多.class文件变成一个.dex文件,速度更快。
在架构方面,寄存器(CPU)速度肯定比普通内存(如栈)快。
和sun的版权问题促进DVM的诞生。
然后补充一下对两者的基本认识和ART模式:
Java虚拟机(JVM)是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。它有自己完善的硬件架构(如处理器、堆栈、寄存器等),还具有相应的指令系统。使用“Java虚拟机”程序就是为了支持与操作系统无关、在任何系统中都可以运行的程序。
Dalvik虚拟机是Android程序的虚拟机,是Android中Java程序的运行基础。其指令集基于寄存器架构,执行其特有的文件格式——dex字节码来完成对象生命周期管理、堆栈管理、线程管理、安全异常管理、垃圾回收等重要功能。它的核心内容是实现库(libdvm.so),大体由C语言实现。依赖于Linux内核的一部分功能——线程机制、内存管理机制,能高效使用内存,并在低速CPU上表现出的高性能。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。
一个应用,一个虚拟机实例,一个进程!!!
每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。每个进程之间可以通信(IPC,Binder机制实现)。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统而实现的。
不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它 虚拟机造成影响,可以最大程度的保护应用的安全和独立运行。
DVM的优势:
1、在编译时提前优化代码而不是等到运行时;
2、 虚拟机很小,使用的空间也小;被设计来满足可高效运行多种虚拟机实例;
3、常量池已被修改为只使用32位的索引,以简化解释器。
ART模式:
ART模式英文全称为:Android runtime,谷歌Android 4.4系统新增的一种应用运行模式,与传统的Dalvik模式不同,ART模式可以实现更为流畅的安卓系统体验,对于大家来说,只要明白ART模式可让系统体验更加流畅,不过只有在安卓4.4以上系统中采用此功能。
- 关于JVM与DVM,这些你可能不知道
- 这些你可能不知道:软件测试的常识
- 这些你可能不知道:软件测试的常识
- 这些你可能不知道:软件测试的常识
- 这些你可能不知道:软件测试的常识
- 关于xargs,你可能不知道的
- 关于startActivityForResult你可能不知道的
- 关于iPhone,你可能不知道的
- 关于 SSL 及 CA 证书,你可能需要知道这些
- 关于互联-这些你可能很想知道
- JVM和DVM的区别,你知道吗?
- 这些你肯定不知道!
- 这些你肯定不知道!
- 关于DataSet你可能不知道的一件事情
- 关于Google你可能不知道的10件事
- 关于static你可能不知道的事
- 关于PHP你可能不知道的10件事
- 关于PHP你可能不知道的10件事
- Tomcat启动报The APR based Apache Tomcat Native library ...解决办法
- hdu2768 Cat vs. Dog--最大匹配数
- java基础之集合
- POJ 2503 动态建树
- android逆向6
- 关于JVM与DVM,这些你可能不知道
- Arrays.binarySearch(二分法检索)
- 棋子翻转---- 美团2016研发工程师在线编程题
- ERROR: must be superuser to COPY to or from a file
- app审核被拒
- golang 通过gin框架获取未知的参数
- android逆向7
- 用Parcelable接口传递Bitmap
- HDFS inotify:Linux inotify机制在HDFS中的实现