新足迹

 找回密码
 注册

精华好帖回顾

· 记忆中年夜饭的主打---凉拌菠菜粉丝豆干(95楼新添超赞山寨版) (2010-7-5) tintin1976 · 从A说到Z,好用护肤品大盘点,全部更新完毕 (2013-3-27) piscesweiwei
· 我们所经历的状态; 人活着,就是一种心情,一种心态——三系列 (2007-1-16) purpleme · 写给即将踏上澳洲土地的朋友们 (4) (2004-12-20) spirit1
Advertisement
Advertisement
查看: 3021|回复: 42

关于Android流畅度不如iOS的几点看法 [复制链接]

发表于 2011-12-17 17:53 |显示全部楼层
此文章由 yuba 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yuba 所有!转贴必须注明作者、出处和本声明,并保持内容完整
网上一名据称是前谷歌实习生的人透露了一些关于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自成体系,系统架构朴实无华,但干净清晰,应该算是目前最有效率的移动设备操作系统。(本文来源:泡泡网 )

评分

参与人数 5积分 +14 收起 理由
cloud226 + 3 谢谢奉献
kr2000 + 3 感谢分享
porcorosso + 3 感谢分享

查看全部评分

Advertisement
Advertisement

发表于 2011-12-17 23:34 |显示全部楼层
此文章由 月亮粑粑 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮粑粑 所有!转贴必须注明作者、出处和本声明,并保持内容完整
一般的后台,程序不会被关闭,而是继续在系统内部继续进行。而iOS则是将主程序关闭,任务交给一个进程,任务完成,则关闭该进程。

它的后台程序占用内存极少,当系统资源不够时,它会自动释放长时间占用内存的进程,包括一些需要保持连接的也会被强行关闭。所以说,你完全不必刻意去关闭后台中的软件。

can't agree any more

发表于 2011-12-17 23:41 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我的galaxy s 基本上每天重启一次,至少!

退役斑竹 2007 年度奖章获得者 2008年度奖章获得者 特殊贡献奖章 参与宝库编辑功臣

发表于 2011-12-18 09:15 |显示全部楼层
此文章由 黑山老妖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 黑山老妖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 porcorosso 于 17/12/2011 23:41 发表
我的galaxy s 基本上每天重启一次,至少!

Galaxy S的问题挺多的。大多数是samsung的stuff up。
Happy Wife = Happy Life
头像被屏蔽

禁止访问

发表于 2011-12-18 10:27 |显示全部楼层
此文章由 悉尼计程车 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 悉尼计程车 所有!转贴必须注明作者、出处和本声明,并保持内容完整
用过galaxy s就不会对andriod不会存有幻想,建议大家入手一台玩玩

特殊贡献奖章

发表于 2011-12-18 10:42 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
apple的app把关比较严也是一个原因吧
Advertisement
Advertisement

发表于 2011-12-18 13:07 |显示全部楼层
此文章由 psaux 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 psaux 所有!转贴必须注明作者、出处和本声明,并保持内容完整
比速度和效率,java怎是c的对手?

发表于 2011-12-18 14:57 |显示全部楼层
此文章由 rayki 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rayki 所有!转贴必须注明作者、出处和本声明,并保持内容完整
galaxy s 2.2时期确实很烂。不过换成2。3则稳定很多。。  可以尝试一下2。3

发表于 2011-12-18 23:40 |显示全部楼层
此文章由 月亮粑粑 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 月亮粑粑 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 porcorosso 于 2011-12-17 23:41 发表
我的galaxy s 基本上每天重启一次,至少!



重启倒很少,就是操作不流畅,不过,S2好很多

发表于 2011-12-19 10:52 |显示全部楼层
此文章由 zhanglianwei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhanglianwei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
安卓的那三个键也没啥意思。大部分时间徒增疑惑。。。 一开始是实体键,体验的结果是有些界面某些键会失效,感觉很差,因为有时候觉得这键应该有用的就会拼命地按,但实际上软件不支持那个键。

后来改成了虚拟的键,我觉得那三个键的存在的唯一意义就是兼容旧版本的App。。。 因为老App必须有这三个键,否则就不能用了。很丑的三个键。 这就是一开始没有想好,后来没办法解决的典型案例。

发表于 2011-12-19 11:13 |显示全部楼层
此文章由 zn7726 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zn7726 所有!转贴必须注明作者、出处和本声明,并保持内容完整
看过朋友的Nexus S + CM7, 装了不少app.

用起来, 只能说不卡. 但是翻页滚屏之类的操作, 明显看得出来, 动画效果不如iOS顺, 明显fps太低. 不知道是不是配置不够的问题, 还是Android系统就是这样 ...
Advertisement
Advertisement

发表于 2011-12-19 11:30 |显示全部楼层
此文章由 salesman 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 salesman 所有!转贴必须注明作者、出处和本声明,并保持内容完整
多任务在口袋设备里面的实现需要额外的考量。因为带给用户的好处远远低于潜在的风险。比如:电池能耗,系统性能,安全等等。

