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