我对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文件相比,有效地将空间需求减小了一半。如图所示:java

  其次,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

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

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

    固然,android因为虚拟机的限制,有了相应的性能瓶颈,所以在android 4.4时候引入art虚拟机。下节,咱们聊一聊art虚拟机。优化

相关文章
相关标签/搜索