谷歌同学在软件设计与用户体验上的水平和微软与苹果这样的前辈来比,差的太多。而差的恰恰不是懂不懂实现最绚的技术,差的是不懂得设计上的取舍与平衡。

另外一例,现在主流的高端安桌手机已经开始有趋势不支持SD card,从这个角度也是制造厂商对于安桌系统支持SD card设计 的否定。

发表于 2011-12-19 11:39 |显示全部楼层
此文章由 lingyang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingyang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
google是IT nerd,Apple是完美实用主义者。

发表于 2011-12-19 11:40 |显示全部楼层
此文章由 zhongbingo 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zhongbingo 所有!转贴必须注明作者、出处和本声明,并保持内容完整
移动设备效率很重要

发表于 2011-12-19 11:45 |显示全部楼层
此文章由 da_wang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 da_wang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Android效率低下的设计框架 --- 很赞同

发表于 2011-12-19 11:59 |显示全部楼层
此文章由 cangaru 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cangaru 所有!转贴必须注明作者、出处和本声明,并保持内容完整
软件虽然需要考虑硬件的效率,但现在硬件发展很快,所以不必太拘泥硬件资源的效率
Advertisement
Advertisement

发表于 2011-12-19 12:04 |显示全部楼层
此文章由 salesman 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 salesman 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cangaru 于 2011-12-19 11:59 发表
软件虽然需要考虑硬件的效率,但现在硬件发展很快,所以不必太拘泥硬件资源的效率


靠硬件来弥补软件的效率,期望达到同样的用户体验,结果就是利润都被苹果赚了。

[ 本帖最后由 salesman 于 2011-12-19 12:06 编辑 ]

退役斑竹 2007 年度奖章获得者 2008年度奖章获得者 特殊贡献奖章 参与宝库编辑功臣

发表于 2011-12-19 12:18 |显示全部楼层
此文章由 黑山老妖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 黑山老妖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
效率低就是耗电高。所以android的待机时间不好。

发表于 2011-12-19 12:59 |显示全部楼层
此文章由 linjin 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 linjin 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没错,升级新的软件以后我的galaxy s从来没死机过了。原来2.2的时候简直是垃圾,耗电也快。现在用的很好了。
原帖由 rayki 于 2011-12-18 14:57 发表
galaxy s 2.2时期确实很烂。不过换成2。3则稳定很多。。  可以尝试一下2。3

发表于 2011-12-19 13:00 |显示全部楼层
此文章由 zn7726 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zn7726 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cangaru 于 2011-12-19 11:59 发表
软件虽然需要考虑硬件的效率,但现在硬件发展很快,所以不必太拘泥硬件资源的效率


等原子弹技术给电池用, 再说吧.

发表于 2011-12-19 13:59 |显示全部楼层
此文章由 cangaru 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cangaru 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 黑山老妖 于 2011-12-19 12:18 发表
效率低就是耗电高。所以android的待机时间不好。


最严重的电池效率问题,发生在IPHONE上

ANDROID是开放系统,所以同样的APP运转,如果有效率问题总会被及时解决的,因为有各个厂商的彼此竞争

苹果的话,独裁,能指望提高的话就看当政的愿意不愿意了
参尕儒:水中倒影着美丽的白塔
Reflection in the water with a beautiful Baita
Advertisement
Advertisement

发表于 2011-12-19 14:11 |显示全部楼层
此文章由 nick_sun 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nick_sun 所有!转贴必须注明作者、出处和本声明,并保持内容完整
苹果是统一了整个生态系统。App store的审核机制保证了应用资源的合法及稳定性。

不过做android也真不容易,一方面怕做的一样了被苹果告,另一方面又怕不一样了用户接受不了…… 难啊~~~ (monkey20)

发表于 2011-12-19 14:11 |显示全部楼层
此文章由 cangaru 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cangaru 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 zn7726 于 2011-12-19 13:00 发表


等原子弹技术给电池用, 再说吧.


当初计算机占几个房间面积的时候,需要专门的电站给它供电

现在手里的SMART PHONE计算能力就比当初的大家伙强百倍

所以硬件的提高并不必然要牺牲电力的供给
参尕儒:水中倒影着美丽的白塔
Reflection in the water with a beautiful Baita

发表于 2011-12-19 14:31 |显示全部楼层
此文章由 jaszhou 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jaszhou 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Android流畅度不如iOS,承认这一点。 但是,它的流畅度已经可以被多数据用户所接受。 我想偏好Android的用户是喜欢它的开放性,灵活性。 如果你喜爱折腾,绝对应该用Andriod. 如果你喜欢简单,可靠,还是用iPhone吧!

