大家都知道在数值上安卓手机的运存往往要比苹果大,为什么使用流畅度却依然有差距?
苹果手机运存高吗?不高,与安卓机型比,少的不是一星半点。安卓机型已经发展到8G运存,而苹果手机的运存最高也才3G,处理器最高也才6核(如iPhoneX)。
吊诡的是大家都感受到苹果手机却比安卓手机流畅度要高,这就不得不让人佩服了。
虽然安卓手机已经做了很大改善,不像当初那般稍微用的久一些,就会频频卡顿。但在手指触碰到屏幕的那一瞬间,还能感受到安卓特色般的“生硬”感,不像苹果手机“干脆利落”带来的别样流畅感。这到底是什么原因造成的呢?
一、系统环境迥异
“买IOS赠手机”可以说是对苹果系统最生动的描述了,事实也证明IOS系统不负众望。
IOS凭借着强大的统一性和可控性,让一切程序都是井然有序的运行。
打个比方,IOS系统就像一支政令统一、纪律严明的武装部队,一道命令下去,很快就能落实。
反观Android就不同了,除了要保证现有的硬件能有顺畅运行,还要确保那些厂商提供的各种未知的组合硬件,可控环境差很多。
这就好比一支部队除了要打仗,还有兼顾修路等各种杂七杂八的事,职责模糊,一旦任务发生冲突,自然也就无所适从,影响效率。
二、优先次序不同
大家或许都有这样一种感受:
同一个应用程序,在苹果手机上和安卓手机上打开时,后者总比前者慢那么一点。
这是什么原因造成的呢?那是因为二者的响应顺序不同。
IOS对屏幕的响应顺序是:触摸→媒体→服务→架构,而安卓是:程序→框架→屏幕显示资源→架构。
这也就是说,打开一个应用程序时,触摸的一瞬间苹果手机就有反应了,而安卓手机还有“考虑”一会才有反应。
这个过程看似很短,但在具体使用过程中,还是明显能够感觉到。
结果苹果手机自然要给人的感觉快一些。
三、开发环境不同
Android采用的是 Java虚拟机堆技术,而IOS的开发语言为Objective—C。
Java虚拟机堆技术本质上是一次解释多条命令,通过多开虚拟机堆提高解释成指令的速度,提高了java软件在手机上运行的速度。
说的更直白些就是一道命令下达时事先需要解释,这就造成cpu在等待数据过程中浪费时间,数据从手机内存到cpu需要时间。
而解释又不是一次就能搞定,可能需要多次才可以解释完成指令,送到虚拟机里执行。
这就像一个公司董事长要举行活动,然后把任务下达给各部门经理并做了详细介绍,然后再由中层领导向普通员工传达,由于沟通不到位,需要董事长、经理、员工之间多次沟通才能把事情搞清楚。
这样自然要耽误时间,慢下来也在情理之中了。
Objective—C在运行过程中不需要虚拟机在中间插手,是系统本身运行程序的执行过程,执行效率自然很高。
好比董事长直接面对底层员工,省去中层领导这个环节,效率自然会高一些。
四、运行机制不同
IOS的后台是“伪后台”,Android的后台是“真后台”。
这是什么意思呢?
IOS在运行时看起来打开了很多应用程序,但是除了当前运行的之外,其他的程序在后台都处于“睡眠”状态。
就像你用苹果手机同时打开了微信、支付宝、微博、王者荣耀等应用程序,如果你当前用的是支付宝,其它几个则就不再运行。
而Android就不一样了,只要不手动退出,后台程序就会一直处于运行之中。
也就是说如果你现在用的是支付宝,而其它几个程序看似没有用,其实仍然还在运行。
还有就是Android系统都是很多手机厂商定制的,往往捆绑大量软件,不得不用很高的内存来支撑。
五、国内外环境不同
使用国外安卓手机的或许都有一个感受,虽然流畅度和苹果有点差异,但不像国内的那么明显。
这就纳闷了,难道外国的月亮就比较圆么?
事实上,这都是国内手机软件造的孽,我们平时下载的App还常驻后台,相互唤醒。
也就是说看似我们关掉了某个APP,实际上它们一直在后台藏着偷偷活动。
更为可恶的是如果我们打开某个APP,它总要拖家带口,甚至把隔壁老王也一起叫上,这样不卡才怪呢。
国外的这种情况就要轻很多,顺畅度自然也就好很多了。
还有就是国内的App下载后,CPU的负荷度远超国外的,这就好比一个人总是处在很紧张很大压力下,整个人能精神起来吗?