作为一个观察者经历者,而不是一个专业的开发者,我只能通过一个相对专业的用户视角为你解答。
早期
几乎单任务的iOS
其实在iOS和Android发展的早期,正如提问问题所说,早期iOS的后台管理机制十分严格,甚至iOS 4之前完全不开放给第三方,仅提供给系统原生的通话、录音、音乐等进程,这个阶段我们不严谨的、大概的可以称之为单任务系统;
放任不管的多任务Android
而早期Android则十分宽松,应用几乎是想挂后台就可以挂,原生甚至没有提供开放给用户的任务管理UI和切换方式,从Android 2.3那个年代过来的朋友应该知道,当时甚至还需要自己装一些第三方的任务管理器app。
这也就能解释原生Android 4.0和iOS 4都没有“一键清理”,Android 4.0是通过比较隐蔽的“滑动任务”去关闭的,iOS 4则是通过“长按后台应用图标”-“点击左上角(-)关闭按键”。
从这个命名和操作逻辑,其实就可以看出,这个阶段其实不太提倡用户进行手动管理的。
随后在国内安卓这边,出现了一些变化。
一是在2014年前后那会,提供Android系统内互联网服务的Google,在大陆境内出现无法访问的情形,让大陆地区的安卓生态逐渐更加独立;
二是底层十分开放的特性,让应用可以轻易获得自启动、相互唤醒的权限,与此同时还有各种隐私权限齐唱“我家大门常打开”;
前者,谷歌原本在Google Mobile Service谷歌基础服务中提供的Google Play应用市场无法使用。这就冒出、强大了一大堆以豌豆荚、91手机助手、应用宝、360手机助手为代表的应用分发服务,应用不再需要经过谷歌的严格审核,上架国内分发渠道审核很松;
谷歌的Firebase Cloud Messaging (FCM) 统一推送服务在国内无法继续使用,会造成应用关闭后收不到推送消息的情况。
由于无法使用统一的FCM,个推等应用推送服务出现壮大,但每一家都需要在后台驻留保活一个进程才能实现及时推送。
后者,且可以轻易获得后台自启动、应用相互唤醒权限,在国内的安卓用户就“有福受”了:即使用户在多任务管理中手动关闭应用,为了保活,应用还是会孜孜不倦的在后台启动,不同应用还会“结盟”互相唤醒,在后台常常呈现“你方唱罢我登场”的态势。这让国内安卓生态混乱了许多。
作为对比,iOS有统一的Apple Push Notification service(APNs)苹果推送服务、审核严格的App Store和只允许短暂或特殊情况的后台任务管理。
在那个年代,也就给很多用户树立了一种苹果虽然RAM内存不大、“墓碑假后台”,但后台严格管理,不卡顿;安卓虽然更大RAM内存、真后台多任务,但根本没人能管住,开机时间长了就被占满,各种自启唤醒、严重卡顿。
后期
国产厂商和谷歌镇压后台
既然App不讲武德,国内安卓手机厂商当然不会放任。2013年,以小米的MIUI V5系统为代表,一个接一个的国产安卓定制系统开始严加管控后台和唤醒权限。
此后几年,这成为了一个大趋势。最极端的情况下,在部分国产安卓系统上的后台管理策略约等于苹果的墓碑机制了。比如,Flyme直接明确了“待机三分钟自动清理后台”。
同时,除了必要的唤醒,全部一刀切禁止掉自启动和相互唤醒。
可是,墓碑机制是建立在苹果有APNs的情况下,那国产厂商在没有FCM的情况下效仿,如何保证消息送达?
正如之前手机里跑着的各种国内第三方推送服务,这次,只要软件厂商接入后,手机厂商统一成一个保留运行就好了——小米手机只留小米,魅族手机只留魅族,OPPO、vivo、华为同理。
极端情况就是应用不接入手机厂商推送服务:一种是应用“厉害”,比如我们全世界最优秀的产品经理、只向苹果APNs和谷歌FCM低头,而不鸟国产的微信张小龙。
这种情况下,华米ov都单独得给微信这种app开“特权”,默认不限制微信后台、允许微信随意自启动;
一种是在大陆水土不服、也不是那么在乎大陆的厂商,比如索尼。
那应用本来是真·小而美,或者手机厂商没有提供推送服务,那就只能用户自己给开白名单,或者应用自己自求多福——所以会出现用户点开一个app后才会蹦出一堆消息的情况,平时不开启应用就完全没消息。
中国互联网软件厂商影响力越来越大——国际上也出现各种流氓自启动等骚操作、中国手机厂商影响力越来越大——严格的后台策略也逐渐被谷歌纳入原生Android系统设计规范中。
这样一番“镇压”操作下来,大家也确实发现安卓手机更省电了、更流畅了、越来越好用了——除了极少的极端情况下,不过即使强如苹果也会漏推送。
不过有一点是,早期安卓的“杀后台”确实简单粗暴,不会像“墓碑后台”一样记住你上一次打开的页面,因此早期机制策略不完善那会儿,安卓会丢失上一次应用进度。
苹果逐渐开放一定权限
在这几年中,被用户吐槽严格封闭的苹果也在做出改变:iOS 7中,后台多任务页面也被改为了卡片式,上滑卡片即可关闭。
而在表象之下,iOS 7迎来了“更真”的后台。
部分被允许“后台应用程序刷新”权限的应用,可以得到更多的后台权限。
打个比方,比如微信原来收到推送,点开还要收取15秒消息,那么iOS 7开启权限之后,收到推送时就会开始收取,点开时已经收取完成了。(本例子只是打比方,不代表张小龙真有)
现状
安卓在杀后台和保后台之间平衡
在人工智能、机器学习算法的介入下,安卓厂商设计了更加智能的后台机制。
比如魅族会起名叫OneMind技术,能够更优雅的平衡“杀后台”和“保后台“,知道谁该杀,谁不该杀。即使杀掉,安卓厂商也逐渐都能保留上一次App的进度了。
Android从底层也开始借鉴iOS的墓碑机制。比如,在比较新版本的Android开发者选项中,可以看到“暂停执行已缓存的应用”,这个描述就很墓碑。
前不久,小龙的兄弟QQ也接入了华为、小米、vivo等国产厂商的推送服务,希望小龙尽快吧。
同时,随着安卓阵营不断堆料硬件,用户也不少吐槽应用后台留存的问题。
于是,像是刚刚发布的Redmi K60至尊版、一加Ace 2 Pro这样的国产安卓手机,已经将RAM内存加到了最高24 GB的水平,后台甚至可以保证留存七八十个app了。而12 GB机型,在2023年也还足够大部分普通用户使用。
苹果引入灵动岛实时活动,区分应用后台状态
在去年WWDC 2022上,苹果发布了iOS 16。其中,一个叫实时活动的新功能,我们可以视为苹果对“后台”的全新认识。实时活动状态的App,有4种状态:等待中/进行中/成功/失败。状态中的App会被更少的进行后台限制,应用可以实时在后台刷新最新状态,并呈现在包括全天候显示状态下的锁屏、灵动岛等位置上。
编辑添加图片注释,不超过 140 字(可选)
编辑添加图片注释,不超过 140 字(可选)
华为也在最新的Harmony OS 4.0中加入了理念相似的“实况窗”功能。
总结:开放与封闭的相互奔赴
回顾主流移动操作系统的后台多任务发展历程,我们会发现Android和iOS是相互奔赴和借鉴的,iOS早期完全封闭,逐渐越来越开放,现在也不算严格的墓碑机制;Android早期完全开放,却逐渐趋于严格管理,极致情况下也成了iOS那样的墓碑机制。
没有一种机制是绝对完美的,用Android的朋友羡慕iOS生态严格管理、应用高质量;iOS的朋友羡慕Android的开放自由后台,后台打开微信从来不用“加载中”……
展望未来,iOS和Android都在探索一种更加优雅和智能的后台管理方式,只是实现方式不同。
#免责声明#
①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!
④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。
⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!