炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述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操作,提高了类的查找速度。
推荐阅读
- AndroidListView工作原理完全解析(转自 郭霖老师博客)
- ORA-12519: TNS:no appropriate service handler found 解决
- SpringBoot application.yml logback.xml,多环境配置,支持 java -jar --spring.profiles.active
- 通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider
- 通过制作Flappy Bird了解Native 2D中的Sprite,Animation
- Android带索引联系人列表
- Android-async-http 的用法
- 本书已出版<拨云见日(基于android的内核与系统架构源代码分析 >)
- android 2048游戏实现