为何安卓不如iOS流畅? 这或许是根本原因所在

2018-03-14 23:29      安卓中国 未来科技范


  【未来科技范 报道】3月14日消息,为什么安卓手机越用越卡,而苹果手机没事?我想这个问题大多数人都存在疑问,我们在使用安卓手机的时候通常会安装一些清理软件并且经常清理手机,但清理效果确不尽人意。用时间长了还是觉得越来越卡,这到底是为什么?

0.jpg

  想要解决问题我们就要先找到问题的根源来对症下药。其实,安卓系统就像一本画册,每一页是一个动作。当我们连续翻动每一页时就会看到画上的人物就像真正动起来一样。在安卓系统操作时也像这样,以极快的速度去生成销毁一张张图片来实现界面间的切换。

  这里有三个动作画面,走、跑和跳。三个动作连环播放,从走这个动作的销毁到跑的生成这个时间可能需要0.01秒(这个时间只是举例)如果这个时间小于0.01秒那么就会生成跑这张画面,如果这个时间大于0.01秒就不会生成跑而是直接生成跳这张画面。所以我们看起来就会有卡顿的感觉。

  那么为什么会出现超出这个时间的情况呢?

  原因就在于

  1、ios系统和android系统架构的设计

  ios的系统架构设计是Touch--Media--Service--Core

  android系统架构设计同样是四层Application--Framework--Libraries--Kernel

  从架构设计我们可以看出ios的对于屏幕的响应(Touch层)优先级最高,android和ios同时进行屏幕操作,ios系统会优先处理Touch也就是屏幕响应处理层。而android系统是在第三层的Library处理屏幕响应操作。中间经过了第一层的application(应用层)和application Framework(应用框架层),这就直接导致了CPU的数据运算量加大,因为数据运算量增大那么超过0.01秒这个时间段的可能性就会增大,就有可能出现卡顿的现象。当然这个问题通过系统的优化以及硬件配置提升可以得到一定程度的降低,但是差距还是存在。

  2、iOS的GPU加速

  现如今的手机CPU性能已经达到一定的高度,那么厂商如果想进一步提升手机性能,从GPU入手是一个很明智的选择。像我们国产的麒麟955和960,在CPU方面960比955并没有提升多少,主要提升还是图形处理性能也就是GPU。

  游戏是衡量手机性能的很重要的指标。像3D游戏等大型软件对GPU的要求特别高。ios系统对各种图形特效的处理基本都是基于GPU硬件进行加速的,它对CPU的借助很少,完全通过GPU进行渲染。而android并非如此,虽然在android4.1以上都已经默认开启了硬件加速,但其还是无法做到真正靠GPU进行加速。为了满足硬件的多元化,大部分还是靠程序本身进行渲染,并且严重依赖CPU,使CPU运算负荷增加从而导致卡顿现象。

  3、内存回收机制不同

  ios的内存可以通过Object-C自行控制释放,它的内存管理机制会将活动较少的程序尽快推出,在有新的应用加入时首先判断内存是否够用,如果不够用首先进行清理释放内存。

  而android-java没有进程可以自行控制释放内存,应用退出时并不清理其所占用内存所谓“退出但不关闭”,它会把应用程序全部保存到内存中,空闲的内存也多用于缓存,直到内存达到一定程度才激活内存回收。这也是导致android系统卡顿的原因之一。

  4、android广播接收器(broadcast)

  Broadcast是一种广泛应用于应用之间传输信息的机制。而BroadcastReceiver可以接受并响应Broadcast,BroadcastReceiver可以在系统中进行注册,只要注册完成在事件来临时,系统会自行启动程序。也就是说用户关闭某应用后,只要关于此程序的某些进程发生变化,那么在用户不知道的情况下系统自动启动该应用。

  既然Broadcast是应用和应用之间传输信息的机制,那么,应用软件之间的关联关系也会导致同品牌应用之间的频繁唤醒,当然这些只是后台进程用户是看不到的。一些问题可以使用某些优化管理软件比如绿色守护等等得到缓解,但是根本性的问题还是需要根本上解决。

相关阅读