为什么安卓系统用久了会卡,苹果系统却依然流畅?谁能科普下,比较容易懂?

没玩无影的啦1


同学,安卓系统现在几乎很少有卡顿的了,当然了,除非你买的是几年前的机型,就最近两年上市的安卓机来说,处理器普遍都是骁龙7102、骁龙712、骁龙730、麒麟960、麒麟970起步了,而且售价1千左右,日常使用根本不会卡顿的~

如果搭载的是骁龙855、麒麟980、990之类的处理器,那性能就更强劲了,而且各家手机厂商对安卓系统的优化程度也是突飞猛进,经过这么多年的更新迭代,别说卡顿了,就是你想故意把它给弄卡,都要花费一番功夫的~


苹果系统的确很流畅,但是电池小、信号差、发热高等毛病你咋不说呢?就连最新上市的苹果11手机,新机的摄像头都能进灰,可见品控是多么的愁人啊...

其实安卓系统和苹果的IOS系统最主要的区别是APP运行机制、后台管理机制,以及数据交互机制,这玩意我一两句话也说不清楚,大致的给你描述一下吧:

  1. 苹果的ios系统里运行的APP都是独立的,也就是沙盒模式,彼此之间互不影响,而安卓是虚拟模式,APP之间都互有联系,这就导致了安卓系统里APP开的越多就会越卡~

  2. 在苹果的ios系统里,所有后台的程序都会被强制挂起/终止,因此不占内存容量,但是安卓系统则不行,手机里装的所有APP都会或多或少的运行一些进程,即使现在杀掉了,过一会也会自动运行起来的,这就造成了安卓手机装的软件越多,手机就会越卡~

  3. 在安卓系统里,所有数据的运算交互都是在手机内完成的,而ios则是通过苹果的服务器进行数据运算交互,然后再发送到手机上的,所以苹果系统肯定流畅了,因为它的工作都被服务器给做了呀~

其实我讲的并不是很全面,但是我想说的是:你别再纠结安卓系统和IOS系统了,目前来说各家手机的安卓系统都是非常流畅的,手机业的竞争很大,如果谁家的系统卡顿的话,现在网络这么发达,分分钟就给你曝光了,这会非常影响销量的,所以各家手机厂商都在铆足了劲的对系统进行优化,所以只要手机处理器不是太垃圾,那么卡顿是不存在的!


特别是一加手机的氢氧系统(简称H2OS),它也是基于安卓系统的基础上研发的,在今年上半年的安卓手机系统流畅度排名里,获得了第一名的好成绩,而且我本人也使用过一加手机,就我个人的体验来说,真的和IOS不分伯仲,所以说安卓系统现在很不错,不会用久就卡的~~

我2年前买的华为mate10pro手机,用到现在依然流畅如新,我天天拿着打游戏都没卡顿过,王者荣耀开最高效果,帧率稳定在55~60之间!


桃园Computer


感谢邀请

为什么安卓系统用久了会卡,苹果系统却依然流畅?谁能科普下,比较容易懂?

科普倒是不敢讲,只能说说自己的一些看法,现在的安卓旗舰手机至少用2年的时间是没有任何问题的,至于你说的卡顿是之前安卓的卡顿,或者是很多人拿着几年前的手机或者是千元来做对比,当然我们不可否认的是ios系统显然仍然是相比安卓有优势,造成这种差异化的原因,其实有三个系统的运行效率不同,以及后台机制的不同,以及生态环境不同:当然前提我们使用的安卓系统不是原生的,是经过各个厂商优化来的,所以其实已经加入了更多的功能,而ios系统没有经过点缀,所以刚开始已经有了区别:

1.运行效率的不同:

  • 安卓系统和ios系统两者编写程序的语言不同,ios是Objective-C编程的优势是效率高,但是相比安卓JAVA的优势则是跨平台不过运行效率相对偏低,其实这两个编程语言所带来的机制不同,就已经造成了各自系统之间的流畅性差异化。

  • 效率高的原因就是系统处理任务的方式不同,比如苹果手机,我们一直说过度动画很自然,这是因为iOS对屏幕反应的优先级是最高的,简单点来说的话,就是当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示(Touch这个层级),也就是你点开一个APP之后,直接就点开了。

  • 而安卓手机的运行机制是APP都是一直在虚拟机中,你点开APP之后,首先需要的是由底层传输数据到虚拟机中,再由虚拟机传递给用户UI,因为Java语言因为虚拟机的存在,二次转化再执行效率就要低很多。而这次的华为方舟编译器就是解决这个方面的问题,省去了中间的步骤。


