在Dalvik VM中,一个应用中会定义很多类,编译完成后有很多相应的.class文件,.dex文件吧所有的.class文件内容整合到一个文件中。除了减少整体文件尺寸,I/0操作,也提高了类的查找速度。
每个Android应用都运行在一个Davik Vm实例中,每个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制、内存分配和管理、Mutex等都是依赖底层操作系统实现的。所有的Andorid应用线程都对应于一个linux线程。
zygote是一个虚拟机进程,也是一个虚拟机实例的孵化器,每当系统要求执行一个Android应用程序,Zygote就会孵化出一个子进程来执行该应用程序。
2.Dalvik Vm的代码结构
Dalvik是Android的java虚拟机,代码保存在dalvik/目录下,目录的具体结构如下:
./
Android.mk
CleanSpec.mk
Notice
README.TXT
dalvikvm
dexdump
docs
dvz
hit
libcore
libcore-disabled