什么是Dalv ik 虚拟机
Google 于2007 年底正式发布了Android SDK, 作为 Android 系统的重要特性,Dalvik 虚拟机也第一次进入了人们的视野
它对内存的高效使用,和在低速 CPU 上表现出的高性能,确实令人刮目相看
依赖于底层 Posix 兼容的操作系统,它可以简单的完成进程隔离和线程管理
每一个 Android 应用在底层都会对应一个独立的Dalvik 虚拟机实例,其代码在虚拟机的解释下得以执行
很多人认为Dalvik 虚拟机是一个 Java 虚拟机,因为Android 的编程语言恰恰就是Java 语言
但是这种说法并不准确,因为Dalvik 虚拟机并不是按照 Java 虚拟机的规范来实现的,两者并不兼容;同时还要两个明显的不同: Java 虚拟机运行的是Java 字节码,而 Dalvik 虚拟机运行的则是其专有的文件格式DEX(Dalvik Executable)
在 Java SE 程序中的Java 类会被编译成一个或者多个字节码文件(
class)然后打包到 JAR 文件,而后 Java 虚拟机会从相应的CLASS 文件和 JAR 文件中获取相应的字节码;Android 应用虽然也是使用Java 语言进行编程,但是在编译成 CLASS 文件后,还会通过一个工具(dx)将应用所有的CLASS 文件转换成一个 DEX 文件,而后 Dalvik 虚拟机会从其中读取指令和数据
Dalv ik 和 Android 系统 Android 作为新一代的基于Linux 的开源手机操作系统,其系统架构由下而上可以分为以下几部分: 1
Linux 内核 2
Android 运行库 4
应用框架 5
应用 图表1 如图所示,Android 运行库包括两部分:核心库和Dalvik 虚拟机
核心库包括了最基本的类库,