你知道吗:Android为何比iOS和WP慢?

转载 2012年03月30日 01:09:20

你知道吗:Android为何比iOS和WP慢?

 

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

你知道吗:Android为何比iOS和WP慢?
▲三大操作系统平台

  对于这三个平台的对比,我们已经了解了很多,无论是开发者还是用户,都有各自选择的理由。不过对于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要打造一个全新的用户体验模式,因此两者的发展模式不同,注定了产品体验有所差异。

[Android开发常见问题-19] Android为什么比IOS和WP慢?

拥有开放互联网精神的谷歌,在短短的4年时间,将Android打造成市场份额第一的手机操作系统;拥有用户体验至上精神的乔布斯,将iOS产品打造成全世界高端电子产品的风向标,一家独占移动市场75%的利润;...

如何让iOS 保持界面流畅?这些技巧你知道吗

作者:ibireme 这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。 Index ...

iOS开发-那些神奇的工具你知道吗?

这是我们多篇iOS开发工具系列篇中的一篇,此前的文章比如:那些不能错过的Xcode插件,iOS开发者有价值的工具集,iOS/OS X开发:各种工具快到碗里来!,App原型设计工具使用心得(上)& ...

这游戏如此吊,它的玩家知道吗-Android游戏《头脑风暴》

《头脑风暴》是一款娱乐休闲益智小游戏,主要由经典趣味十足的声 东击西、翻来覆去、五颜六色、瞬间记忆、百变猜拳、一扫而光、一一对应、火眼金睛、成语串烧等九个小模块组合而成,拥有经典模式、机罗盘模式、挑战...

Android开发中这些小技巧你都知道吗?(一)

Activity.startActivities() 该fang

2016年最佳的15款Android黑科技工具你知道吗?

黑客技术,曾被认为是专家的专有领域,但随着技术的崛起和移动安全领域的进步,黑客技术已经变得越来越普遍。随着人们越来越依赖于智能手机和其它的便携式设备来完成他们的日常活动,我们有必要了解一些Androi...
  • xhmj12
  • xhmj12
  • 2016年09月27日 11:49
  • 9953

Android中的广播你真的都知道吗

Android App可以发送广播或者接受来自系统和其他App的广播。广播是一种跨进程通信。广播所携带的信息是通过Intent这个对象来实现。系统广播系统会发各种各样的广播,比如Wifi状态的改变,网...

Android关于如何取消静态注册的广播事件,你知道吗?

大家都知道,关于Android广播事件的注册

android中常用的读取文件方法,你知道吗?

android中常用的读取文件方法,你知道吗? 时间 2013-08-12 23:38:54 移动开发网 原文  http://www.mobiledev.cn/?p=12246 ...

应该避免的Android内存泄露的种种原因,你知道吗?(持续更新学习中)

一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:你知道吗:Android为何比iOS和WP慢?
举报原因:
原因补充:

(最多只允许输入30个字)