|
关键词:
android,虚拟化,android2高级编程,androidweb应用,深入理解android,android多媒体开发,android4.0网络编程详解,android开发完全讲义,安卓机顶盒测试用例,Android应用开发,Android手机开发
文档简介:
第四章Android虚拟机4.1Dalvik虚拟机简介Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。Dalvik的出现是为了躲避Sun公司JavaME的版权以及授权问题,由Google公司自己设计用于Android平台的Java虚拟机.4.2Dalvik虚拟机的主要特征专有的DEX文件格式一个应用中会定义很多类,编译完成后即会有很多相应的CLASS文件,CLASS文件间会有不少冗余的信息;而DEX文件格式会把所有的CLASS文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O操作,也提高了类的查找速度。原来每个类文件中的常量池,在DEX文件中由一个常量池来管理。一个应用,一个虚拟机实例,一个进程每一个Android应用都运行在一个Dalvik虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制,内存分配和管理,Mutex等等都是依赖底层操作系统实现的。所有Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制。不同的应用在不同的进程空间里运行,加之对不同来源的应用都使用不同的Linux用户来运行,可以最大程度的保护应用的安全和独立运行。Zygote是一个虚拟机进程,同时也是一个虚拟机实例的孵化器,每当系统要求执行一个Android应用程序,Zygote就会FORK出一个子进程来执行该应用程序。这样做的好处显而易见:Zygote进程是在系统启动时产生的,它会完成虚拟机的初......。
【文件名】:13221@52RD_Android虚拟机_1345772040625.pdf
【格式】:pdf
【大小】:468K
【简介】:
【目录】:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|