你可能是iOS或是Android的忠实粉丝,那相信你也被这么提问过,现在的iOS和Android哪一个更流畅?这个问题从两个系统开始到现在,随着每一次更新而被提及,用户为两者谁更流畅而争论不休,甚至发展成粉丝间的圣战。但事实证明,流畅这个命题实在太主观意见了。
但大部分人还是觉得iOS会比较流畅,这里,我们还是先说说区别吧。
首先,让我们感觉到系统的流畅的器官是人眼,时刻捕捉屏幕的每一次刷新,关系到系统的响应机制。在iOS上,系统响应的优先级是Touch→Media→Service→OS,分别对应是触摸→媒体→服务→操作系统,这里面触摸反馈是最优先响应的,所以能给人反应迅速的系统特点。
而Android的响应优先级是App→Framework→lib→Kernel,对应的应用程序→框架→系统→内核,而屏幕响应是在系统层,这也让很多人感觉Android不如iOS流畅的原因。
还有一个是图形处理器GPU,它是系统流畅性的核心硬件之一。但这里我们说是软件系统,苹果一贯领先的硬件我们暂且不提。
再者是开发和运行环境,众所周知Android的编程语言是Java,跑在Dalvik虚拟机上的,早期用来抢占市场2.x版本,流畅性确实不怎么样。但经过这些年谷歌的优化,3.x、4.0、4.1、5.x这些版本的渲染机制都有了很大的变化。
特别是Android 4.4时候的ART模式,让虚拟机运行减少了本地翻译的工程量,卡顿问题也大幅缓解。到了现在的6.x和7.x基本都只是修修补补。
另一边是iOS,编程语言是Objective-C,这个没什么好说的,基于苹果封闭的生态链,iOS系统适配的机型很少,即使有毛病也能很快解决。总的来说,现在的Android是一个很完善的操作系统,在流畅的程度上不弱于iOS。
但大多时候Android就真不如iOS,我们对比一下两个系统的根本区别。
Android系统开源——iOS系统闭源
Android系统适配不同类型设备——iOS系统仅支持自家手机平板
Android系统兼容不同外接设备——iOS系统仅支持苹果认证设备
Android设备由多家厂商提供——iOS设备由苹果垄断独产
发现问题没有?适配Android的那么多设备,每一次系统更新,开发者需要为每一部Android做出权衡。尽管谷歌在新系统适配上,可以将亲儿子(Nexus、Pixel系列)的优化做到极致,但这放到APP开发可行不通。
每一款应用都应该以更多适配机型为前提,这对于Android开发者来说,面对那么多分辨率的安卓设备就够头疼了。
反之,iOS开发可以专心极致优化,因为适配的就那几款设备,交互的效果也可以多做一点。如果细心,你会发现在王者农药上,特效全开的iOS画面会比Android更绚丽一点,而且流畅度完全不降。
由于Android系统是开源的,导致在这上面的APP良莠不齐,这对大部分安卓手机来说不也如此吗。记得在很早之前,可可入手过一部HTC G13,那是一部彻彻底底的奸商机(这里指经销商),它将很多垃圾APP一股脑塞到内置ROM里面,导致原本只有512MB的闪存硬生生被砍掉一半,没办法在应用内删除。
而且还锁死了BootLoader,让你没办法通过一般的刷机解决问题。到后来,虽然绕过BootLoader线刷recovery搞定了,但也让我对Android系统抱起了十二分敬意。
现在的Android手机固然不存在这种恶意捆绑,但开源的弊端还是显而易见。那就是各品牌的Android手机仍充斥着厂商所谓的订制化,将手机界面乱改一通,起一个别人看不懂的名字加OS,就俨然像自己开发的系统一样。甚至照搬iOS的UI设计,什么使用N个月不卡,我差点就信了。
我知道很多人想说iOS的伪后台机制,这种类似休眠的作弊,不像安卓的多进程耿直后台,占用的资源很少,所以才让iOS万年流畅。
针对这点,你有什么想说的吗?