[技术| 编程·课件·Linux] 你知道吗:Android为何比iOS和WP慢?

admin · 发布于 2013-04-17 14:41 · 2040 次阅读
1

【IT168评论】拥有开放互联网精神的谷歌,在短短的4年时间,将Android打造成市场份额第一的手机操作系统;拥有用户体验至上精神的乔布斯,将iOS产品打造成全世界高端电子产品的风向标,一家独占移动市场75%的利润;拥有多年产品经验,依靠用户体验发家的微软同样不甘示弱,独创了Windows phone全新的Metro界面,给用户带来了不一样的体验。随着Tango平台高调的宣布进入中国市场,赢得了众多重量级终端厂商的支持,逐步组建了自己的生态系统。可以说现在已经是三强鼎力的局面。


▲三大操作系统平台

  对于这三个平台的对比,我们已经了解了很多,无论是开发者还是用户,都有各自选择的理由。不过对于Android系统来讲,一直都有用户通过自己的实际体验,认为Android手机的用户界面的操控反应要比iOS和Windows Phone慢,甚至是有些迟钝的感觉,笔者同样深有体会。这到底是为什么呢?

  对于这个一直让人感到好奇的问题,业界的人士都有自己的看法:

  新浪产品设计师吴伟认为:苹果iOS平台对用户操作赋予极高的优先级,只要有用户操作就立刻暂停其他进程,将资源全部用于响应用户操作;而Android不是这种机制,用户操作时还有很多进程同时工作,这样势必影响了用户的操控体验。

  至于为什么设计这样的构架,这位工程师解释是:Android的研发时间比iOS早,那时候大部分移动设备还是靠硬键盘进行输入。但是Android的发布时间比iOS晚,而且iphone的发布将触屏变成了主流操作,带来了全新的操控体验,后来Android系统为了和iOS竞争,加入了对触屏的支持。但是此时操作系统构架已经不可能大幅修改了。 因此从系统机制上没有办法和iOS竞争。

  一位开发者表示:iOS用户界面的渲染在一个专门的线程中,而且优先级很高。Android的渲染遵循的是传统PC模式,在一个主线程中,而且是正常的优先级。

  糗事百科的王坚认为:这永远都不是一个绝对速度的问题,不管硬件提供了多少计算资源总会被软件吃光,这是一个把响应的优先级调到多高的问题。苹果很早就意识到了这一点,并且不是在iOS里面才开始实现的。而Windows桌面版、Android、Windows Phone直到今天还在应付响应,这应该也是它们“没有品味”的表现。

  知乎网一位身兼产品、交互设计、UI设计师和程序员的一个网友Omega认为:从开发上,这三个系统采用的开发语言不一样,就iOS和Android两者而言, iOS采用的是Objective-C,是基于C语言,而Android是基于java语言开发,采用的是Java的执行方式,执行效率有差异。

  iOS基于C语言,可以很好的控制内存申请和内存释放。Java语言的内存控制机制远不如C语言高效。用户正在操作的时候,系统一旦发现内存不够用,就会释放内存并重新写入正在运行的程序,给用户的感觉就是卡。

  iOS系统有专门针对界面优化的代码,所有的界面显示、界面移动和界面更新都是在主线程,其他的可以在后台加载。

  《一只iPhone的全球之旅》中是这样介绍的,iPhone用了专用的芯片处理触摸屏的信息处理和手势识别。而如果用CPU处理UI显然会有卡的感觉。

  著名电子设备调查机构 iSuppli 就曾经指出,Apple 打破业内常规,把最大部分成本花费在了改善用户体验上,因此,我们看 iPhone 的硬件架构就可以发现,为了处理一个小小的触控屏,Apple动用了三块芯片,一个Broadcom 的模拟信号处理器,用来处理触控屏传感器传来的模拟信号,转换为一组代表 x、y位置信息的数据流;一个飞利浦(NXP)ARM7CPU,用来作为手势算法处理器,把触控指令解析出来(后期 iPhone型号把这两个芯片整合在一起成为一个双核结构的处理器,称为改进型 Broadcom芯片);主处理器则有一个高级别的优先独立线程专门处理触控操作类指令。

  其他电容触控手机,大多数是把那些除了模数转换之外的大部分触控控制任务交给主 CPU,这样不难理解iPhone 能够有“一触即发”的操作快感了”

  也有一些Linux爱好者的观点与新浪产品设计师吴伟一致:iOS在用户触摸屏幕的时候,触控指令的优先级是最高的,所占资源也最大,其他程序在这个时候都被挂载起来。Android系统在执行触控的时候,后台程序任在运行,占用资源较少。这个就是最根本的原因;

  之所以这样设计,是因为Android系统最初开发的时候,把对手拟定为黑莓,键盘输入相对来说资源占取就比较少,但随后迎来了触控时代,这个时候如果想重新构架的话也不太可能了,这意味着所有安卓软件需要重新进行设计。因此,硬伤导致了Android系统不如iOS。

  知乎网友右丑认为:从软件上来说,由于iOS的伪任务机制(用推送来代替真正的后台,这是个不错的机制), 资源的占用较少, 对所以流畅些是必然的;从硬件来说,iOS对于触摸屏的数据处理有一个单独的ARM处理器,而Android全部交给CPU来处理,这相当于多媒体播放中的硬解和软解,肯定是硬解对资源的占用少、效率高,但是成本也较高,因此Android有些迟钝也是必然的。

  李映辉表示:iOS和Windows phone类似,都是使用的墓碑式程序运行方式,每新启动一个应用,之前所开的应用都被挂载了起来,所以IOS不能真正的多任务,Android方面对其中一个问题是使用的JAVA虚拟机来模拟的,导致硬件的使用率不够高。

  网友冯东认为:iOS提供了相当多的机制可以让开发者把任务迁移到后端线程,并且提供了相当多的机制将后端线程让出优先级给主线程。Android 提供的便利机制虽然比较少,但是也并没有禁止开发者这么做。因此原因在于Culture而非技术。因为相比Android来说,iOS 的开发者更愿意利用 iOS的机制进行UI的微调。

  微软的专家认为:Andriod系统是开放的,应用可以调用很多系统级的程序,并且有些即使关掉应用仍在后台运行。Windows Phone最多只允许5个后台程序运行,对系统级调用也有诸多限制,所以会比Android系统快一些。

  也有一些匿名的网友表示:Android其实也有硬件加速,而且Android 3.0版本以后支持很好了,但是硬件加速占用资源太多,所以Google很多时候关了这些处理。

  总结

  不管如何,Android的开放性和终端的价格优势将苹果iOS平台摔在后面,快速占领市场用户,对于一个拥有互联网背景的谷歌来说,至关重要,尤其是移动互联网服务快速发展的今天。服务的模式显然要比一个注重产品的苹果公司风险小的多,这也难怪有些人担心在后乔布斯时代还是否能够延续苹果神话。

  值得称赞的是,正是谷歌的互联网开放精神才能够成就 Android系统的快速崛起。反观苹果和微软,他们更多的是以产品的用户体验来打动用户,这样是为什么Windows Phone要打造一个全新的用户体验模式,因此两者的发展模式不同,注定了产品体验有所差异。


