昨天,一位认证信息为小米员工的网友在微博上发言,“iPhone 6用户都不在意1G内存不够,红米2的1G内存够用了,保持流畅的秘诀就是少装App。”后来的事情大家知道了。要保持安卓手机流畅,少装App确实有用,不过iPhone 6是否流畅和少装App却没有半个F码的关系。iOS 8让人们第一次发现原来苹果也会卡顿,而与之相比,Android卡Sh1t却早已名声在外。
Google在推出4.4时发明了ART (Android runtime)来解决卡慢, 5.0时又用ART彻底取代Dalvik,号称实现高效、省电、流畅的Android系统目标已经实现。
安卓机真的能不再卡顿了吗?一切还得从根源说起!
四大先天因素埋下卡顿根源
第一、基因使然。iOS只需要保证在苹果仅限的几款移动设备上的运行体验,而Android则需要保证能兼容尽量多的已存在和未存在的不同硬件组合。
iOS老祖,UNIX之父Ken Thompson
Android老祖,Linux之父Linus Torvalds
iOS基于Apple的OSX,而OSX基于 FreeBSD ,FreeBSD又是在UNIX上衍生的,其根源可以追溯到1969年AT
Android基于Linux,起源于1991年Linus Torvalds的一个简单需求。
其实从起源之处就能看出未来命运的注定不同:
UNIX是与硬件配套的商业软件,而Linux则是可运行在多种硬件上免费自由的开源系统。
一个为指定硬件定制优化的系统与一个要在上万种奇葩配置上跑起来的系统相比,结果会如何?
第二、 响应机制。iOS最先响应屏幕反应,而Android响应屏幕排在应用与框架之后。
iOS响应顺序依次为Touch——Media——Service——Core架构,当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。
Android的优先级响应级别则是Application——Framework——Library——Kernal架构,和显示相关的图形图像处理这一部分属于Library,当你对屏幕操作之后,Android系统首先会激活应用、框架,然后才是屏幕最后是核心架构。
第三、开发语言。iOS采用执行效率极高的Objective-C语言,而Android采用的Java语言因为虚拟机的存在,二次转化再执行效率很低。
Android开发是基于Java“Write once, run anywhere”理念,正因为这个理念,引入了虚拟机,也就是说编码实际上需要“转换”才能最终以用户可看的程序跑起来。
第四、后台管理方式。iOS 中的后台程序并不是指当前后台运行程序,其实是你最近使用过的程序使用记录,比如浏览器的网页浏览记录。
Android的后台则是一直在内存中运行,程序在进程活动停止后都会保留在内存中,直到系统需要更多内存再释放这部分资源。
这个后台管理机制造成用户感知的差异化放大,Android旗舰已进入8核CPU、3G RAM的级别,而iOS却只需要双核1G就能保持稳定流畅的头衔不动摇。
三大后天因素拉低用户体验
其实Android与iOS相比,除了四大先天不同所造成的差距外,还有三大后天因素让Android的体验越来越不尽如人意。
1、 无序的开发者;
Android的开放与自由带来了大量的开发者,也让一部分不遵守规范的开发者进入Android的世界,于是应用开始肆意挥霍硬件资源,不少程序都开始自动启动。
当你安装了不少的应用之后就会发现,这些应用都开始驻留后台。杀掉这些应用的进程无助于解决问题(因为他们会自动重新启动,不断地杀进程会造成他们不断重启,最终耗光你的电池),最后你只能彻底删除他们。
因为这个删除的用户需求,一款叫做Clean Master的应用还带动了猎豹移动的上市。
2、 无奈的Android Market;
由于一些让人无奈的原因,各种水平不齐、鱼龙混炸的第三方市场充斥于市。而即使在官方的Google Play也经常爆出恶意软件或者仿冒软件。混乱的市场和不守序的开发者让Android的应用环境进入一个越来越差的死循环。
3、 无解的碎片化。
100个Android手机制造商从Google那拿到Android代码之后,就可以制造出100种搭载不同硬件平台、界面的Android手机,即使是搭载完全相同的硬件,不同品牌的机器,运行速度,软件兼容性都会有区别,这就是Android开放带来的碎片化。
就这样,无论在先天还是后天上Android都注定着一些越来越卡,曾经的4.4没能解决,5.0也不会解决。
那么Android 5.0 Lollipop若是没能解决卡顿,又到底改变了什么?
1、 改变了运行环境,却没改变运行秩序。
ART带来的体验明显提升,告别了虚拟机的Android 更快更省电,不过对于一些不遵守规则的应用而言什么都没变,还是想怎么折腾就怎么折腾。
2、 加剧了本已严重的碎片化。
Lollipop的推出让很多Android用户欢呼了一阵,几个月过去后他们发现真相,自己的手机连4.4的官方更新都还没收到。于是大家就都明白了将希望寄托在新版系统身上,还真不如刷个CM或者MIUI包。
所以Android的卡顿其实从根源上就注定了没有办法解决,除非Google愿意放弃现有市场全部推倒重来,不过那样的系统和Android已经没有任何关系了吧?
其实Android粉丝们不必过分担忧卡顿,iOS粉丝也不必庆幸流畅,毕竟库克的iOS 8已经开始砸金字招牌,说不定到了iOS 10与Android 7.0发布,大家都会变得一样,没个十核CPU加上8G内存大家都会变得一样卡了呢?