?在手机圈,有个怪象,
安卓手机的后台一直比不上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吗?
评论留言