`
yxwang0615
  • 浏览: 561296 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Android DVM简介

阅读更多
    Dalvik Virtual Machine 是Android平台的基础。
     Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM基于栈。选择基于寄存器的方式是因为它对提前优化(ahead-of-time optimization)提供了更好的支持,而这对类似于移动电话这样的受限环境是颇有裨益的。另一份针对基于寄存器虚拟机和基于栈虚拟机更深入的比较分析指出,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

  Dalvik和Java之间的另外一大区别就是运行环境——Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

Android平台架构图:


如图所示:
应用程序包括:主页、联系管理、电话、浏览器、其他;
应用程序框架包括:Activity管理、窗体管理、内容提供者、视图系统、包管理、电话管理、资源管理、位置管理、通知管理。
库包括:表面管理、媒体框架、SQLite、OpenGL(3D开发库)、FreeType(字体引擎)、WebKit(网页浏览器引擎核心库)、SGL(2D图形引擎库)、SSL、libc、Android运行时(又包括核心库和Dalvik虚拟机)。
Linux内核包括:显示驱动、照相机驱动、内存驱动、Binder(IPC)驱动、键盘驱动、Wi-Fi驱动、音频驱动、电源管理。

作为Java开发者,最关系的可能是Android运行库(Android Runtime),它包括两部分:核心库和Dalvik虚拟机:
1.Android包括一组核心库(core libraries),他提供了 Java 编程语言的核心库中大多数可用功能。

2.每个 Android 应用程序运行在自己的进程上,有自己的 Dalvik 虚拟机实例。 Dalvik这样是为了使一个设备可以有效地运行多个虚拟机。 Dalvik VM 以被优化占用最小内存的Dalvik Executable (.dex)格式执行文件。VM 是基于寄存器的,并通过一个 Java 语言编译器的编译来运行,而这个Java编译器已经被内置的"dx"工具转成.dex 格式(DVM依赖LInux内核)。

3.Dalvik MicrosoftVM 依赖 Linux 内核获得基本功能,如线程处理和底层内存管理。

Android亦包含常见移动平台的关键性能,它已拥有一个良好的堆栈,包括蓝牙、EDGE, 3G和WiFi。在UI方面,支持OpenGL ES提供3D和类似于iPhone的界面管理(surface management)。


参考文章:

http://android.tgbus.com/Android/androidnews/200812/172535.shtml
http://news.csdn.net/n/20071114/110655.html
http://blog.csdn.net/jyfllzy/archive/2011/01/06/6119568.aspx
分享到:
评论

相关推荐

    Android中Dalvik(DVM)的详解

    Android中Dalvik(DVM)的详解 Dalvik是Google公司自己设计用于Android平台的Java虚拟机

    JVM DVM的区别

    #### 二、DVM简介 **DVM**是Dalvik Virtual Machine的简称,是安卓平台的专用虚拟机。它的名字来源于其创建者以一个名为Dalvik的小村庄命名,而非直觉上的Android Virtual Machine (AVM)。DVM的出现主要是为了适应...

    Android面试题及答案

    此外,Android面试题还包括 Android 手机操作系统的四层架构、Android dvm 的进程和 Linux 的进程、SIM 卡的 EF 文件、一条最长的短信息、Android 中的动画、嵌入式实时操作系统、Handler 机制等多方面的内容。

    百度Android工程师面试题.pdf

    Android应用程序的运行基于Dalvik虚拟机(DVM),每个应用都在其独立的进程中运行,具有单独的DVM实例。DVM是在Linux内核中作为一个进程存在的,因此可以说Android应用进程与Linux进程在概念上是相同的。 2. **SIM...

    android面试题大全及答案

    1. **Android DVM与Linux进程的关系** - DVM(Dalvik虚拟机)是Android系统中运行应用程序的虚拟机。每个Android应用在各自的进程中运行,都有一个独立的DVM实例。而在Linux操作系统中,这些DVM实例对应为单独的...

    零基础入门Android(安卓)逆向-rar

    34.Android dvm 脱壳3 H2 X- A# M4 s+ A6 K- b 35.Dalvik dex处理分析 ) x+ l1 l1 J R2 N) T" R) ^2 o 36.IDA脱壳脚本编写1) O7 `% E" Q. @1 X! o ~ 37.Odex修复方法 38.IDAOdex修复脚本编写 " X' w1 h: w3 N" u8 P5...

    2014年android面试题目及其答案大全

    在Android系统中,每个应用程序都在自己的Dalvik虚拟机(DVM)中运行,每个DVM实例对应于Linux中的一个独立进程。这意味着,从某种程度上讲,Android应用程序的进程与Linux进程是同一个概念。 2. **SIM卡的EF文件...

    百度android面试题

    在深入理解Android开发的过程中,了解DVM(Dalvik Virtual Machine)、Linux进程及应用程序进程之间的关系至关重要。DVM是专为Android设计的虚拟机,用于执行应用程序的字节码。每个Android应用在其独立的进程中运行...

    android面试选择题汇总

    1. 关于 Android DVM (Dalvik 虚拟机) 和 Linux 进程: 正确答案是 d. DVM 指 dalivk 的虚拟机。每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例。而每一个 DVM 都是在 Linux ...

    百度android开发面试题

    在Android环境中,DVM(Dalvik虚拟机)是为Android平台设计的虚拟机,每个Android应用都在其自己的进程中运行,并拥有独立的DVM实例。这意呸着每个应用都有自己的运行环境,相互隔离,保证了系统的稳定性和安全性。...

    Android5.1 Art Hook

    在Android 5.1版本之前,系统主要使用Dalvik虚拟机(DVM),而从Android 5.0开始,Google引入了Art作为默认的运行时环境。Art Hook就是在这两种环境下,特别是针对5.1及之前的DVM和Art环境,实现动态代码拦截和修改...

    百度android工程师面试题

    DVM,即Dalvik Virtual Machine,是Android系统中专为Android设计的虚拟机,每个Android应用程序都在其自己的进程中运行,拥有独立的Dalvik虚拟机实例。这意味着,尽管应用程序之间看似隔离,但实际上每个应用程序的...

    Android面试题附答案

    - DVM(Dalvik Virtual Machine)是Android早期使用的虚拟机,每个Android应用在自己的进程中运行,拥有独立的DVM实例。这些DVM实例运行于Linux内核之上的进程,因此可以说DVM进程和Linux进程是同一个概念。 2. **...

    Android Dalvik虚拟机的启动过程源码分析

    在深入探讨Dalvik虚拟机(Dalvik Virtual Machine, DVM)的启动过程之前,我们需要了解DVM的基本概念及其在Android系统中的作用。DVM是Android操作系统中运行应用程序的核心组件之一,负责执行已编译好的.dex文件。...

    android 动态加载class

    首先,我们需要理解Android的Dalvik虚拟机(Dalvik Virtual Machine, DVM)和后来的ART(Android Runtime)。DVM与传统的Java虚拟机不同,它采用了dex文件格式存储编译后的字节码,便于优化和减少内存占用。在...

    Android简答题

    在Android系统中,每个应用程序都在自己的进程中运行,这意味着每个应用都有一个独立的Dalvik虚拟机(DVM)实例。DVM是专门为Android设计的,它基于Linux内核中的进程概念。因此,从某种程度上来说,DVM的进程和Linux...

    android面试题目(含答案)

    在Android系统中,每个应用程序都在自己的Dalvik虚拟机(DVM)实例中运行,每个DVM实例对应Linux中的一个独立进程。因此,从这个角度讲,Android应用程序的进程和DVM进程可以认为是同一个概念。 2. **SIM卡的EF文件*...

    Android程序设计基础_光盘源码

    3. **Dalvik虚拟机(DVM)**:在Android SDK 3.1中,应用运行在Dalvik虚拟机上,这是一种专门为移动设备优化的虚拟机,使用dex格式的字节码执行。 4. **API文档**:包含了Android系统的各种类库、方法和接口的详细...

Global site tag (gtag.js) - Google Analytics