分享

为什么安卓会比iOS卡顿,背后的原因其实很简单

 昵称11935121 2018-07-14

安卓党和iOS党都一直争论一个问题,手机系统谁更好,但是都各有各的优势,但是手机用久都是会卡顿,苹果也不例外,毕竟有很多人跟我说他们自用的iPhone也会卡,所以只有安卓机用久会卡就太片面了,只是iOS相比较来说会没安卓的卡,但是为什么呢?

我们都知道安卓机打开应用,你就算退出了程序,依然会在后台运行,要手动关闭,如果不关闭后台,应用都在后台运行,自然觉得卡了,而苹果没有这个烦恼,这是为什么呢?

系统后台机制各不同

Android系统

安卓系统是java编写

这个时候就要说到系统后台机制的问题了,Android大多数应用,是没有退出设计,其实有一定道理,这个就跟系统对进程的调度机制有关系,安卓的系统是java编写的,懂java原理的就明白了,类似java的垃圾回收机制。

系统有一个规则来回收内存,进行内存调度,这个是有个阀值,只有低于这个值,系统才会按一个列表,来关闭用户不需要的东西,但是这个值的默认设置得很小,所以会看到内存,一直在很少的数值徘徊,其实这个不会影响到速度,反而会加快下次打开这个应用的速度,这就是安卓系统的优势之一。

为何内存少的时候会有卡顿、运行缓慢的情况?

因为在内存不多的情况下,打开大型程序,就会触发系统自身的调进程,调度策略,这是十分消耗系统资源的操作,尤其是一个程序频繁的向系统申请内存的时候,系统就会选择性的关闭进程,在频繁调度的情况下,自然会拖慢系统。

为什么安卓会比iOS卡顿,背后的原因其实很简单

这样的话下载一些清除管理内存的软件有没有必要呢?这是有的,就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度,但是一些小程序就可以交给系统自己管理。

不关闭后台,是否会更耗电?

这个要说到安卓后台的原理,当应用在切换到后台时候,其实已经暂停运作,并不会消耗CPU资源,只保留运行状态,所以为什么有的程序切换出去,重新进入应用会回到主界面。

但是如果想在后台处理一些东西,例如音乐播放,他就会开启一个服务,服务在后台持续运行,所以也只有带服务的应用才会在后台耗电。

为什么安卓会比iOS卡顿,背后的原因其实很简单

所以这也是安卓的一个优点,没带后台服务的应用不会有任何耗电,没有关的必要,下次打开应用速度还会更快,因为不用读取界面资源。

如果你只是切换界面,而不是退出的时候,因为程序还在运行,自然就会耗电,好像你开启微信,微信正常退出会在进程管理,留下微信运行状态,但不耗电不占CPU。(因为不完全退出的时候,好像你只是切换界面到另一个软件界面,就会在内存里留着,但是不会占CPU,不费电,再次启动就会非常快,所以为什么能超越WM6(Windows Mobile 6)系统的原因。)

为何安卓应用耗内存?

大家知道,安卓Android上的应用是java,当然需要虚拟机,而安卓Android 上的应用是带有独立虚拟机的,也就是每开一个应用,就会打开一个独立的虚拟机,这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。

iOS系统

iOS是Obiective-C编写

为什么安卓会比iOS卡顿,背后的原因其实很简单

iOS是用Obiective-C(是扩充C的面向对象编程语言)编写的,执行效率高,专一性强,iPhone是Mac出的封闭手机系统,iPhone相对要稳定,不开放源代码的,扩展相对不足,移植性很好!

因为是Objective-C编写,所以从众面小,不能定制UI界面,只能进行功能解锁,比如越狱。

iPhone 的后台机制模式有四种:

一、无后台仅推送

仅有苹果推送机制,这种方式出现在iOS 3.x以下的大部分系统版本上。这个方式下,应用在按下Home键后即会关闭退出,其数据通过苹果搭建的推送服务器传输,并不需要应用后台运行。

这种方式 不太好的原因在于,每次推出后,重新进入均需要重新加载,虽然推送能够统一解决数据和信息的传输,但遇到需要频繁进入应用(如聊天APP)的时候便会显得体验不好。

二、墓碑式

这在iOS 4后被大量采用,也就是人们所说的伪多任务。这方式相比较第一种改进的地方在于,按下Home键至主界面后,应用随即进入后台,但其被冻结,并不能进行任何操作。

