- Android运行环境主要指的虚拟机技术—Dalvik.
- Android中的所有Java才程序都是运行在Dalvik vm上的,Android上的每个程序都有自己的线程,DVM执行的是.dex的Dalvik excutable文件,每个Android应用有一个独立的DVM实例并在其解释下执行。每一个应用程序既是一个进程(Linux的一个process)。Android中Java程序通过编译后,还需要通过SDK中的dex工具转化为.dex格式。DVM再从中读取指令和数据。
- Jvm和DVM的区别:
- DVM虽然也是用Java编程语言,Dalvik虚拟机和一般Java虚拟机并不兼容。
- Jvm执行.class字节码文件,而DVM执行其专有的.dex文件。
- Jvm是基于栈(Stack-based)的虚拟机,DVM是基于寄存器的虚拟机(Register-based),后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点,虽然通用性差了点外,但是代码的执行效率高。
- 总之,DVM非常适合用于移动终端上,与pc相比,它不需要很快的CPU与大量的内存空间。
- 将class文件转换成dex文件的原因,class文件中包含大量的陈余信息,dex文件格式会把所有的class文件内容整合到一个dex文件中减少整个文件尺寸和IO操作,也提高查找速度。文件结构简单,使用等长指令,借以提高解析速度,支持新的操作码。
时间: 2024-12-20 03:20:46