关于Android流畅度不如iOS的几点看法

来源: 发布时间:2011-12-18 点击数:

网上一名据称是前谷歌实习生的人透露了一些关于Android系统硬件加速的内幕。据称,在 Android3.0和4.0之前,并没有完整的硬件加速。他们一直在通过硬件加速绘制某些UI元素,并称效果并不像他们想象中那样乐观。他认为,Android效率低下的设计框架使得它需要通过更强大的CPU/GPU才能确保具有100%的流畅体验。

他表示在iOS系统中,用户界面渲染的过程被赋予了很高的优先级,当触摸屏开始操作,系统将停止所有进程,将所有资源集中对节目进行渲染。而在Android系统中,就没有这种待遇了。虽然Android手机配置普遍很高,但进程不会为界面渲染让路,由于资源被分配到不同任务中,造成了Android操作的不流畅。

从“前谷歌”“实习生”等定语中大概就可以判断出,这些言论没什么权威性。事实上也正是如此。

事实上,Android从1.0版本之后,所有窗口元素的合成和显示,都是通过硬件完成的。按钮的动作、下拉菜单的阴影、弹出窗口和提示框的显示和隐藏等等。同时,各个窗口元素的拼接,类似的任何窗口的移动等,都是通过硬件方式渲染的。

Android4.0中最主要的改变是,在面向Android4.0或更高版本的应用中,硬件加速是被默认开启的,而不需要在配置文件中设置。在此之前,考虑到某些特殊的绘制操作光靠硬件加速无法很好的完成,强制开启的话会明显中断应用运行,故而未允许其默认打开。



Android采用的是Java技术,所有应用在一个叫Dalvik的Java虚拟机中运行,Dalvik是Android的核心,是google专门为移动设备优化的Java虚拟机,Android应用就是典型的Java应用。可以说 Java应用的优点(成熟、存在大量可重用代码)就是Android的优点,Java应用的缺点(占内存大、运行速度略低)就是Android的缺点。

所以Android移动设备要能运行顺畅,必须有高性能CPU+大内存,256M内存刚刚够,512M内存差不多了,要运行得很顺畅则需要1G内存,要知道iPhone4才512M内存。高性能CPU+大内存给基于Android的移动设备带来成本高和耗电量大两大问题。



硬件加速并不如人们认为的那么完美,他占用的RAM巨大。RAM是有限的,分出一大部分去绘制,那处于运行中的进程就会缺少内存。

硬件加速并非流畅的必杀。最初的时候,Android使用了一种完全不同的渲染策略,并做了一些折中:网页被转换成一个”显示列表“,持续的在屏幕上进行绘制,而非使用块(Tiles)的形式。



它的优点就是,在滚动或是缩放的时候不会发生有的块还没被渲染出来的现象。而这个方法的不给力之处就在于页面复杂的时候,帧速就明显低了。例如Android3.0,浏览器中开始使用块的方式进行渲染,于是它可以在滚动或是放大的时候保持一个稳定的帧速,自然也会出现新的块没有被立即渲染出来的情况。

换个角度考虑,不能把所有问题都推到硬件加速身上,让他像个救世主似的,一出手所有问题迎刃而解。首先来说,GPU的性能就限制着渲染速度。随着屏幕分辨率的不断提升,帧数和GPU的速度,尤其是内存总线带宽有很大的关系。随着像素的提升,GPU能更好的处理图像运算。

说到iOS,再说说iPhone和iPad。人们普遍认为iOS系统比Android要好,要流畅。像nexus S的硬件几乎比iPhone4先进两到三年,但流畅度比较之下,也难分伯仲。

有人说是因为架构不同,这真是没有的事。iOS和Android同属类unix系统,本质上没有区别,CPU也同为ARM架构。即使说芯片的设计方式,Android高端机的设计也要比苹果的A4处理器要先进。现如今大多数Android机动辄上 G的内存,而iphone4还是512M,而流畅度却完胜,这大概不是硬件的问题了吧。




iOS是苹果长期积累的结果,系统核心、基础服务和应用框架都采用C/C++或object-C开发,而应用采用Cocoa Touch框架,以object- C开发,应用编译后以本机代码在设备上运行,因此具有很高的运行效率。
依我看,硬件资源的运用不合理,才是导致运行效率底下的原因。


iOS系统凭借良好的软件监控,对系统资源极端的节约。这也是为什么iOS系统能凭借 512Mb内存,却能战翻很多1G内存手机的原因。特别是在后台上。一般的后台,程序不会被关闭,而是继续在系统内部继续进行。而iOS则是将主程序关闭,任务交给一个进程,任务完成,则关闭该进程。

这样的运行方式将内存的消耗降到最小,它不像一般的方式那样,继续开启住程序,让无用的组件继续占用内存,无法释放。普通方式在处理这些任务时,会将这些任务全部搬入系统缓存压缩或释放。在需要重新加载时,还要重新解压读取。这就导致了加载时间的增加。

iOS的任务处理方式使得任务的加载和内存的释放更加直接高效。不光如此,内存的有效整理也是也是iOS系统流畅的原因。它的后台程序占用内存极少,当系统资源不够时,它会自动释放长时间占用内存的进程,包括一些需要保持连接的也会被强行关闭。所以说,你完全不必刻意去关闭后台中的软件。

此外,iOS系统还不允许自定义系统插件,这也是为什么iOS比Android流畅的原因。当你越狱后并装了若干插件,你会发现流畅度略有下降。
总结

Android采用使用最广泛java技术,开发人员众多,容易上手,但也需要较强大的硬件支撑。而Apple iOS的体系架构相对较为传统,但运行效率高,对硬件的要求低,成本优势大,在现有的硬件条件下,应用运行具有最好的顺畅感,也更加省电。Apple iOS自成体系,系统架构朴实无华,但干净清晰,应该算是目前最有效率的移动设备操作系统。

IDC
域名注册
主机服务
租用托管
数据修复
优化推广
网站建设
解决方案
管理咨询
企业内训
广告设计
技术整合
云主机
ICP备案说明
教育产业
维普点卡
计算机培训
人才外包
服务外包
全程外包
软件研发
Zoomla!逐浪CMS
企业管理软件
三维与仿生应用
软件管理
IT外包
短信接口
社区
江西IDC排行榜
微博
东方红公益
7*24小时服务中心
微信互动
会员
纪念品
发哥的博客
上海站长聚会
软件开发沙龙
宣传视频
用户手册
全站检索
关于我们
公司介绍
发展历程
工作机会
团队介绍
汇款方式
联系我们