为什么安卓会比iOS卡顿,背后的原因其实很简单

为什么安卓会比iOS卡顿,背后的原因其实很简单

三、智能调度后台

iOS 7新增的background fetch,这个后台接口在苹果WWDC 2013(全球开发者大会WWDC)上有提及,其会根据用户行为自动调整达到效率最优的后台模式,能够处理不是很有时效性的信息获取。

例如一些社交、新闻类的应用的后台信息更 新,iOS系统便会根据应用启动频率、时间和当前网络和电量的状况来智能分配每个应用的后台获取频率和启动时长。

由于拥有该接口的应用的数据后台刷新操作是统一调度的,因此系统可以在一个进程里面获得多个应用的数据,类似统一的推送机制,这样就能够最大限度地省电。

不过这个方式也有一个缺点,那便是开发者不能设定数据具体什么时候更新,因此这个后台方式只能应用在一些时效性和敏感度不高的地方。

四、真后台

但iOS的真后台与Android的后台机制是不一样的,为了兼顾系统体验和统一进程管理,iOS在这上面加入了众多的限制。

多任务处理

iOS提供最广泛的基于标准的物理和逻辑协议接口——超过业界任何其他供应商:从双绞线到光纤,从局域网到园区网到广域网,Novell NetWare(Novell NetWare是美国开发的一种网络操作系统。上个世纪90年代Novell系统成为证券交易的标准配置,一个NetWare卷可以由一个物理硬盘组成,也可以增加另外的硬盘对这个卷进行扩容。),UNIX(UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。)SNA(SNA是IBM公司开发的网络体系结构,简单的历史回顾,有助于了解集中、分层的SNA是如何适应今天的对等通信、客户机/服务器模式的。)以及其他许多接口。即是说,一个围绕iOS建立的网络将支持非常广泛的应用。

iOS的多任务处理其实很聪明,系统会自动终止在背景执行的程序,在有需要时,也会将被中止的程式suspended(注:'中止的程式'不是指关闭程序,而是指由前台转向后台的程序,程序在后台并不真正运行,不要和关闭程序混淆了)从内存中移除。因此,iOS 装置的使用者根本就不需要担心怎么管理这些执行中或不在执行中的程序,尽管放心用、轻松玩就是了!

所谓多任务,无非是CPU速度够快而足以支撑极短时间内在多个进程内动作罢了。而所谓的“单任务”,无非是只能让当前任务独享资源罢了。

iOS和安卓的区别

为什么安卓会比iOS卡顿,背后的原因其实很简单

从开发语言上来说IOS是objective-c,而Android开发语言是Java,明显是C语言的效率要高些。

其次,就是系统的优先度来说,通俗点说IOS系统最先响应的是屏幕,而Android屏幕响应只是其第三响应级别;第三,iOS和设备紧密集成,软硬件一家公司通吃。

但是Android无法做到, 通常的情况是:Google放出源代码。 芯片厂商需要1-3个月来做自己的芯片方案, 手机厂商从芯片厂商处买到方案和代码, 进行自己的集成,定制工作,有时候还需要针对运营商进行定制,所以各种鱼龙混杂。

安卓和iOS系统的优缺点

总结来说,ios优势封闭式的环境带给用户不错的操作体验,整个系统运行非常顺畅,毫无卡顿感,精美的动画把每一次切换都衔接得天衣无缝,在APP store这个全世界最好的应用商店里,你可以尽情下载喜欢的应用程序,高质量的APP,进过优化的游戏,充分发挥手机性能,即使性能差,也可以有良好的操作体验。

缺点整个系统毫无乐趣,千篇一律的UI,整天看着一排排图标真是乏味,无论干什么都要进行设置,连接电脑也得要iTunes。

为什么安卓会比iOS卡顿,背后的原因其实很简单

而安卓优势随心所欲的主屏幕,去美化板块看看吧,里面的的美化是越狱后的iOS也望尘莫及的。

快捷的桌面widget(锁机界面上的天气、微博等小组件就是Widget,强大的通知栏,你可以通过通知栏快速开关WIFI等,甚至可以直接在通知栏回短信,通知栏是安卓最有力的王牌功能。

缺点:系统碎片化,APP质量不高。新系统没人用,老版本用户一大群。开源造成安卓系统今天这个混乱的局面。市场的垃圾程序如山,走流量传广告,甚至官方市场里也有黄色应用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多