2.后台机制不同

苹果手机为什么运行内存那么小,但是系统也可以流畅运行,就是后台算是假后台,我们简单点来说的就是,比如我们打开一个APP之后,我们回到主界面的时候之前的软件就相当于暂停使用,不再消耗RAM,所以你会发现比如你再次载入APP的时候,发现还是在你退出来那个界面。而安卓是真后台,即使你退出软件,软件也会在后台自启,继续占用你的RAM,而RAM是有限的,当RAM剩余太少的时候你就会感觉到卡顿。同时,后台的程序运行也会占用CPU资源,使手机处理能力下降,这也是安卓手机需要通过使用更高的配置来提高流畅度的原因。

3.生态环境的不同

  • 安卓手机不管你的软件来源是哪里,比如手机自带的商店,还有百度,还是有其他都可以下载,这也是很多人为什么拿安卓手机当做是备用手机,就是方便下载软件,因为安卓是开源的任何软件开发商或者个人都能开发安卓的软件,也正是由于开源和各个品牌手机硬件差异极大,导致安卓手机的系统体验各有差异,软件兼容性也不如ios。

  • 而苹果手机你的软件来源只能是应用商店,所以导致了一些不正规的APP违规占用后台内存和其他方面的一些问题。

总结

  • 当然苹果手机处理器性能的强大也是一部分的原因,因为单核心能力强,所以我们平时使用的时候只需要用到单核心,而刚才讲过了苹果在运行一个应用时,另一个是暂停的,所以单核心的能力强优势就体现出来了。


  • 安卓要运行虚拟机,这样就加重了处理器的负担,加上安卓系统的多样性,开发者需要对不同系统进行定制,所以优化不佳;而苹果可以限制开发者的开发方案,iOS系统只需要保证几款iPhone、ipad等苹果自己的移动设备上的运行体验即可,而Android则需要兼顾尽量多的已存在和未存在的不同硬件组合,在可控的环境内对系统做针对性的优化。而且刚才讲过了两者的运行效率,Android采用的Java语言因为虚拟机的存在,二次转的效率相对较低。


回答完毕

欢迎留言发表不同的看法和想法:

科技数码随时答


我的荣耀note8和同事的苹果7p都是2016年出的,我是2300买的,他是6400,都用了三年,他已经卡到死,最近换了一台2800的mate20,我的荣耀note8还好好的。难道现在的旗舰会比我的荣耀还差,你问这个问题只是想黑安卓吧,都2019年了。


百变果仙变变变


内存够的话且平时有清理内存的习惯就不会卡,我私人於2016年买的红米3就用得很畅顺,反而公司配的苹果6S 因为内存小,且是公司的财物平时也懒得理会,所以用起来不是很畅顺,特别是图片占内存很多的情况下,用微信都有点卡,最主要的是苹果手机的信号一直不好。


ACM123


手机用的时间长了会变卡已经是大家公认的问题,无论是安卓系统的手机还是苹果系统的手机都会变得奇卡无比,相对来讲苹果系统在流畅度上更加平滑一些,到底是什么原因导致手机系统变得如此卡,现在各个维度做个大致的分析。

手机系统卡原因分析

手机安装的应用软件过多。特别是安卓系统应用的安装途径非常多,经常有一些非常规的应用安装在手机里面,时间长了积累的多了,有些手机甚至安装了上百个应用,在这中情况再牛的机器配置也经不起如此多应用的消耗,而且很多应用启用后台执行方式,所以装的越多手机越卡,特别是一些国内应用厂商,经常给应用升级,升级的结果是占据的资源越来越多,手机变得越来越卡顿。

手机磁盘积累的文件太多。由于刚买的手机的时候里面的东西比较少,随着用的时间长了很多硬盘文件,都堆积在一起,堆积的越多手机在访问的时候越是变得卡顿,所以华为手机针对文件系统的访问做了erofs文件系统就是为了减缓这种递归影响手机性能,如果存储的文件足够多对于系统访问相当于有一个极大的负担,堆积的越多手机卡顿的越厉害。

安装了有危害的应用。有些应用在开发过程中非常不规则,不停的在扫描硬盘或者搜罗用户信息,这种应用用不了安装很多就能把手机搞得十分卡顿,所以在平时使用过程中不要轻易安装不被信任的应用,很多主流的应用占据的资源也是相当恐怖的,就拿微信和QQ来讲占据的内存和文件资源都会比较大,时间长了性能自然会受到影响。

