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

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android系统的性能调优参数介绍
  6. 基于Android搭建tensorflow lite,实现官网的Demo以及运行自定义t
  7. Android(安卓)- SharedPreferences
  8. Android(安卓)的性能 V-保持APP的响应
  9. lame音频压缩解码(二)之编译事例Demo

随机推荐

  1. Android 中如何关闭线程
  2. Android运行底层linux外部命令的实现
  3. Intent----android中的伟大邮差
  4. Android(安卓)远程图片获取和本地缓存
  5. 10天学通Android开发(7)-数据存储
  6. Android 动态改变app图标
  7. android源码浅析--AlertController
  8. Android 开发者(Android Developer)
  9. Android开发历程_10(LayoutAnimationCont
  10. Android(安卓)API课程1.3: The Menifest F