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

 

  【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要打造一个全新的用户体验模式,因此两者的发展模式不同,注定了产品体验有所差异。

更多相关文章

  1. Android开发——记账App开发项目分享(一)之用户登录
  2. Android拍照调用系统相册仿微信封装总结,治疗各种崩溃,图片横竖
  3. 安卓系统的开发与测试
  4. Android之input系统流程
  5. 改进Android语音对讲系统的方法
  6. 自定义android用户控件,使用回调函数实现自定义事件
  7. cocos2dx Android 多级日志系统应用
  8. Android系统启动流程(1) —— 解析init进程启动过程
  9. android系统文件的权限

随机推荐

  1. 【Android】Webview与JavaScript交互介绍
  2. android之字体阴影效果
  3. [直播技术实践]较为完整的开源直播框架[
  4. Android ***测试学习手册(二)准备实验环境
  5. 关于 Android 程序员最近的状况
  6. Android Linux 内核介绍
  7. Android Market新增运营商结算方式
  8. 解析Failure [INSTALL_FAILED_CONFLICTIN
  9. Android:保护自己开发的Android应用程序
  10. Android 的网络编程(17)-android显示网络