手机硬件老化。特别是闪存颗粒如果使用的寿命到了,对于手机性能影响还是非常大,所以新的手机体验会好一些,用的时间长了自然就会有衰减,主要是闪存颗粒。

安卓机制层面问题。安卓在机制上在手机应用变多的情况下,性能会下降很多,所以华为围绕着安卓已经做了很多改进工作,现在高配的华为手机在体验上要比原版的安卓性能提升了许多,虽然谷歌对于安卓的优化一直在持续,由于架构方面的影响,提升空间已经非常有限了,再加上安卓系统整体管理上没有苹果那么严格,在机制上更加容易出现问题。

安卓和IOS有何区别

经过上面的分析,有些手机永久了卡顿不一定的本身系统的问题,相比来讲安卓系统手机更加容易导致卡顿一样,为什么苹果手机比较之下显得更加流畅一点。

生态机制不一致。IOS是完全的闭源系统,无论是硬件还是软件都是苹果一家公司说了算,就连安装的应用不经过苹果商店是安装不了,而且苹果商店对应用的审核更加严格,硬件上也是完全苹果公司主控,所以在优化的时候能够上下一体来配合,这是ios最大的优势,相当于是独立王国,什么不受任何规则的限制,但由于这种系统太过于封闭,注定在生态系统上没有安卓发展的旺盛,在苹果手机一直强盛的时候,这种生态没有什么问题,主要靠产品来推动生态系统的发展,如果产品跟不上生态系统会受到很大的限制。

虽然苹果手机在产品上独特之处但整体的运营模式还是脱离不了苹果的文化,独特的私有文化,从苹果电脑市场占比就可以看出来,未来苹果手机会变成市场上的高端手机的代表,而且占据的比例不会太高,也不会消失毕竟市场需要更多差异化的东西。

安卓系统由于代码开源任何一家手机厂家拿到谷歌授权都可以拿过来使用,所以在硬件配置上参差不齐,规则的不一致也会造成结果的不一致所以安卓手机相对来讲问题会更多。

设计架构差异。安卓属于宏内核,IOS属于宏内核和微内核结合的结果,所以在搭配多种硬件资源上苹果系统会更加占据优势,所以功能越强大,安卓系统更加容易卡顿,相比来讲苹果手机更加流畅一些。

整体来讲手机卡顿是多方面原因造成的,不仅仅是简单的系统差异造成,所以要理性看待一些问题,尽量少安装应用,手机每隔一段时间整理下硬盘,可以适时的关机下,让电池修整一下,能延长手机的使用寿命,希望能帮到你。


大学生编程指南


发表一下个人观点

问题中提到的安卓系统用久了会卡,请设定一下这个用久了是多久

以我的安卓和IOS经历来说

2015年9月购入iphone6 128G,800多美元,很流畅,很快,大约一年之后开始速度变慢,电量下降很快,到17年的时候已经很慢了,打开app的速度很折磨急性子,至于这样的情况我认为不是iOS的问题,而是手机硬件的问题,听说那一代iphone质量确实欠佳,不过不敢确定,朋友的iphone5se一直很流畅,很好用,ISO确实没问题,很好用

之后华为mate10系列开始崭露头角,于是在2017年12月左右购入mate10pro,6G+128G 全网通,价格应该是5400人民币左右,差不多也是800美元上下,所以档次应该是有可比性的,到今天为止差不多已经一年10个月,电量有点下降,流畅度方面丝毫不影响,这是事实

9月20日,iphone11美国开始正式开卖,我预付款买一台送给亲人,所以20日准时货到家里,ISO一如既往的流畅

我今天想说ISO系统流畅度方面毋庸置疑,但是今天的安卓也已经不是8-9年前安卓刚刚开始的时候,经过各个手机厂商的优化,我的观点是已经足以达到媲美ISO流畅度的存在,至于用久了会卡这个问题,我们在问这个问题之前先想清楚,“用久了”到底是多久,我认为到今天,和iphone同价格的安卓手机系统流畅度丝毫不落后于ISO。

非专业,仅个人经历与观点,不喜勿喷谢谢


Okletsgo43103


作为一名程序开发人员,我从系统层面来回答一下题主的问题。

为什么安卓系统永久了会卡?

  • 垃圾回收机制

