码迷,mamicode.com
首页 > 移动开发 > 详细

android笔试题一

时间:2017-06-11 00:24:28      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:inux   nbsp   play   自己   最大   ffffff   异同点   20px   运行   

 

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实例并在其解释下执行。

 

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操作,提高了类的查找速度。

 

android笔试题一

标签:inux   nbsp   play   自己   最大   ffffff   异同点   20px   运行   

原文地址:http://www.cnblogs.com/tangZH/p/6980389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!