现在主流手机系统,主要就是iOS和安卓,还有一个正在发展中的"纯血鸿蒙",今天先聊聊前两位老对手。

iOS的墓碑机制,到底是个啥
iOS有个很牛的东西,叫墓碑机制。
啥意思呢?就是当你把应用退到后台的时候,它会直接"冻结"住,停止运行。这样做的好处很明显——手机更省电,而且系统可以全力以赴地跑前台应用,自然就更流畅。
但问题来了,有些事情就是需要应用一直在后台跑啊,怎么办?
苹果给了两个方案,针对不同场景。
苹果的两个解决方案
第一种场景:音视频播放和下载
像音乐软件、视频软件、下载工具这些,确实需要后台执行。苹果允许申请后台运行权限,但同时会严格审核你有没有滥用这个权利。所以不是每个应用都能这么干。
第二种场景:实时通知
需要实时收到消息的那种,苹果就聪明了——它提供了一个统一的推送通道。
简单说,就是在系统里保持运行一个通用的接收消息的逻辑,和苹果的服务器保持连接。当某个软件需要通知你的时候,先发给苹果服务器,苹果服务器再转发给你手机,手机上那个一直运行的逻辑收到消息,就弹出弹窗。
这样做的好处是:你装多少个聊天应用都行,反正只运行一个相同的逻辑,不会占用更多的运行内存和CPU时间片,系统照样流畅。
但缺点也很明显:在你点通知栏唤起应用之前,软件其实根本没真的运行,需要全力拉取最新消息。这就是很多人吐槽苹果微信的原因——明明看到通知了,点进去却没有最新消息,等一会儿才出来。
这就是这个方案的副作用:为了流畅度,稍微牺牲了一点体验。
有人可能会说:那让微信长时间后台运行不就好啦?
恭喜你,你发现了安卓的方案。
安卓的后台保活大战
很久很久以前,久到安卓4.4、5.0那个年代,有个特别热门的话题叫"后台保活"。
各个应用都希望自己可以在后台悄悄运行,这样用户一点开就能直接看到最新内容。可问题是——全都活了,也就全都卡死了。
系统运行内存会被占满,然后系统尝试杀死不重要的应用,应用再悄悄启动,往复循环……恶性循环。
到了现在,各大手机厂商也意识到了问题,开始严格限制后台运行、链式启动之类的,稍微有点效果。也推出了系统级别的推送,但各家的服务器都是单独做的,接入方式不太一样,还需要单独申请推送资格。
但是微信没接入这些,而且没打算接入。
微信自己建了长连接,直接连微信服务器。只要应用一直运行,就能实时收到通知。而且因为是微信自己的服务,消息内容一起发过来,存到手机数据库里,用户点开应用,立刻就能展示出来。
所以上面吐槽苹果收消息慢的人,安卓是用性能换的。每台手机,都被微信占了一坨运行内存。
那其他应用可以这么干吗?
答案是——可以,也不可以。
现在手机厂商都搞了白名单,白名单里面的应用,允许你后台运行。白名单以外的,会给你加各种限制。
也就是说,你很难搞出微信那种效果,除非你是微信。
其实安卓官方也有统一的推送机制,但是不能用。而各大手机厂商自建的方案又很碎片化,全都接入难度很高,很麻烦。
有段时间,也是很久以前,传言要建设一个统一的推送方案,但最后也没了下文。
总结一下
苹果通过墓碑机制+统一推送,平衡了流畅度和体验,再加上苹果的审核机制,让应用生态高质量又繁荣。
而安卓一直没有解决这些问题,这也是安卓越用越卡的一些原因。当然,也怪手机厂商——厂商巴不得你手机卡了,天天换手机呢。
相比之下,我更欣赏iOS,但是我用安卓。因为苹果贵。当然,这是我的缺点,不是它的缺点。🐶
你在用什么手机呢?觉得哪款更好用?有没有遇到过什么手机相关的事儿,或者发现了什么有趣的小技巧?
来评论区聊个五毛钱的! 👇
喜欢这篇文章的话,点个关注再走呗~
下次手机卡的时候,你就知道该怪谁了(不是)