android笔试题一

炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述android笔试题一相关的知识,希望能为你提供帮助。
 
1.android  DVM(Dalvik  VM)的进程和Linux的进程,  应用程序的进程是同一个概念吗?
DVM(Dalvik  VM)指dalvik的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux  中的一个进程,所以说可以认为是同一个概念。运行在自己的DVM进程之中,不同的app不会相互干扰,且不会因为一个DVM的崩溃导致所有的app进程都崩溃。
Android 运行环境主要指的虚拟机技术——Dalvik。Android中的所有java程序都是运行在Dalvik VM上的。Android上的每个程序都有自己的线程,DVM只执行.dex的Dalvik executable  文件。每个Android应用在底层都对应有一个独立的DVM实例并在其解释下执行。
【android笔试题一】 
2.  Android中DVM与java中的JVM异同点:
DVM:Dalvik virtual machine 
JVM:Java  virtual machine
区别一:dvm执行的是.dex格式文件  jvm执行的是.class文件      Android程序编译完之后生产.class文件,然后,dex工具会把.class文件处理成.dex文件,然后把资源文件和.dex文件等打包成.apk文件。apk就是android  package的意思。 jvm执行的是.class文件。
区别二:dvm是基于寄存器的虚拟机  而jvm执行是基于虚拟栈的虚拟机。寄存器存取速度比栈快的多,dvm可以根据硬件实现最大的优化,比较适合移动设备。
区别三:.class文件存在很多的冗余信息,dex工具会去除冗余信息,并把所有的.class文件整合到.dex文件中。减少了I/O操作,提高了类的查找速度。
 

    推荐阅读