我对android davilk 虚拟机的理解

  Davilk虚拟机作为Android平台的一部分.Google公司花了大量时间思考针对低功耗手持设备的优化设计。在智能手机出现之前,与桌面设备相比,手持设备在内存和速度方面落后8-10年。它们的计算能力也有限。结果,手机的性能需求变得很严格,要求手机设计人员优化所有因素。如果查看Android中的包列表,你将会看到它们的功能全面而丰富。
这些问题使Google公司在许多方面重新审视标准JVM实现。(Dan Bomstein(一位Stanford university 的教授)对Google公司的这个JVM实现作出了重要贡献,他编写了Dalvik VM,Dalvik是冰岛一个小镇的名称。)首先.Dalvik VM获取生成的Java类文件,将它们组合为一个或多个Dalvik可执行文件(.dex)。它重用多个类文件中的重复信息,与未压缩的传统.jar文件相比,有效地将空间需求减少了一半。如图所示:

  其次,Google公司在Dalvik VM中对垃圾收集进行了调优,但它在早期版本中选择了删除java经典的JIT(Just-In-Time,即时)编译器。后来,Android 2.3添加了JIT.报告称这可在各种场所提供快2到5倍的原始性能,将通用应用程序的性能提升l0%-20%.android 4.4以后引入的art虚拟机,这是一种新的机制,以后有时间在说。
最后,Dalvik VM使用了一种不同的汇编代码生成方法,它使用寄存器而不是栈作为主要的数据存储单元。GOogle公司希望这样能将指令减少到30%。应当指出,采用Dalvik VM的一个结果是,Android中最终的可执行程序代码不是基于Java字节码,而是基于.dex文件。这意味着无法直接执行Java字节码,必须首先得到Java类文件,然后将它们转换为可链接的.dex文件。如图所示:

  这种对性能的狂热追求还扩展到了Android SDK的其他部分。例如:

  Android SDK大量使用XML来定义相应布局。然而,所有XML数据必须编译为二进制文件,然后才能将这些文件存储在设备上。Android提供了一些专门的机制来处理XML数据。

    当然,android由于虚拟机的限制,有了相应的性能瓶颈,因此在android 4.4时候引入art虚拟机。下节,我们聊一聊art虚拟机。

时间: 2024-10-28 13:04:59

我对android davilk 虚拟机的理解的相关文章

android 虚拟机-eclipse 开发android,虚拟机开机后什么都没有,界面是黑的,求各位大大们帮忙看看

问题描述 eclipse 开发android,虚拟机开机后什么都没有,界面是黑的,求各位大大们帮忙看看 如题,右上角有个破碎的手图案,双击后出现"Voice actions disabled in this preview Swipe to dismiss",这是为什么 解决方案 1.关键字百度谷歌 2.到官网重新下个eclipse 3.把电脑砸了

怎么添加android studio虚拟机的API版本?

问题描述 怎么添加android studio虚拟机的API版本? 我在创建虚拟机时里面只有API 22的版本,没有低版本.在选择API界面一直卡死,没有其他选择,请问有其他方法能添加API版本吗? 解决方案 需要在SDK Manager里面下载相应版本的SDK, 才能在你上面截图里面出现

osx android studio虚拟机启动黑屏

问题描述 osx android studio虚拟机启动黑屏 osx 10.11 Android studio 1.4 HAXM is working and emulator runs in fast virt mode emulator: emulator window was out of view and was recentered 错误如上 虚拟机启动后一直黑屏,无响应.以前1.2的时候没问题

Android菜单详解——理解android中的Menu

Android菜单详解--理解android中的Menu 前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至今为止看到的最好的一本android书,中文版出到<精通Android 2>. 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu&qu

Android Dalvik虚拟机简述(与Java虚拟机的区别和简要的执行原理)

先一睹Dalvik虚拟机在Android系统框架图中位置: 文章目录: 一.虚拟机简述二.Java虚拟机简述三.Dalvik虚拟机简述四.Dalvik虚拟机与Java虚拟机的区别五.Dalvik虚拟机执行原理简述 此文章原始是PPT格式已转换为PDF,请直接下载文档阅读: AndroidDalvikVMOverview

android 使用虚拟机安装apk(图文教程)_Android

1.启动虚拟机 2.我的android sdk在"E:\android\android开发环境\android SDK\platform-tools"把要安装的apk复制到这个根目录(和adb.exe同文件夹). 2.点击电脑左下角的"开始"按钮,输入cmd然后点击回车打开cmd输入框. 3. (由于我的Android SDK安装路径为e盘,所以需要定位模拟器platform-tools目录) 在cmd命令提示符中输入E: 回车,如图 第一行, 4.apk名称为zq

【IOS】从android角度来实现(理解)IOS的UITableView

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3403124.html   本人从在学校开始到现在上班(13年毕业)一直做web和android方面的开发,最近才开学习及ios的开发,所以ios学习中有不当之处,请大家留言赐教啦 以前从来没有接触过Objective-C这门语言,不过我想面向对象编程应该大体思想都差不多 在ios中的UITableView学习中,开发过android的朋友应该马上会联想到Lis

android 使用虚拟机安装apk(图文教程)

1.启动虚拟机 2.我的android sdk在"E:\android\android开发环境\android SDK\platform-tools"把要安装的apk复制到这个根目录(和adb.exe同文件夹). 2.点击电脑左下角的"开始"按钮,输入cmd然后点击回车打开cmd输入框. 3. (由于我的Android SDK安装路径为e盘,所以需要定位模拟器platform-tools目录) 在cmd命令提示符中输入E: 回车,如图 第一行, 4.apk名称为zq

Android Mms之:深入理解Compose_Android

Mms中的ComposeMessageActivity(以下简称Composer)是整个Mms中最重要的一个组件,它负责编辑信息,发送信息,管理信息,接收信息,与外部应用接口.在Mms内部与Composer关联的类和组件特别多,几乎所有的类和组件都与Composer有关联,关于信息的所有操作流程都起始于Composer:在外部Composer也是公开的接口,能够处理Intent.ACTION_SEND和Intent.ACTION_SENDTO以及文件类型为audio/*,image/*,vide