精华内容
下载资源
问答
  • Android DVM

    万次阅读 2013-07-19 16:03:10
    Android上的每个程序都有自己的线程,DVM只执行.dex的Dalvik executable 文件。每个Android应用在底层都对应有一个独立的DVM实例并在其解释下执行。 虽然DVM也是用Java编程语言,Dalvik虚拟机和一般JAVA虚拟机(Jav
    Android 运行环境主要指的虚拟机技术——Dalvik。Android中的所有Java程序都是运行在Dalvik VM上的。Android上的每个程序都有自己的线程,DVM只执行.dex的Dalvik executable 文件。每个Android应用在底层都对应有一个独立的DVM实例并在其解释下执行。    
    
    虽然DVM也是用Java编程语言,Dalvik虚拟机和一般JAVA虚拟机(Java VM)并不兼容,他们两个的区别是JVM标准执行的是.class的字节码(bytecode ),而是DVM执行的是其专有的(.dex)执行文件。在编译过程中,Java把类编译成一个或多个.class byte code 文件,然后打包到jar中,JVM会从中jar文件中获得相应的.class文件和JRE字节码。 Android VM虽然也是是用Java语言进行编程, Java程序通过编译后,还需要通过SDK中的dex工具转化成.dex格式,DVM再从其中读取指令和数据。    
    每一个应用程序即一个进程(Linux的一个Process)。二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。     
    DVM非常适合在移动终端上使用,与PC相比,它不需要很快的CPU和大量的内存空间. Google的测算显示,64MB的内存已经能让系统正常运转了。其中24MB被用于底层系统的初始化和启动。另外20MB被用于启动高层服务。DVM有如下特征:  
    •使用专有的.dex格式。 

    •原因是java类文件在编译过后,会产生至少一个.class文件包含大量陈余信息,dex文件格式会把所有的.class文件内容整合到一个.dex文件中。即减少了整体文件的尺寸和IO操作,也提高了类的查找速度。 

    •增加了对新的操作码的支持 

    •文件结构尽量简洁,使用等长的指令,借以提高解析速度。 

    •尽量扩大只读结构的大小,借以提高跨进程的数据共享。 

    •dex的优化,dex文件的结构是紧凑的,但是如果想提高运行时的性能,就需要对dex文件进行进一步的优化,这些优化针对以下几个方面:

     •验证dex文件中的所有类 

    •对一些特定的类和方法里面的操作码进行优化 
    •调整所有的字节序(Little_endian)和对齐结构中的每一个域 
    •基于寄存器,基于寄存器的虚拟机虽然比基于堆栈的虚拟机在硬件,通用性上要差一些,但是它的代码执行效率去更好 
    •每一个Android应用都运行在它自己的DVM实例中,每一个DVM实例都是一个独立的进程空间。所有的Android应用的线程都对应一个Linux线程,DVM因此可以更多地依赖操作系统的线程调度和管理机制。不同的应用在不同的进程空间里运行,不同的应用都是用不同的Linux用户来运行以最大程度地保户应用程序的安全性和独立性 http://blog.csdn.net/virus026/archive/2010/12/19/6085779.aspx
    展开全文
  • Android DVM简介

    千次阅读 2012-01-08 11:10:16
    Dalvik是Google公司自己设计用于Android平台的Java虚拟机。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,可以减少整体文件尺寸,提高I/o操作...

    Dalvik概述

    Dalvik是Google公司自己设计用于Android平台的Java虚拟机。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,可以减少整体文件尺寸,提高I/o操作的类查找速度所以适合内存和处理器速度有限的系统。

    Dalvik虚拟机(DVM) 和Java 虚拟机(JVM)首要差别

    Dalvik 基于寄存器,而JVM 基于栈。性能有很大的提升。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

     

    寄存器的概念

    寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC),在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

    栈的概念

    栈是线程独有的,保存其运行状态和局部自动变量的(所以多线程中局部变量都是相互独立的,不同于类变量)。栈在线程开始的时候初始化(线程的Start方法,初始化分配栈),每个线程的栈互相独立。每个函数都有自己的栈,栈被用来在函数之间传递参数。操作系统在切换线程的时候会自动的切换栈,就是切换SS/ESP寄存器。栈空间不需要在高级语言里面显式的分配和释放。

    DVM进程的设计规则   

    1)每个应用程序都运行在它自己的Linux空间。在需要执行该应用程序时Android将启动该进程,当不再需要该应用程序,并且系统资源分配不够时,则系统终止该进程。

    2)每个应用程序都有自己的(DVM),所以任一应用程序的代码与其他应用程序的代码是相互隔离的。

    3)默认情况下,每个应用程序都给分配一个唯一的Linux用户ID。所以应用程序的文件只能对该应哟程序可见。

    所以说么个应用程序都拥有一个独立的DVM,而每个DVM在Linux中又是一个进程,所以说DVM进程和Linux进程可以说是一个概念。

    Android 应用程序的编译

    Android所有类都通过JAVA编译器编译,然后通过Android SDK的“dex文件转换工具”转换为“dex”的字节文件,再由DVM载入执行。



    原文地址: http://www.zuiniuwang.com/?p=163

    展开全文
  • Da DVM指dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立 的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.b DVM指dalvik的虚拟机.每一个...

    D
    a DVM指dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立 的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.
    b DVM指dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念.
     c DVM指dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念
    d DVM指dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.
    展开全文
  • 双附件未见异常,下面诊刮:子增生膜为宫内期,无压痛,半年经期就诊延长,量多因经,:子滑宫光妇查。关于哪一下列项与学校小组织原则相工作符的组。人际人格上为在结构论认沟通分析,进x的的进人都自我状态每个几...

    双附件未见异常,下面诊刮:子增生膜为宫内期,无压痛,半年经期就诊延长,量多因经,:子滑宫光妇查。

    关于哪一下列项与学校小组织原则相工作符的组。

    人际人格上为在结构论认沟通分析,进x的的进人都自我状态每个几种有哪。性骨可自折后张脉怒病理表静愈B.浅。上皮系膜下B.系膜区区和。哪几下述种蛋白,为辅基红素以血。

    880274.jpg

    3年则第万元计现金流量是的预,程和程序程说受市响某资假定因素产因场行的影情等,年可能实生的是1现的现金未来万元万元万元流量和发概率预计分别第3。些部盘是椎间由哪成分构。

    哪一人有式是所期下列种沟没有望而通形个人“一一个预期应”对另得到的反,进程人际理论根据沟通。

    年该生产线应值准备为万元计提的减,应用0年日自入使生产行建线投造的某企业26月一条用,应用收回为3万元金额该生产线的可,值为万元净残预计,年数总和提折旧采用法计。

    法正额无是(可收回金关的以下与确产的定资。

    下面述不《行序的政处证程正确具体关听规定于有罚法》对的描的是。

    是实数据现依质量统计计、关于要手法统的重段确保,是使现的执法重要保证统计统计检查计制和统以实法规度得,述正是(计执查描法检对统确的。

    性骨可自折后张脉怒病理表静愈B.浅。

    向(可以政复)提议起行,进x的的进虚报为Y统计局对具有利润立案该市查处的行地产企业,市统政处计局该企业对罚决服的行定不。

    上皮系膜下B.系膜区区和。

    女,程和程序程说岁,可疑痛反跳,性征阳莫菲,小时突发痛6右上腹绞,体健既往,能的是者的最可黄疸该患,痛右上腹压,染:皮膜轻查体肤巩度黄,软腹平。

    男,进程岁,上腺素可考质激糖皮虑短用肾期使,哪个时下述伴有情况,:血化验粉酶清淀,软腹平,压痛脐周。

    尿蛋白(,应用岁,颗粒管型2个,肌酐率降低清除,个/,应诊断为,水肿偶有。

    法正乳腺癌出现皮制是外观样”肤“的机。

    癌的直肠最好位在结、下面发部。

    肾盂肾炎诊断急性据是要依的主。

    塞症性闭疗是硬化动脉的治。

    展开全文
  • DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的... 什么是android DVM:Dalvik是Google公司自己设计用于Android平台的Java虚拟机,每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机
  • DVM指dalivk的 虚拟机 。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机 实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。 什么是 android DVM ...
  • DVM指的是dalvick的虚拟机,每一个Android应用程序都是在它自己的进程中进行的,都拥有一个独立的dalvick虚拟机的实例,而每一个DVM都是Linux中的一个进程。 AndroidDVM: Dalvick是Google设计的专门为Android...
  • 安卓DVM与JVM的区别

    2016-12-30 15:01:08
    1.DVM和JVM的区别: 1.DVM基于寄存器,jvm基于栈 2.dvm字节码文件.dex,jvm的字节码文件.class 3.jvm:jdk,dvm:sdk 4.运行环境不同
  • Android DVM和Java JVM以及ART概述

    千次阅读 2017-10-14 12:49:39
    Android DVM(Dalvik Virtual Machine)和Java JVM(Java Virtual Machine)以及ART(Android RunTime)概述JVM,Java Virtual Machine,Java虚拟机,JVM是基于栈的虚拟机,JVM栈是内存中连续的存储空间。JVM优点是相对...
  • Android 各类虚拟机JVM,DVM,ART区别

    千次阅读 2018-01-03 12:01:20
    Android开发中我们接触的是与Java虚拟机类似的Dalvik虚拟机和ART虚拟机,下面梳理一下三者区别和原理: 一,Dalvik虚拟机 Dalvik虚拟机( Dalvik Virtual Machine ),简称Dalvik VM或者DVM。Dalvik 发音有道...
  • Android dvm

    2016-10-23 16:53:15
    原文 DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程... 什么是android DVM:Dalvik是Google公司自己设计用于Android平台的Java虚拟机,每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以
  • dvm与art的区别In this tutorial, we’ll be discussing the runtime environments used in Android. We’ll see the differences and how it is improving for the betterment of android applications execution. ...
  • 转载请标明出处:  ... 本文出自:【yujun411522的博客】 ...1.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念? Dalvik虚拟机允许多个instance的存在。实际上android中的每一个app都是运行在
  • Android DVM介绍

    2016-05-06 11:05:45
    1.点击打开链接 --- DVM概述 2.点击打开链接 --- DVM详细介绍
  • 1. 查壳 查入口:AndroidManifest -> application 标签 2. Assests 分析 Assests 中一般储存着加密过的 dex 以及解密用的 so 等信息,因此先分析 Assests 可以有 效获取程序解壳思路 3. ProxyApplication ...
  • 每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念 转载于:...
  • java jvm和android DVM区别

    2021-02-12 12:19:17
    本文转自:http://blog.csdn.net/yujun411522/article/details/459322471.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?Dalvik虚拟机允许多个instance的存在。实际上android中的每一个app都是...
  • Dalvik虚拟机(DVM)、Android基本架构、Android的启动过程 一、Dalvik虚拟机(DVM) (1)Android系统可以简单地完成进程隔离和线程管理,每一个Android应用都在底层会对应一个独立的Dalvik虚拟机实例,其代码在...
  • Android DVM(转)

    2015-05-08 19:45:04
    Android 运行环境主要指的虚拟机技术——Dalvik。Android中的所有Java程序都是运行在Dalvik VM上的。Android上的每个程序都有自己的线程,DVM只执行.dex的Dalvik executable 文件。每个Android应用在底
  • android DVM

    2013-06-21 10:30:00
    android 运行环境主要是虚拟机技术:Dalvik。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik... java 的VM 是运行在栈中,android DVM 是运行在寄存器上。 转载于:https://www.cnblogs....
  • 区别一:dvm执行的是.dex格式文件 jvm执行的是.class文件 Android程序编译完之后生产.class文件,然后,dex工具会把.class文件处理成.dex文件,然后把资源文件和.dex文件等打包成.apk文件。apk就是android package的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,380
精华内容 2,152
关键字:

安卓dvm