我对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虚拟机。

目录
相关文章
|
存储 编解码 Android开发
如何使用 VMware 安装安卓虚拟机,如何配置虚拟机的网络和存储?
如何使用 VMware 安装安卓虚拟机,如何配置虚拟机的网络和存储?
1114 0
|
开发工具 Android开发 虚拟化
windows电脑安装 Android Studio 的时候提示“创建Android虚拟机或安装安卓模拟器失败”
windows电脑安装 Android Studio 的时候提示“创建Android虚拟机或安装安卓模拟器失败”
|
Android开发 开发者
Android Studio 安装APK在虚拟机时报 Installation failed due to: 'null' 解决
Android Studio 安装APK在虚拟机时报 Installation failed due to: 'null' 解决
567 0
Android Studio 安装APK在虚拟机时报 Installation failed due to: 'null' 解决
|
移动开发 Java API
android studio虚拟机运行react-native项目全流程(避坑笔记)
android studio虚拟机运行react-native项目全流程(避坑笔记)
android studio虚拟机运行react-native项目全流程(避坑笔记)
|
IDE 开发工具 数据库
Android 虚拟机可以这么用了 ?
Android 虚拟机可以这么用了 ?
Android 虚拟机可以这么用了 ?
|
Java Android开发
【Java 虚拟机原理】Android 类加载机制 ( 双亲委派机制 | BootClassLoader | PathClassLoader | DexClassLoader )
【Java 虚拟机原理】Android 类加载机制 ( 双亲委派机制 | BootClassLoader | PathClassLoader | DexClassLoader )
341 0
【Java 虚拟机原理】Android 类加载机制 ( 双亲委派机制 | BootClassLoader | PathClassLoader | DexClassLoader )
|
Java 编译器 Android开发
【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
297 0
【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
|
安全 开发工具 Android开发
教程 - Win 11 安装 wsa 安卓虚拟机
先决条件 Windows Subsystem for Android 可用于 Windows 11 上的公共预览版。 你的设备必须满足以下特定要求:设备要求。 目前已知可运行在 Intel(英特尔)、AMD 和 Qualcomm(高通) 平台且符合条件的设备上。 由于 Windows 11 和 与之对应的 Amazon Appstore 目前仅在美国提供。简而言之,要抢先体验安卓子系统,需要在设置里面,选择“时间和语言”-“语言和区域”-“国家或地区”选择美国后重启计算机。
746 0
|
存储 安全 Java
Android安全与逆向之Dalvik虚拟机架构和如何执行程序以及JIT(即时编译)
Android安全与逆向之Dalvik虚拟机架构和如何执行程序以及JIT(即时编译)
272 0
Android安全与逆向之Dalvik虚拟机架构和如何执行程序以及JIT(即时编译)
|
安全 Android开发
【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 )
【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 )
321 0
下一篇
无影云桌面