共收到 16 条回复
xywhere · #2 · 2013-4-17 14:49:10  回复 支持 反对
各种人的各种猜测。。。
inccinf · #3 · 2013-4-17 17:19:56  回复 支持 反对
低端android肯定慢啊。。android 4.1以后,中高端的在速度方面和ios没什么差距了

点评

我用的三星galaxyIII的升级版,安卓4.1.2,然后内存2G,CPU跟note2是一个型号,但是还是有时候还是卡,不稳定,比ios还是差一个档次。优点是屏幕大,另外比ios的软件更灵活。  详情 回复 发表于 2013-4-17 20:25
admin · #4 · 2013-4-17 20:25:15  回复 支持 反对
inccinf 发表于 2013-4-17 17:19
低端android肯定慢啊。。android 4.1以后,中高端的在速度方面和ios没什么差距了

我用的三星galaxyIII的升级版,安卓4.1.2,然后内存2G,CPU跟note2是一个型号,但是还是有时候还是卡,不稳定,比ios还是差一个档次。优点是屏幕大,另外比ios的软件更灵活。
科尔沁猎人 · #5 · 2013-4-17 22:51:03  回复 支持 反对
想起一句话,“开源和共享会让苹果之流心生羞愧....”

点评

ios相对封闭,这个是事实~  详情 回复 发表于 2013-4-18 08:17
科尔沁猎人 · #6 · 2013-4-17 22:55:00  回复 支持 反对
想起一句话,“开源和共享会让苹果之流心生羞愧....”
admin · #7 · 2013-4-18 08:17:49  回复 支持 反对
科尔沁猎人 发表于 2013-4-17 22:51
想起一句话,“开源和共享会让苹果之流心生羞愧....”