安卓系统是基于Linux内核的系统,安卓系统运行的APP是基于Java语言开发的。提到Java就得提到Java的垃圾回收策略,这也是安卓手机用久了会卡的始作俑者。Java的垃圾回收算法有好几种,具体我就不跟题主普及了因为不太容易懂。简单来说,我们使用安卓手机的时候,系统会把很多变量、对象、计算(我们打游戏、上网等操作)等加入到系统的内存中,内存本来就那么大,如果这些变量、对象堆积的太多,系统内存空间就会变小,可使用的内存空间严重不足,程序运行就会变的卡了。所以对这些变量、对象的清理将是释放内存的解决方案,但是Java对垃圾(上文提到的变量、对象等)的回收是系统层面决定的,程序开发人员对垃圾的回收不可控,当一些变量、对象不再使用的时候,系统并不会及时清理它们。根据它的垃圾回收策略,当这些垃圾堆积到一定的量,经过系统判断哪些可以回收了就把它回收,这个判断过程也会存在一些误差,导致一些垃圾没法被回收,这些顽固垃圾日积月来占用着内存,内存变的越来越小,系统就变的越来越卡。这就是为什么现在8G内存的安卓手机用久了也会卡的原因。

  • 程序编译机制

安卓系统的应用运行要先把Java程序代码加载到安卓虚拟机中编译成安卓系统可以运行的机器码来运行,这个过程是需要消耗时间的,这也在一定程度上导致了安卓程序的运行不流程。


为什么苹果系统用久了却依然流畅?

  • 垃圾回收可控

苹果手机使用的系统是苹果自主开发的iOS系统,iOS系统是基于C语言开发的。C语言的一个优点就是,对垃圾回收可控。程序开发人员在程序开过的过程中可以实时、精准释放不用的对象、变量。这样,在我们使用手机的时候,产生的对象、变量就会得到及时的释放,不会一直占用着内存,所以内存占用率较低,程序的计算效率大大提高,系统也保持流畅。

  • 系统适配硬件

另一方面,苹果的iOS系统是基于适配硬件开发的,就是可以把硬件的性能发挥到极致,这也是苹果手机为什么流畅的一个原因。而安卓手机则不同,安卓的系统全适配,并没有完全发挥硬件的性能。




个人拙见,欢迎诸位评论交流!

【我是小马锅,欢迎您关注、支持我!感谢!】


苏北小马锅


    众所周知,iphone使用了苹果的IOS系统,长期使用仍然能够保持很好的流畅度,IOS系统的高流畅度来来源于三把利剑:应用审查机制、消息推送机制和伪后台。下文具体说一说。

    1、伪后台机制

    Android从一开始允许后台,用的是serviece组件,意思就是当你退出某个应用时,在后台仍然运行,占用内存空间。只有内存告急时,系统采用通过Kill Service释放资源,这个也是android系统卡顿的根源。因此,安卓系统比较“吃内存”,内存越大越好。


    IOS系统,如果应用不在前台,那么内存空间就会被清理,后台应用以墓碑的形式(退出前状态)保存在内存,用于实现快速启动。因此,iphone 8的内存虽然只有2G,但是很少卡顿,运行大型游戏,同样可以实现高帧率。

    2、消息推送机制

    IOS的推送是统一挂载在苹果服务器上,不启动应用也能收到推送信息,原理是消息由APNS(Apple Push服务器)统一管理,因此即便关闭了微信,重新启动之后仍然能够收到信息。

    安卓系统通过google的GMS服务统一推送消息,由google的服务器转发给用户,但是我国的安卓手机均“阉割”了GMS服务,再加上goolge不在大陆,所以国内的安卓手机直接推送消息到用户的手机。因此,国内android生态整体比较混乱和不规整。


    3、应用审查机制

    苹果的IOS系统,属于闭源软件,需要通过App Store下载应用软件,苹果应用有专门的审查团队,只有符合要求的APP才能在苹果应用商店上线。

    Android系统应用的门槛较低,缺乏相应的审查机制,因此国内的anroid应用市场比较混乱,存在广告、泄露个人隐私等问题,还有各种流氓软件,占用了大量的系统资源,导致android手机越用越卡。


    上文从操作系统层面解释了一下IOS系统和android系统的区别,严格的app审查机制、apple统一推送机制、伪后台保证了IOS系统的流畅度。当然与苹果的A系列处理器强大的功能也是分不开的。


Geek视界


为什么苹果不卡安卓卡,很多人都有体会但不清楚原因。事实这个道理并不复杂。

手机用久了为什么会卡?主要就是硬件和软件两方面原因。硬件就不说了,更强的CPU、更高级的内存等等,说说软件。

软件的原因有虚拟机、应用审查机制、消息推送机制和墓碑机制(伪后台)四方面,我主要说说消息推送机制。

