五千年(敝帚自珍)

主题:【原创】八百美金的一刀 -- forsake

共:💬120 🌺604
全看分页树展 · 主题 跟帖
家园 【文摘】为什么Android的界面性能偏慢

相比于苹果的iOS和微软的Windows Mobile7来说,Android的界面性能一直是让人感到遗憾。一直到比较新的Android 2.2 Froyo版本,用户总是能间或感到界面卡的迹象。理论上说,Android机器的硬件不次于甚至好过iPhone/iPad和Windows Mobile 7的机器,界面性能上不应该出现比较明显的差距。尤其是Google鼓吹Android 2.2 Froyo的性能有了质的提升,用户却没有明显的感觉。

这里如果使用Android的童鞋不相信Android界面性能差的话,打开浏览器,访问www.cnbeta.com。虽然网页加载速度很快,但是采用双指缩放(pinch zoom)和滚动(scroll)。你会明显感到卡得厉害。而同样的网页在iPhone/iPad上,界面操作相当的流畅! 还有一点需要澄清的是,Android的其他方面性能还是十分出色。尤其是网页加载速度和浏览器内JavaScript的性能相对于其他手机优势还是比较明显。

总结来说,Android界面性能低下体现在两个地方:

复杂界面的滚动 (scrolling):切换桌面的时候或者下拉联系人名单的时候出现略微的停顿。特别是桌面用了动态壁纸 + 大量控件,或者联系人名单巨长的时候。

复杂界面的缩放(pinch zoom):在大型网页的缩放。这里暂且不考虑Flash的影响,因为大部分用户会把Flash设为on demand。

社区里面已经出现了好多有趣的争论。有兴趣的可以看下这个持续了接近一年的帖子。

http://code.google.com/p/android/issues/detail?id=6914

基本上来说Android界面性能低下由三个原因造成:

Java的垃圾回收算法

用户界面没有GPU硬件加速

用户界面算法没有优化(也可以说优化角度,设计理念不一样)

如果说Android界面性能不好单纯是因为Java那就太冤枉人了。但是Dalvik Java虚拟机的垃圾回收确实是Android界面卡的一个主要原因。好的消息是,在Android 2.3 Gingerbread中,垃圾回收的算法得到了优化和调整,每次垃圾回收的时间被缩短了,所以用户基本感觉不到在界面滚动时的卡的情况了。实地测试 Nexus S,访问www.cnbeta.com,界面反应速度比类似配置的Galaxy S有明显改善(但是还不如iOS的界面性能那么完美)。

另一个导致Android界面性能差强人意的重要原因就是界面缺少图形芯片(GPU)的加速。Android的所有界面,包括浏览器,都是由CPU来驱动的。当界面元素没有那么复杂,譬如手机联系人列表没有那么长,网页元素没有那么多的时候,Android的CPU驱动的界面性能还是很令人满意的。但是当界面中需要驱动的元素过多的时候,CPU就显得有点力不从心。特别是CPU经常还会被垃圾回收打断。一个好的迹象是Opera Mobile for Android已经计划在他们的浏览器中加入硬件加速,理论上能达到iPhone/iPad的浏览器缩放/滚动性能。

最后一个原因,界面动画的算法,与其说是没有进行优化,可能更与工程师的设计理念有关系。iOS的浏览器的网页加载是局部进行的。还是访问 www.cnbeta.com,然后迅速拉到页面底部,你能看到大片的空白页面,当然那部分页面会迅速加载起来。而Android默认浏览器是一次性把所有页面都加载进来。好处就是滚动页面的时候,不需要多余的页面加载。坏处就是双指所放的时候,需要计算的元素太多,

导致界面性能低下。并且,Android默认的浏览器的缩放动画质量是很高的(比iOS相对要高),但是其实并不是那么实用。在这方面,Firefox for Android和Opera Mobile采用了和苹果类似的设计。就是当网页很大的时候,只是加载一部分图形元素,极大地提升了界面操作性能。Opera Mobile for Android现在的beta版还没有硬件加速,就已经提供了非常不错的性能,所以期待正式版的发布。

其他Android的性能问题,譬如Linux相对旧的版本,和相对低效的文件系统,在

Android 2.3 Gingerbread都得到了解决。经过测试Nexus S的界面性能相对Froyo已经有了实质性的提高,希望在Honeycomb中能看到更加出色的性能。

Update: Honeycomb已经confirm有了GPU硬件加速。理论上应该有同iOS一样的UI性能,通过Google的Honeycomb presentat可以看出平时graphic intensive的page (CNN iReport),现在滚动已经很流畅了。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河