从“黄油”到“苗条” Android的顺滑之路
- 2013-11-17 15:55:36
- 类型:原创
- 来源:电脑报
- 报纸编辑:何庆
- 作者:
【电脑报在线】Android作为与iOS分庭抗礼的智能系统,如今已经占据了智能手持设备的半壁江山,但是正如很多Android用户所抱怨的,它在UI流畅程度方面始终与iOS有差距,而且根据不少Android用户反映,自己的Android设备在长期使用后也会不同程度地出现卡顿的情况。当然,这与Android本身的运行机制有关,而谷歌也在为解决这样的问题而努力。
Android作为与iOS分庭抗礼的智能系统,如今已经占据了智能手持设备的半壁江山,但是正如很多Android用户所抱怨的,它在UI流畅程度方面始终与iOS有差距,而且根据不少Android用户反映,自己的Android设备在长期使用后也会不同程度地出现卡顿的情况。当然,这与Android本身的运行机制有关,而谷歌也在为解决这样的问题而努力,在Android 4.1推出的时候,谷歌就进行了“黄油计划”来改善系统的流畅度,而在最新推出的Android4.4中,也包含了新的“Project Svelte”,翻译过来就是苗条计划,让我们来看个究竟。
Android被诟病的执行效率
可能不少朋友都听说过Android运行效率不够好的原因是它是运行在Java虚拟机上的,说到这个,就不得不提Dalvik。
Dalvik是谷歌自己设计的、用于Android平台的Java虚拟机。Dalvik虚拟机是Android移动设备的核心组成部分之一,它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统(自然指的就是手机、平板以及各种智能随身设备)。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux 进程执行,独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。正是因为采用了Dalvik,才使得程序可以在不同架构的硬件平台上运行。
Dalvik和Java虚拟机(JVM)本身最明显的差别就是Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的是专用的文件格式Dex。Dex文件格式可以减少文件的尺寸,提高I/O操作的类查找速度。当Android启动时,Dalvik VM 会监视所有的程序(APK),并且创建依存关系树,为每个程序优化代码并存储在Dalvik缓存中。Dalvik第一次加载后会生成Cache文件,以提供下次快速加载,所以第一次会很慢。
当然,也有观点认为,像Dalvik这样基于寄存器的虚拟机由于在执行指令的时候需要先进行编码,所以指令的需求量会更大,这会影响到执行的效率。换句话说,Dalvik就是Android运行效率不够好的“罪魁祸首”。
谷歌的改进措施
不用说,谷歌当然知道Dalvik的弊端,一直通过各种方法来改进Android系统的流畅度。早在Android 4.1时代,谷歌就进行了“黄油计划”,黄油计划支持60fps的动画效果、使应用的反应更灵敏,甚至可以在刷新屏幕时预判到手指将会触摸到哪里。
黄油计划的改进是通过一系列手段实现的。首先,Android 4.1系统通过系统框架进行的渲染和动画都采用垂直同步的方式,因此不会有任何帧数提前或滞后;在图形管线中加入了三重缓冲,让滚动和翻页更顺滑;Android 4.1还会在屏幕刷新的时候预判手指下一次触摸的位置;在闲置时,系统会在下一次触摸发生时让CPU输入升压,以确保没有延迟。
如果说Android 4.1时代的“黄油计划”解决的是软件问题,那么到了Android 4.3则是针对Android设备的存储硬件作出了改进。在Android 4.3中,谷歌加入了Trim功能,相信对固态硬盘比较关注的玩家很清楚Trim是什么,简单点说,就是针对Flash存储芯片的“磁盘整理”功能,为什么在4.3以前的Android设备会越用越慢?长期使用后在ROM中产生的“碎片”太多,造成Flash芯片性能降低是重要原因之一。有了Trim,除了可以回收Flash芯片中零散的数据块,减少写入放大,还可以进行负载平衡,延长它的使用寿命。
到了Android 4.4,“Project Svelte”映入了人们的眼帘。其中的ART(Android Runtime)改变了应用运行的环境,只是被列为“实验室选项”,下面就来详细介绍一下ART。
前面已经提到,在运行效率方面,Dalvik VM是Android的短板。因此,谷歌引进了新的 Android 运行环境 ART,在官方介绍中,称其为新的虚拟机,谷歌正是用它来替代旧的Dalvik VM。ART 会为 Android 带来怎样的改变?专业机构对此进行了分析。
ART的机制与Dalvik不同,在Dalvik环境下,应用每次运行时,字节码都需要通过即时编译器转换为机器码,这会降低应用程序的运行效率,而在ART环境中,应用程序在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(Ahead-Of-Time)。因此,ART环境下应用程序启动和执行都会变得更快更流畅。
根据一些测试结果,ART运行环境能够让大多数应用程序的执行时间减半,这就意味着,CPU消耗大、运行时间长的应用能够更快速地完成,一般的应用也能更加流畅,反映在实际使用中就是动画效果更顺畅、触控反馈更灵敏等等。另外,在多核处理器的设备上,可以更灵活地利用ARM的big.LITTLE 架构,从而达到更省电的目的。
当然,ART的预编译也有一些弊端。首先,机器码占用的存储空间更大。字节码转变为机器码后,体积可能会增加 10%~20%,但在应用程序包中,可执行的代码通常只是一部分,所以增加的部分影响有限。其次,应用程序安装的时间会变长——毕竟增加了转码的步骤。安装时间增加多少取决于应用程序包中代码复杂程度和多少。
综合来看,ART在应用程序体积上的弊端可以通过增加设备的ROM来解决,这完全可以接受,而对于安装时间的增加,毕竟一个程序也就安装一次,但使用却是很频繁的,而由此带来的系统流畅度的改善却很可观,总的来说还是利大于弊。未来Android的流畅度是否能与iOS抗衡,我们也拭目以待。
Android被诟病的执行效率
可能不少朋友都听说过Android运行效率不够好的原因是它是运行在Java虚拟机上的,说到这个,就不得不提Dalvik。
Dalvik是谷歌自己设计的、用于Android平台的Java虚拟机。Dalvik虚拟机是Android移动设备的核心组成部分之一,它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统(自然指的就是手机、平板以及各种智能随身设备)。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux 进程执行,独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。正是因为采用了Dalvik,才使得程序可以在不同架构的硬件平台上运行。
Dalvik和Java虚拟机(JVM)本身最明显的差别就是Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的是专用的文件格式Dex。Dex文件格式可以减少文件的尺寸,提高I/O操作的类查找速度。当Android启动时,Dalvik VM 会监视所有的程序(APK),并且创建依存关系树,为每个程序优化代码并存储在Dalvik缓存中。Dalvik第一次加载后会生成Cache文件,以提供下次快速加载,所以第一次会很慢。
当然,也有观点认为,像Dalvik这样基于寄存器的虚拟机由于在执行指令的时候需要先进行编码,所以指令的需求量会更大,这会影响到执行的效率。换句话说,Dalvik就是Android运行效率不够好的“罪魁祸首”。
谷歌的改进措施
不用说,谷歌当然知道Dalvik的弊端,一直通过各种方法来改进Android系统的流畅度。早在Android 4.1时代,谷歌就进行了“黄油计划”,黄油计划支持60fps的动画效果、使应用的反应更灵敏,甚至可以在刷新屏幕时预判到手指将会触摸到哪里。
黄油计划的改进是通过一系列手段实现的。首先,Android 4.1系统通过系统框架进行的渲染和动画都采用垂直同步的方式,因此不会有任何帧数提前或滞后;在图形管线中加入了三重缓冲,让滚动和翻页更顺滑;Android 4.1还会在屏幕刷新的时候预判手指下一次触摸的位置;在闲置时,系统会在下一次触摸发生时让CPU输入升压,以确保没有延迟。
如果说Android 4.1时代的“黄油计划”解决的是软件问题,那么到了Android 4.3则是针对Android设备的存储硬件作出了改进。在Android 4.3中,谷歌加入了Trim功能,相信对固态硬盘比较关注的玩家很清楚Trim是什么,简单点说,就是针对Flash存储芯片的“磁盘整理”功能,为什么在4.3以前的Android设备会越用越慢?长期使用后在ROM中产生的“碎片”太多,造成Flash芯片性能降低是重要原因之一。有了Trim,除了可以回收Flash芯片中零散的数据块,减少写入放大,还可以进行负载平衡,延长它的使用寿命。
到了Android 4.4,“Project Svelte”映入了人们的眼帘。其中的ART(Android Runtime)改变了应用运行的环境,只是被列为“实验室选项”,下面就来详细介绍一下ART。
前面已经提到,在运行效率方面,Dalvik VM是Android的短板。因此,谷歌引进了新的 Android 运行环境 ART,在官方介绍中,称其为新的虚拟机,谷歌正是用它来替代旧的Dalvik VM。ART 会为 Android 带来怎样的改变?专业机构对此进行了分析。
ART的机制与Dalvik不同,在Dalvik环境下,应用每次运行时,字节码都需要通过即时编译器转换为机器码,这会降低应用程序的运行效率,而在ART环境中,应用程序在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(Ahead-Of-Time)。因此,ART环境下应用程序启动和执行都会变得更快更流畅。
根据一些测试结果,ART运行环境能够让大多数应用程序的执行时间减半,这就意味着,CPU消耗大、运行时间长的应用能够更快速地完成,一般的应用也能更加流畅,反映在实际使用中就是动画效果更顺畅、触控反馈更灵敏等等。另外,在多核处理器的设备上,可以更灵活地利用ARM的big.LITTLE 架构,从而达到更省电的目的。
当然,ART的预编译也有一些弊端。首先,机器码占用的存储空间更大。字节码转变为机器码后,体积可能会增加 10%~20%,但在应用程序包中,可执行的代码通常只是一部分,所以增加的部分影响有限。其次,应用程序安装的时间会变长——毕竟增加了转码的步骤。安装时间增加多少取决于应用程序包中代码复杂程度和多少。
综合来看,ART在应用程序体积上的弊端可以通过增加设备的ROM来解决,这完全可以接受,而对于安装时间的增加,毕竟一个程序也就安装一次,但使用却是很频繁的,而由此带来的系统流畅度的改善却很可观,总的来说还是利大于弊。未来Android的流畅度是否能与iOS抗衡,我们也拭目以待。
本文出自2013-11-18出版的《电脑报》2013年第45期 B.平板电脑
(网站编辑:pcw2013)
读者活动
48小时点击排行
编辑推荐
论坛热帖
网站地图 | 版权声明 | 业务合作 | 友情链接 | 关于我们 | 招聘信息
报纸客服电话:4006677866 报纸客服信箱:pcw-advice@vip.sin*.c*m 友情链接与合作:987349267(QQ) 广告与活动:675009(QQ) 网站联系信箱:cpcw@cpcwi.com
Copyright © 2006-2011 电脑报官方网站 版权所有 渝ICP备10009040号
报纸客服电话:4006677866 报纸客服信箱:pcw-advice@vip.sin*.c*m 友情链接与合作:987349267(QQ) 广告与活动:675009(QQ) 网站联系信箱:cpcw@cpcwi.com
Copyright © 2006-2011 电脑报官方网站 版权所有 渝ICP备10009040号