发表于 2011-12-19 14:33 |显示全部楼层
此文章由 workflow 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 workflow 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 jaszhou 于 2011-12-19 14:31 发表
Android流畅度不如iOS,承认这一点。 但是,它的流畅度已经可以被多数据用户所接受。 我想偏好Android的用户是喜欢它的开放性,灵活性。 如果你喜爱折腾,绝对应该用Andriod. 如果你喜欢简单,可靠,还是用iPhone吧!

其实你想折腾,iOS也可以啊,去越狱,没人拦你。就不太明白,桌子用户为什么总说想折腾,想灵活就来桌子

发表于 2011-12-19 14:38 |显示全部楼层
此文章由 horseman98 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 horseman98 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Iphone 从CPU是Apple自主开发,肯定在CPU中增加了特殊指令来替代一些用软件才能实现的功能
硬件是真正多事件并行的,每个时钟沿触发一次,所以iphone占优势
Advertisement
Advertisement

发表于 2011-12-19 14:44 |显示全部楼层
此文章由 jaszhou 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jaszhou 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 workflow 于 2011-12-19 14:33 发表

其实你想折腾,iOS也可以啊,去越狱,没人拦你。就不太明白,桌子用户为什么总说想折腾,想灵活就来桌子


你可以去越狱,不过有很多功能就算你越狱也没办法实现,比如:

- 作U盘存储用
- 直接在网上下载mp3到手机
- 对flash的支持
- 用手机上传/下载任何类型文件到网上

[ 本帖最后由 jaszhou 于 2011-12-19 14:50 编辑 ]

发表于 2011-12-19 15:28 |显示全部楼层
此文章由 salesman 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 salesman 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cangaru 于 2011-12-19 13:59 发表


最严重的电池效率问题,发生在IPHONE上

ANDROID是开放系统,所以同样的APP运转,如果有效率问题总会被及时解决的,因为有各个厂商的彼此竞争

苹果的话,独裁,能指望提高的话就看当政的愿意不愿意了


看不懂你的这个逻辑,请指教:

“ANDROID是开放系统,所以同样的APP运转,如果有效率问题总会被及时解决的,因为有各个厂商的彼此竞争” ,请问现在除了google,这个世界上还有第二个公司在开发商用的android吗? 现在所有第三方的android APP都是基于google开发的android OS运行的,且google主导开发的android本身的机制导致了APP运行效率低下,那么各个第三方厂商如何竞争是的各自的APP跑的更快?

就好像无论你的hello world是哪个程序员写的,会有程序员写的java hello world运行快的过c / cpp hello world的吗?

[ 本帖最后由 salesman 于 2011-12-19 15:32 编辑 ]

发表于 2011-12-19 15:30 |显示全部楼层
此文章由 cangaru 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cangaru 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 horseman98 于 2011-12-19 14:38 发表
Iphone 从CPU是Apple自主开发,肯定在CPU中增加了特殊指令来替代一些用软件才能实现的功能
硬件是真正多事件并行的,每个时钟沿触发一次,所以iphone占优势


不要这么吹苹果嘛

所有智能手机基本都是ARM的CPU,什么时候苹果还造CPU了?

苹果的能力在于拿别人的东西集成,最新的IPHONE还是用ARM的CPU,只不过集成了别的公司的GPU,封装在一个芯片里。最讽刺的是,这个芯片还是SAMSUNG造的

说到多进程软件运行,这是ANDROID的强项,IOS还处于单进程状态,很原始的

比如ANDROID手机可以同时运行很多APP,苹果IOS只能专著一个,如果你运行某个APP,来个消息,苹果只能打断当前进程,弹出提示窗口,ANDROID可以用后台多进程运行,不需要打断当前应用
参尕儒:水中倒影着美丽的白塔
Reflection in the water with a beautiful Baita

发表于 2011-12-19 15:45 |显示全部楼层

回复 cangaru 29# 帖子

此文章由 salesman 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 salesman 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你解释一下为啥可以一边放音乐,一边浏览网页?

IOS不是你所谓的原始单任务的,相反确实很先进的多任务机制,甚至作为放在口袋设备里面,我认为是当前最先进的机制。

“IOS 4多任务是被限制的多任务,只有系统允许的动作才能在后台存在,这些动作包括但不限于:GPS(比如谷歌纵横),流音乐(比如豆瓣电台、虾米电台),VoIP(比如Skype)。无限制动作的软件,一会在用户无察觉的情况下耗光电力,二会有安全上面的问题(君还记得那些个在Android后台依旧默默发送你的个人消息程序吗?)。安全暂且不说,如何在保持多任务优势的同时,避免消耗过多电力,苹果花了很多心思。”

当然,喜欢android的,可以继续宣传多任务的好处,尽管一个月也不会真正多任务几次,但是却必须消受的起每日的后台垃圾软件执行消耗的电能,消耗的CPU效率,消耗的数据流量。

[ 本帖最后由 salesman 于 2011-12-19 15:47 编辑 ]

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部