当程序切换到后台,程序又要给用户发通知,怎么办呢?IOS系统是这么设计的:程序完全关闭,如果要给用户发通知就统一发到苹果公司服务器,再由苹果服务器发送到手机。这样任何程序只要切换到后台就会完全退出不驻留内存,内存中只留一个专门接收苹果服务器推送的进程即可。这样内存是不是就很节约了?

安卓就麻烦了。其实谷歌公司也有专门接受发送推送的服务器,但是在中国谷歌服务器是被屏蔽的!!此路不通!!于是每个安卓软件只能在切换到后台时驻留一部分到内存里,用来接收消息通知。你打开了程序越多,后台内存就被占得越多——

看到这里大家明白了吧,为什么安卓手机的内存要那么大,8G成了标配,而苹果刚升到4G。8G的安卓还是卡,因为内存被一个个不得不驻留后台程序占光了,怎么可能不卡?

所以可以看到,即使不算苹果商店对流氓软件的严格审核,不考虑苹果虚拟机的优势,安卓用久了比苹果卡也是必然的,CPU再强大都没用——因为再多内存都不够。

一个证明是:欧版的安卓手机的内存都比国内版的要小。华为p30国外4G内存起,国内起步8G。为什么?因为国外不需要那么多内存啊!


夜消沉57484819


就拿一个编译方式,谷歌就在Dalvik、ART、AOT来回纠结了很久,技术选型、以及分发管理方式是造成安卓会这么卡的根本原因。


原生Android还是非常流畅的,只不过中国市场用不到原生Android,Google服务被阉割没有本地化的服务补充也没办法用,国内比较接近原生Android的是一加的氢OS,其实已经做得非常好了。

安卓碎片化严重、国内Android生态混乱

为什么Android会碎片化如此严重呢?尽管到了今天,Android的碎片化还是非常严重,这主要还是Android的分发方式造成的。

大家也都知道iOS和macOS,包括现在的iPadOS,都是在相对比较单一的硬件平台下运行的,这些操作系统只会出现在苹果硬件上,苹果有足够的精力兼顾到几乎每一代每一款产品。


Android和Windows不一样,生态太乱了,品牌众多、设备繁多、版本乱七八糟,每个厂商的硬件也是纷繁杂乱,就拿屏幕来说有各种各样的分辨率,还有水滴屏、额头屏、打孔屏,处理器有高通、有海思麒麟、有联发科。

到了手机厂商这儿,每个厂商又都有自己的定制UI,在中国市场还要把谷歌服务用户本地服务填补起来,每个厂商都有一套自己的游戏规则,最终安卓生态越来越混乱,隐形开发成本增大了很多,碎片化也越来越严重。

大家还不遵守规则,国内的应用开发者基本上一般是流氓,剩下的一半即将成为流氓。一个应用做了N多功能,不管你用不用,然后就各种乱调用权限,还偷偷监视你、上传你的敏感信息等等,当一个应用想方设法在做这样的事情的时候,那么一定是非常重的。

Android消息推送机制、伪后台机制:随时随地都想给你say hello

Android跟iOS不一样,iOS的消息推送都是系统统一管理的,也就是说你想推送啥得通过我的同意才行。Android则是完全另一番光景,每个应用管自己的事情,每个应用始终有一个线程随时想要给你说“Hello!”,自然你的系统也就卡了。



伪后台机制就不多说了,一句话总结就是,Android系统不是真正的在后台乖乖躺着,iOS应用到了一定的时间,一定会把你的不用的应用给杀掉,可是Android应用开心得狠,不管你用不用,他都在那里“不离不弃”,而且你想要终结进程会发现,这玩意儿还会悄悄去跑出来给你说“晚安”。

Java虚拟机是另一个硬伤:技术选型的痛很难去改变

Android发展初期,为了实现对iOS的弯道超车,加上Android本身也是开源的,同时为了降低开发门槛,不顾一切的选择了Java作为第一语言,从此祸根就埋下了。



Java本身是虚拟机语言,本身也相当臃肿,用Java就意味着你的硬件成本必然会上去,大家可以比较一下IDEA、Eclipse和visual studio这几个集成开发环境,就会发现Java对资源的耗费有多么严重。

总之安卓之所以这么卡,跟Android系统的本身的技术选型有关系,也跟Android生态的分发和管理方式有关,总之这是综合因素造成的,不是一蹴而就。


本文系字节跳动签约作者的EmacserVimer悟空问答原创专稿,未经允许不得转载。


分享到:


相關文章: