遏制“杀后台”要搞定手机厂商,谷歌抓住了关键
来源:三易生活
目前正在测试阶段的 Android 14 又有新消息引发了外界的关注,不过这次并非功能更新,而是一个新的计划。近日有消息显示,三星与谷歌方面已达成一项合作,将在 Android 14 中修复 " 前台服务和后台工作 " 不协调的问题,从而在 OneUI 6.0 中减少 " 杀后台 " 的频率。
对此,谷歌方面在相关声明中透露,为了解决这些一致性挑战,将与 Android 硬件制造商建立更为深入的合作伙伴关系,以帮助确保在整个生态系统中,用于后台工作的 API 实现可预测、且一致的支持。三星将成为加入该计划的首个合作伙伴,未来在 OneUI 6.0 上运行的应用,只要根据 Android 的全新前台服务 API 政策进行开发,就能确保前台服务按预期工作。
简单来说,谷歌和三星的此次合作旨在解决 Android 机型 " 杀后台 " 的现象。没错,从 Android 11 喊到了即将到来的 Android 14," 杀后台 " 的治理其实一直都没能完成。而此次谷歌与三星达成合作,在某种意义上也代表谷歌此前试图用技术手段来解决这个问题的失败。
为什么会这么说呢?其实这要从 " 杀后台 " 这一现象诞生的原因说起了。
在 Android 生态中,APP 互相唤醒、强制驻留后台无疑是一大毒瘤,这也是 Android 机型的内存比 iPhone 更大的导火索之一。如今 Android 使用的是 " 真后台 " 机制,从设计上追求的是充分利用物理内存,并将需要用到的数据从闪存读入到内存,再借助内存的更高速度,确保系统数据的访问性能,即可用内存越小,内存的利用率就更高、缓存中的数据就越多,数据访问的命中率就越高,系统运行速度也就随之越快。
为了确保系统对内存的充分利用,Android 设计了一个名为 Low Memory Killer 的内存回收机制,也就是当系统发现内存低于警戒线时,通过对进程的重要性进行评估,来决定关闭进程释放内存以确保系统的流畅度。但问题是,应用往往为了 " 保活 " 可谓是各出奇招,会用链式唤醒、随意缓存、强制自启等方式扎根在后台,并让这一内存回收机制失效。所以这就是为什么,当时只有 2G 内存的 iPhone 会比 6G 内存的 Android 旗舰机流畅,以及 Android 越用越卡的原因。
为了遏制这一问题,各大 手机 厂商都在自家的 ROM 里用上了可谓是更 " 变态 " 的策略,用近乎一刀切的方式让大量驻留后台的应用被彻底关闭,而这反过来又让开发者怨声载道。甚至手机厂商这样 " 杀后台 " 的策略让谷歌都坐不住了,此前在 2021 年夏季,面对着开发者对于手机厂商定制系统频繁 " 杀后台 " 的问题,谷歌启动了针对第三方定制系统 " 杀后台 " 的情况调查。
在一年之后的 I/O 开发者大会 2022 上,Android 13 的 AOSP 源码中就添加了对 MGLRU(多页面回收策略)的支持,借助这一策略,在 75% 内存占用时也减少了 85% 的后台误杀情况。然而谷歌对于 MGLRU 的效果持谨慎态度,并表示依然在努力从多个角度来尝试解决这个问题。然而很遗憾的是,最终效果并不尽如人意," 杀后台 " 现象近年来依旧有增无减。
虽然谷歌很努力,但手机厂商不买账的原因其实很简单,因为双方的利益出现了分歧。由于手机的屏幕相对更小,就导致用户同一时间最多只会使用有限的几个应用,而 Android 系统的特性又决定了后台驻留的应用越少、留给前台应用的资源就会越多,使用就越流畅。但手机厂商 " 杀后台 " 的策略尽管会让用户体验更好,却完全漠视了开发者的利益。
APP 为何要千方百计地驻留在 Android 系统的后台,无疑是开发者为了 " 保活 "、为了确保 APP 能随时向用户推送信息,所以频繁 " 杀后台 " 就会让开发者很难受。
当年, 苹果 走的是自己解决一切的全封闭模式,并靠着乔布斯作为产品经理的超强能力将 iPhone 带上了神坛。而谷歌的 Android 走的则是开放路线,并用开放手机联盟来笼络盟友,用恩威并施的手段共同做大蛋糕。因此在 Android 社区里,开发者是一股重要的力量,也导致谷歌需要不断笼络他们。
但手机厂商并不需要为开发者负责、只需争取用户就好,而且有白名单机制的存在,诸如 微信 、淘宝、抖音等真正的利益相关方,早已被保护了起来。可谷歌方面并不直接面对用户、却需要安抚开发者,所以利益的分歧也造就了在 " 杀后台 " 一事上,手机厂商与谷歌双方只能自说自话。要知道,Android 可从来没有规定第三方定制 ROM 必须照搬谷歌的代码。
这就是直至 Android 13 也没能解决 " 杀后台 " 这个问题的原因,尽管 MGLRU 的设计确实很优秀,但奈何手机厂商不买账的情况下,谷歌这个策略政策就推行不下去。那么问题出在哪里了呢?其实是出在手机厂商与开发者之间不存在信任的土壤。
由于历史原因,部分开发者的肆意妄为确实在客观上导致了 " 杀后台 " 的出现,也使得手机厂商不敢相信开发者。毕竟在当下这个智能手机已经进入存量市场的环境下,已经容不得手机厂商心慈手软,万一有开发者 " 故技重施 ",让用户的体验下降,损失可就大了。
因此谷歌现在拉上三星,就是在给其他手机厂商做一个示范,如果真的能够让用于后台工作的 API 实现可预测、且一致的支持,那么手机厂商和开发者之间的信任就有重建的可能," 杀后台 " 现象才能从根本上得到解决。否则的话,谷歌单纯从技术层面做再多的优化,或许也是无济于事的。