ios相对封闭,这个是事实~
小马 · #8 · 2013-4-23 10:49:49  回复 支持 反对
本帖最后由 小马 于 2013-4-23 11:49 编辑

如果越狱后的ios呢?能装的软件也不少吧?
mlweixiao · #9 · 2013-4-23 11:54:04  回复 支持 反对
好帖,值得插入
阎魔あい · #10 · 2013-4-24 10:55:35  回复 支持 反对
虽然都说ISO好。。。。可是我觉得苹果越狱之后(很像安卓)用着舒服啊~~~~

点评

你的两句话之间有转折吗  详情 回复 发表于 2013-4-24 12:09
admin · #11 · 2013-4-24 12:09:17  回复 支持 反对
阎魔あい 发表于 2013-4-24 10:55
虽然都说ISO好。。。。可是我觉得苹果越狱之后(很像安卓)用着舒服啊~~~~

你的两句话之间有转折吗

点评

其实就是想表达安卓系统用着舒服。。。。。。用苹果的还得越狱。。。。。刷成水货  详情 回复 发表于 2013-4-24 12:27
阎魔あい · #12 · 2013-4-24 12:27:53  回复 支持 反对
admin 发表于 2013-4-24 12:09
你的两句话之间有转折吗

其实就是想表达安卓系统用着舒服。。。。。。用苹果的还得越狱。。。。。刷成水货

点评

囧 用苹果也可以不越狱,越狱相当于安卓的获取root权限 另外,越狱跟水货也木有联系,水货是避税而已,联通行货再怎么越狱也成不了水货啊。。。 最近开始用安卓,比较中~  详情 回复 发表于 2013-4-24 12:44
admin · #13 · 2013-4-24 12:44:03  回复 支持 反对
阎魔あい 发表于 2013-4-24 12:27
其实就是想表达安卓系统用着舒服。。。。。。用苹果的还得越狱。。。。。刷成水货


用苹果也可以不越狱,越狱相当于安卓的获取root权限
另外,越狱跟水货也木有联系,水货是避税而已,联通行货再怎么越狱也成不了水货啊。。。
最近开始用安卓,比较中~

点评

水货没有保修。。。。行货越狱之后也就没有保修了所以感觉其实和水货没区别了。。。。。 不越狱用着不爽啊…………………………偶果然还是喜欢用安卓的说~~~~  详情 回复 发表于 2013-4-24 12:51
阎魔あい · #14 · 2013-4-24 12:51:41  回复 支持 反对
admin 发表于 2013-4-24 12:44

用苹果也可以不越狱,越狱相当于安卓的获取root权限
另外,越狱跟水货也木有联系,水货是避税而已, ...

水货没有保修。。。。行货越狱之后也就没有保修了所以感觉其实和水货没区别了。。。。。
不越狱用着不爽啊…………………………偶果然还是喜欢用安卓的说~~~~

点评

如果不是砖机,直接恢复下就好 偶表示很久都没越狱,很久都不会去折腾手机了  详情 回复 发表于 2013-4-24 13:01
admin · #15 · 2013-4-24 13:01:40  回复 支持 反对
阎魔あい 发表于 2013-4-24 12:51
水货没有保修。。。。行货越狱之后也就没有保修了所以感觉其实和水货没区别了。。。。。
不越狱用着不爽 ...

如果不是砖机,直接恢复下就好
偶表示很久都没越狱,很久都不会去折腾手机了
runksun · #16 · 2013-4-25 16:08:34  回复 支持 反对
iOS系统比安卓流畅太多了,iOS是用C开发,安卓底层用c上层用java,没法比。
runksun · #17 · 2013-7-15 11:21:55  回复 支持 反对
C和JAVA相比,拥有无法比拟的优势,不解释
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表