`

Dalvik 简介

阅读更多
Dalvik是Google公司自己设计用于Android平台的Java虚拟机。

Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。(dx 是一套工具,可以将 Java .class 转换成 .dex 格式. 一个dex档通常会有多个.class。由于dex有时必须进行最佳化,会使档案大小增加1-4倍,以ODEX结尾。)  
 Dalvik 和标准Java 虚拟机(JVM)首要差别  
 Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。  
 Dalvik 和Java 运行环境的区别  
 Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。  
 [2]1:Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。  
 2:Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。  
 3:不同于Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件格式Dex   4:dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。  
 5:odex是为了在运行过程中进一步提高性能,对dex文件的进一步优化。
 6:所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制  
 7:有一个特殊的虚拟机进程Zygote,他是虚拟机实例的孵化器。它在系统启动的时候就会产生,它会完成虚拟机的初始化,库的加载,预制类库和初始化的操作。如果系统需要一个新的虚拟机实例,它会迅速复制自身,以最快的数据提供给系统。对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域。
分享到:
评论

相关推荐

    Dalvik源码

    Dalvik虚拟机简介** Dalvik是Google专门为Android设计的一种轻量级虚拟机,它基于寄存器架构,而不是传统的基于栈的虚拟机。这种设计使得Dalvik能够更好地适应移动设备的资源限制。在Android系统中,每个应用程序都...

    Dalvik指令格式索引表及位描述索引表

    **一、Dalvik字节码简介** Dalvik字节码是一种特定于Android的指令集,它不同于传统的Java虚拟机(JVM)使用的Java字节码。Dalvik字节码的设计目的是为了在内存有限的设备上提高性能和减少存储需求。每个Dalvik字节...

    深入理解Android之dalvik.pdf

    #### 三、Dalvik虚拟机简介 Dalvik虚拟机是Android操作系统中用于执行应用层代码的核心组件之一。与标准的Java虚拟机(JVM)不同,Dalvik虚拟机是为移动设备优化设计的,支持低内存占用和多实例同时运行。此外,...

    Android虚拟机Dalvik(略谈Android Dalvik虚拟机)

    #### 一、Dalvik虚拟机简介 Dalvik虚拟机是Android操作系统的核心组件之一,由Google公司开发并用于其移动操作系统Android中。它是一种专为移动设备设计的轻量级虚拟机,旨在提高性能的同时减少资源消耗。与传统的...

    Dalvik虚拟机简介

    Dalvik虚拟机是Android平台的核心组件之一,由Google在2007年随同Android SDK一同发布,旨在为Android应用程序提供高效、稳定的运行环境。与传统的Java虚拟机相比,Dalvik虚拟机拥有独特的设计和优势,使其特别适合...

    深入理解Android(二):Java虚拟机Dalvik

    #### 二、Dalvik虚拟机简介 Dalvik虚拟机是为Android操作系统量身定制的Java虚拟机。与传统的Java虚拟机(JVM)不同,Dalvik虚拟机主要运行经过优化的.dex(Dalvik Executable)格式的文件,而不是标准的Java字节码...

    新版Android开发教程&笔记四--Dalvik ADB

    这些功能通常封装在各种Java包中,以下是一些重要的包及其功能简介: - **android.app**:该包提供了应用程序的基本运行环境和高层次的模型,包括Activity、Service等核心组件。 - **android.content**:这个包包含...

    Android框架简介

    【Android框架简介】 Android框架是构建Android应用程序的基础,它由多个层次组成,包括Dalvik虚拟机、Java框架、JNI以及系统服务等关键组件。本文将对这些核心部分进行简要介绍。 首先,让我们来看看Android的...

    Android程序设计简介.doc

    **Android程序设计简介** Android是由Google推出的一款开源操作系统,它基于Linux Kernel,旨在为移动电子设备提供一套完整的系统服务框架和图形用户界面。这个操作系统的名字来源于最初创立该系统的公司,这家公司...

    Android基础知识详解

    Dalvik虚拟机简介 11 什么是Dalvik虚拟机 11 Dalvik和Android系统 11 Dalvik虚拟机的主要特征 12 Android应用开发和Dalvik虚拟机 15 Activity生命周期 16 一、Activity栈 16 二、Activity的4种状态 16 三、Activity...

    Android虚拟机

    #### 二、Dalvik虚拟机简介 ##### 2.1 平台无关性 Java语言以其平台无关性的特点而闻名。为了实现这一点,Java虚拟机起到了关键作用。通常情况下,大多数高级编程语言如果要在不同的操作系统上运行,则需要针对每...

    Android开发简介.pdf

    每个Android应用程序都在Dalvik VM的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中。 Android平台的优点在于它具有丰富的功能,可以满足不同消费群体的需求。Android应用程序可以链接到Google地图,...

    某世界500强公司培训资料 第四章_Android虚拟机.pdf

    #### 4.1 Dalvik虚拟机简介 Java作为一种广泛使用的编程语言,其核心优势之一便是跨平台兼容性。这种兼容性的实现主要依赖于Java虚拟机(JVM)。通常情况下,为了让一个高级语言能在不同操作系统或硬件架构上运行,...

    Android内存管理小结

    - **Dalvik虚拟机简介**:Dalvik虚拟机是Android系统的核心组件之一,它负责执行Android应用中的Java字节码。与传统的Java虚拟机(JVM)不同,Dalvik虚拟机执行的是.dex文件格式的字节码,这种格式经过了专门的设计,...

    Android技术内幕.系统卷(扫描版)

    《android技术内幕:系统卷》 前言 第1章 准备工作 /1 ...9.1 android核心库简介 /528 9.2 android系统api /529 9.2.1 android包 /529 9.2.2 android资源包 /529 9.2.3 apicheck机制 /529 9.3 小结 /532 后记 /533

    Android的简介

    【Android 简介】 Android 是一款开源的操作系统,专为移动设备设计,它由操作系统、中间件和一系列核心应用程序组成。Android SDK 提供了使用 Java 语言进行 Android 平台开发所需的工具和 API。其主要特点包括: ...

    Android技术内幕.系统卷 pdf

    《android技术内幕:系统卷》 前言 ...9.1 android核心库简介 /528 9.2 android系统api /529 9.2.1 android包 /529 9.2.2 android资源包 /529 9.2.3 apicheck机制 /529 9.3 小结 /532 后记 /533

    Android高级编程.pdf

    第1章 Android简介 1.1 一些背景信息 1.1.1 不远的过去 1.1.2 未来的前景 1.2 对Android的误解 1.3 开放的移动开发平台 1.4 自带的Android应用程序 1.5 Android SDK功能 1.5.1 对包括摄像头、GPS和加速计在内的硬件...

    Android 静态分析

    1. smali语言简介: - smali是一种用于编写Dalvik字节码的人类可读的汇编语言。 - 宏观上,smali指令基于Dalvik虚拟机的指令格式,包括各种操作码,如invoke系列用于调用方法。 - 具体的指令集可以在官方文档中...

Global site tag (gtag.js) - Google Analytics