文/小伊评科技
不要看不起IOS,在后台管理这一块,苹果下的功夫要比安卓手机多得多得多,管理也更加精细和智能,否则的话IOS流畅省电的这一特性你以为是大风吹来的么ios7功能?
详解IOS后台的强大之处以及和安卓系统的差别。目前的IOS系统的后台机制一共有四种。
第一种就是无后台仅推送的模式(APNS模式)。
这是苹果手机上最为强大的一种后台功能,至于为什么强大我们来详细谈一谈。
在安卓手机上,尤其是缺乏有效约束的国内安卓手机上,一款软件想要给目标用户推送新消息,那么就必须要常驻后台。
举个例子,譬如你的微信想要及时的获取好友给你发送的信息推送,那么就必须要把微信这个进程一直保留在内存当中,一旦微信的程序被你杀掉,那么也就意味着你再也获得不了微信的后台通知了。
而各个软件厂商为了达到给用户推送新消息的共同目的,于是乎就建立起了一个心照不宣的“黑产”联盟,弄了一个相互唤醒的SDK(软件插件),软件厂商在开发软件的时候只需要加入该SDK,就可以起到链式唤醒的神奇目的——具体表现为当你打开A软件就会在后台启动B软件,B软件又会在后台启动C软件.........犹如愚公移山般“子子孙孙无穷匮也”,这就是俗称的关联启动。其造成的结果就是手机后台打开了一堆没有用的软件推送,加重了对于内存资源的占用,手机卡成狗,安卓手机卡顿的根源很多时候就来源于此。
安卓手机关联启动记录
而在IOS系统上则根本不存在这种问题,因为软件服务商想要给用户发送通知,必须先将信息流传递到苹果的APNS(苹果的服务器),然后再由苹果根据目标设备号进行统一的分发,所以根本不需要该软件常驻后台,而且也不用怕错过新消息。
目前国外的安卓手机得益于谷歌的强大管控力,只要是经过GooglePlay下载的软件,推送机制采用的也是类似于苹果的APNS推送,而国内....你懂得。
另外,当下的IOS系统还引入了一个非常牛批的模式——静默推送,简单来说就是在用户完全无感知的情况下,软件自动在后台进行消息的更新,更新完毕后自动销毁,消费者在打开软件的时候该软件已经处于一个最新的状态,不需要长时间常驻后台。
第二种后台机制同样也是大名鼎鼎,叫做墓碑机制,这是在IOS4时代引入的一种后台机制,简单来说,当你把一款软件切入后台的时候,这款软件的所有进程都会被冻结,系统只保留了一个软件状态的记录,就像是墓碑上的墓志铭一样,当你再次打开该应用的时候,他会恢复到墓碑上所记录的状态,这可能就是苹果后台是“伪后台”说法的来源之一。
第三种后台机制叫做智能唤醒,这是在IOS7时代加入的功能,苹果对于这个功能的解释非常繁琐复杂,简单来说就是一句话,IOS系统会根据用户使用某一个APP的频次和时间智能的唤醒该APP以保证当前APP的信息处于最新的状态。
第四种就是常驻后台了,IOS系统上对于常驻后台的应用管理是非常严格的,目前只有一些音乐软件,苹果自家的一些服务等才拥有这样的权限,其他APP几乎都没有类似的权限。
上面就是IOS为达到更好的用户体验而做出的非常细腻而又人性化的做法。
安卓的内存管理简单粗暴但是确实是真后台而反观安卓系统这边,由于Java应用天生缺乏退出机制,安卓对于后台的管控非常的简单粗暴,那就是看内存的阙值,简单来说就是在剩余内存达到一个固定值的时候,内存就开始清理处于后台的程序了。举一个例子,加入你的手机内存是8G,手机厂商设置的阙值是4G,那么当你打开的软件的内存
最早的时候是从软件打开的先后顺序开始清理,先进先出;而目前安卓系统同样也加入了一些智能管理的权限,会根据软件的性质以及用户的习惯选择关闭还是打开应用,但是相比于IOS非常细腻的打磨来看,安卓系统的内存机制还是过于的简单粗暴,虽然是真后台,但是体验也并不比IOS强太多,而且还会因为后台机制造成一系列卡顿的问题。
不过话说回来,也正是因为安卓系统内存管理的简单粗暴,所以造就了安卓系统的后台留存确实要比IOS强很多,只不过这种差距正在慢慢的被缩小。
end 希望可以帮到你