时间:2019-12-18 来源:互联网 浏览量:
安卓手机的后台一直比不上iOS。
在使用中,
安卓手机的后台却频繁被杀,
而iPhone的表现就好很多,
要知道,
安卓手机已经来到了12G RAM的内存,
最新的iPhone 11 Pro Max可是才4G,
简直不给安卓手机面子。
好学好问的小伙伴可能有点奇怪了,
为什么安卓那么大的内存,
后台管理上却还是比不上iOS?
我们来看看安卓的后台管理机制。
在安卓系统里,
有个叫Low Memory Killer(LMK)的审判员,
当手机内存不足时,
LMK就会对特定的后台进程进行回收释放内存。
慢着,现在的安卓手机,
6G内存、8G内存都已经那么普遍了,
甚至12G的内存也很多。
内存还会不足吗?
这里需要谈到进程。
进程一般分为服务进程、可见进程、前台进程和缓存进程。
像服务进程、可见进程和前台进程,
这些后台往往与我们正在执行的操作相关,
比如后台下载、设置闹钟、我们正在使用的应用,
LMK一般不会动这些进程。
LMK需要动的是缓存进程。
缓存进程是安卓系统为了提高应用间的切换效率,
比如看视频的时候或者玩游戏的时候,
对象发个微信消息,就要立马切换回微信。
这种情况就会在运行内存中暂存多个缓存进程,
以供系统随时调用。
而谷歌作为安卓的爸爸,
也为安卓提供了一套非常理想的后台管理机制,
在手机内存不足时,
会优先释放缓存进程,
不影响用户正在执行的操作。
而这也仅仅是理想,
放在国内,
LMK失效了,
会对服务进程、可见进程和前台进程下手,
直观的感受就是下载中断,
音乐暂停,应用重新加载,
也就是后台被杀了。
为什么国内的安卓系统达不到谷歌理想化的安卓系统?
根本原因还是因为缺失了谷歌服务,
在海外,
只要遵从了安卓设计规范的APP,
用户收到消息的流程是这样的:
APP消息——FCM(谷歌推送服务)——用户设备,
在这个过程中,
APP不需要启动,
只要通过谷歌服务器,
就可以将数据信息发送给用户设备。
但是国内没有谷歌服务,
用户收到消息的流程就会变成这样:
APP消息——APP自身服务器推送——用户设备。
这个过程中,
要想接收到消息,APP就必须启动,
而且启动就启动,通常还会获取各种信息,
像是定位、号码、通话记录等等,
造成手机卡顿耗电,隐私也容易泄露。
手机厂商肯定不能放任这个问题不管,
消费者可不管你原因,
手机卡顿和耗电就算你的。
为了解决谷歌服务缺失这个问题,
安卓厂商对安卓系统进行了魔改,
根据谷歌推出的后台管理机制进行魔改,
从而控制应用自启动,
这样一来,
应用乱启动的问题也就解决了。
但一不小心就用力过度,
大部分魔改过的安卓系统,
只要应用没有加入系统白名单中,
不管你多大的内存,
很大几率都会被系统杀掉。
这也是为什么安卓运行内存越来越大,
但杀后台现象还时有发生的原因,
这也是厂商无奈,
国内安卓APP乱象太严重,
控制力度不严格,
应用可能就会无限自启,
一不小心还给你个全家桶。
在iOS 7之前,
苹果的后台管理一直实行“墓碑机制”,
在退出应用程序时,
系统会记录下当前应用程序的状态,
(就像是把事件记录在墓碑上一样)
当需要恢复后台时,
应用可以回到退出前的状态。
这种后台管理机制,
保存的只是应用的上下文数据,
应用本身已经退出,
应用占用内存空间十分小,
至于消息推送,
iOS中也有类似于谷歌服务的存在。
但这种后台管理机制也有缺点,
再次打开应用时需要加载时间,
因此iOS引入了后台应用刷新。
在退出应用后,
允许APP根据用户习惯,
在一定的场景下被后台智能唤醒。
比如习惯性在早上开启新闻APP,
那么这段时间内,
退出的新闻APP很有可能也不会被杀掉后台。
但是在最新的iOS 13中,
苹果进一步完善了这种后台管理机制,
后台管理更加智能,
只会在需要的时候唤醒APP。
因此苹果后台管理的秘诀在于,
墓碑机制+智能后台管理+系统级的消息推送,
一半的内存就可以做到比安卓手机更强大的后台管理。
好消息是安卓也有了一些改进,
国内方面,
成立了安卓统一推送联盟,
替代缺失的谷歌服务,
从应用自启上踏出了第一步。
谷歌方面,
也有所动作,
据 The Verge 消息,
针对iPhone 只需要安卓手机一半的内存空间,
就可以出色地完成各项后台任务的这一情况,
谷歌将在月底推出新的内存管理机制。
虽然具体细节官方还没有公布,
但意识到与iOS差距的谷歌,
一定会在内存管理上带来更好的改进,
一旦谷歌解决了内存管理的问题,
全新的安卓也许真的可以到来。
最后...呃……
好像上个版本,
谷歌也是这么说的。
(手动滑稽)
所以有生之年,
你们说能看到安卓真的看齐iOS吗?