爱思助手

为什么iOS系统的流畅顺滑,Android永远都做不到

苹果的iOS系统一直以流畅著称,而Android系统经过几代更新,流畅度终于从原来的被秒杀升为了不分上下,但不知道有没有人发现,即使现在最新的Android 7.0,自身流畅度很高,但在与iOS系统对比时,会存在微妙的差异,似乎还是iOS系统更加流畅、跟手,这到底是为什么?


为什么iOS系统的流畅顺滑,Android永远都做不到



优先级区别:iOS最先响应屏幕


当我们使用手机时,解锁、滑动等操作iOS系统就表现出了流畅的一面,但Android产品却给人一种反应慢、不跟手的情况,这是为什么?


其实这与两个系统的优先级有关,iOS对屏幕反应的优先级是最高的,它的响应顺序依次为Touch--Media--Service--Core架构,换句话说当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。


为什么iOS系统的流畅顺滑,Android永远都做不到

 


而Android系统的优先级响应层级则是Application(应用)--Framework(框架)--Library(图像处理)--Kernal架构,和显示相关的图形图像处理这一部分属于Library,你可以看到第三位才是它,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。


因此,优先级不同导致了iOS产品以及Android产品在操控过程中表现的差异。在滑动屏幕是,iOS系统会优先处理Touch层级,而Android系统则是第三个才响应Library层级,这是造成它们流畅度不同的因素之一,但不是绝对的。



硬件工作区别:iOS基于GPU加速


目前手机的处理器等硬件配置已经达到了瓶颈期,各大旗舰产品在硬件比拼中基本上没有太大变化,而GPU就成为了差异化最重要的体现。


为什么iOS系统的流畅顺滑,Android永远都做不到

 


一般来说一些大型3D游戏对于GPU要求较高而,苹果的Power VR SGX系列GPU一直是以高性能著称的。


为iOS系统对于图形的处理都是基于GPU硬件加速,可以减轻CPU运算的压力但是Android为了适配不同硬件的手机,需要满足各种差异配置。


所以很多图形特效处理大部分都要靠程序本身进行加速和渲染,并严重依赖CPU运算的操作自然会加大处理器的负荷,从而出现卡顿的问题。


虽然在Android4.0以后的系统中都默认开启了硬件加速,但依旧无法做到运用GPU加速全部的图形特效。


屏幕优先响应,再加上iSO本身GPU加速程序的特性,使得iOS系统在操作中拥有不错的流畅性,iOS系统的这些流程本身都是在为流畅服务。而GPU加速这点特性,应该是它优于Android系统流畅性的又一个因素。



系统设计区别:安卓APP无法统一


上面的两个原因,似乎已经可以大概解释为什么iOS相比Android更为流畅的原因。但最终还有一个问题是应用程序,在Android上似乎系统自带的软件很少出现卡顿,而一旦安装一些第三方应用后,卡顿问题就逐渐出现,这究竟是为什么?


因为iOS系统的封闭性,对于APP的开发框架有极为严格的限制,所以APP在iOS系统上运行对象比较单一。


 


还有就是苹果设备的硬件供应商比较固定,CPU也是有规律更新,不像Android终端不停地在变,开发者很难针对一款设备开发专用的软件,需要兼容多个CPU或GPU的硬件平台,这就导致了Android应用开发成本较高且收益慢。


反观iOS应用开发则因为软硬件垂直整合而受益,这样一来苹果自然就保证了应用本身其与硬件产品之间的完美结合程度。


为什么iOS系统的流畅顺滑,Android永远都做不到

 


简单地说,如果有Android开发者专门针对某款旗舰手机开发出的大型游戏,那么在流畅度上来说,理论上不会出现卡顿延迟的问题。


因此,开发者不可能针对所有的机器型号进行开发,只能在比较主流的机器上进行测试并保证运行效果,所以他们为了兼顾整个产品线,不得不降低游戏体验以达到高中低产品可以共用的效果。


为什么iOS系统的流畅顺滑,Android永远都做不到

 


因为Android终端高中低档手机的用户数量多,自然而然就会产生Android产品不如iOS流畅的抱怨。


总结一句话:Android考虑更多的是“怎么让系统能够运行”,而iOS无时无刻想着“怎么让系统高效地运行”。