谷歌为何不做手机

核心提示如今Android手机似乎正在陷入一个怪圈,尽管内存变得越来越大,使得12GB内存逐渐普及、18GB内存也已出现,甚至于出现了虚拟内存技术,然而各大手机厂商的系统则在以更强的力度“杀后台”。为此,在收到了越来越多开发者的投诉后,此前在202

现在的安卓手机似乎陷入了一个怪圈。虽然内存越来越大,但是12GB内存已经逐渐普及,18GB内存已经出现,甚至出现了虚拟内存技术。但各大手机厂商的系统都在以更强的力度“杀后台”。为此,在收到越来越多开发者的投诉后,谷歌于2021年6月发布了一份相关调查问卷,调查Android手机的“杀后台”问题。

在一年后举行的2022 I/O开发者大会上,谷歌再次表示正在从多个角度尝试解决“后台误杀”问题,并透露Android 13的AOSP源代码增加了对MGLRU的支持,在MGLRU的帮助下,在内存占用75%的情况下,后台误杀减少了85%。

早在2018年,谷歌就收到了开发者关于OEM厂商随意杀后台的投诉。当时在AOSP上,开发者已经提交了文件,证明OEM厂商滥用Android核心权利,并实施了严格的后台控制机制。到了Android 11,谷歌在与海外网友交流时也强调,会遏制手机厂商后台随意厮杀的行为。

曾几何时,“杀后台”对于安卓用户来说是一个非常正面的词。部分安卓用户会选择在ROOT后安装绿卫士等应用,以实现更好的后台管理,自动清理后台应用的功能成为当时安卓手机的标配。那么为什么遏制“杀后台”成为谷歌在Android 13中宣布的新功能呢?

其实是因为矫枉过正。随着SoC功耗的剧增,5G基带成为耗电大户,智能手机机身尺寸有极限,消费者更喜欢轻薄设计,这些都导致手机厂商对续航的高度重视。强制关闭驻留在后台的应用以节省系统资源,已经成为手机厂商提升性能和续航的法宝。

其实手机厂商也很无奈。如果允许应用长时间停留在后台,就意味着功耗和性能开销会增加。此时用户感知的结果是续航不够,总是需要频繁充电,可能会卡死。

手机一旦给用户带来这种负面反馈,也就意味着产品口碑的下降,这在当前的市场竞争中无疑是不可接受的。所以不仅是国内手机厂商,海外厂商也在“杀后台”这件事上互相较劲。甚至在去年6月,就有用户发现一些OEM厂商甚至强制关闭了无障碍服务的AccessibilityService。

但实事求是地说,这个“锅”手机厂商最多只能占三分之一,另外三分之一是谷歌设计Android的伏笔。

众所周知,Google为Android设计的内存回收机制是,只有当系统回收了所有的缓存,发现仍然没有足够的内存来维持系统和应用的流畅运行时,才会开始按照打开顺序强制关闭部分应用,回收其占用的内存。同时,Android系统采用的后台机制不同于iOS的“墓碑机制”。iOS是伪多任务,Android是“真后台”。

Android的这种设计意味着打开的应用越少,系统负载越低,用户使用越流畅。虽然Android和Windows都是多任务操作系统,但是手机的屏幕明显比PC小很多,这就使得用户最多只能同时使用一两个应用,而这个时候必须将更多的应用放在后台。

面对这一现实,手机厂商的解决方案是清理后台,然后升级LPDDR5内存、UFS 3.1内存芯片等硬件,以减少用户启动应用的等待时间,达到类似应用驻留后台的效果。

随着“杀后台”策略的发展,出现了手机厂商在将“白名单”之外的其他应用程序搬到后台时,干脆将其关闭,让系统获得最佳状态的情况。这也是当初安卓手机“游戏模式”的理论基础。但问题是,手机厂商这种“杀后台”的策略,虽然很好的服务了用户,却完全忽略了开发者的利益。

开发者需要应用驻留后台,其实主要是为了“保活”。为了接受后台消息,应用需要留在进程中随时接收消息的推送,否则用户总是收不到消息,体验极其糟糕。例如,一些应用程序在后台挂起并消失,迫使用户一遍又一遍地观看该应用程序的启动页面广告。久而久之,被迫频繁观看广告的用户自然会退出,所以工信部因为“用户投诉强烈”对开屏广告进行了管理。损失了部分广告收入的开发者自然会投诉谷歌,要求后者负责手机厂商无脑的后台运营。

当然,“杀后台”的趋势越来越严重,最后三分之一的原因其实是开发者自己。由于Android生态系统的自由开放,在Android 8之前,用户当时头疼的不是后台应用关闭,而是后台“没完没了”。当时很多应用都有不同的保命招数,选择使用链式唤醒、随机缓存、强制自启动等方式在后台扎根,直接导致了Android背上“卡顿”的名声。

总之,开发者和OEM厂商围绕“杀后台”产生矛盾的直接原因是双方利益不一致,彼此之间很难形成利益共同体。少数形成利益共同体的应用早已进入手机厂商的白名单。没错,“杀后台”之所以对普通用户不明显,是因为微信、QQ、微博、Tik Tok、淘宝等日常打开频率较高的应用,几乎都是手机厂商“白名单”的常客。

长期以来,国内安卓开发者在开发应用时需要思考的第一个问题,就是“我的应用能不能像微信一样一直在手机上运行?”为什么微信总是能在手机后台收到消息?“毕竟作为一个普通的Android开发者,他自然会向谷歌抱怨,否则他永远也走不到巨头的前面。

那么问题来了,谷歌在Android 13上推出的MGLRU真的能改变手机厂商频繁“杀后台”的现状吗?从技术角度来说,谷歌是非常自信的。因为MGLRU是传统内存管理算法LRU的升级版,而LRU是基于用户长时间不用的数据未来不会被使用的假设,所以当数据占用的内存达到一定阈值时,最近最少使用的数据就会被删除。

然而,LRU算法的逻辑可能不适用于智能手机。毕竟应用被用户挂在后台的时间和使用频率关系不大。因此,MGLRU的策略是将Android后台应用分成若干组,每组由前一组使用过的后台应用组成。通过差分扫描,标记长期存在的后台应用,最终计算出可以安全关闭的应用。根据谷歌的说法,在75%的内存被占用的情况下,MGLRU减少了85%的后台误杀。

但MGLRU能有多大效果,是否会改变目前手机厂商的后台厮杀政策,我们持相对悲观的态度。毕竟Android的真实后台机制意味着后台查杀的强度越高,手机在低负载下的时间就越多,用户感觉使用流畅的时间就越长。而且更重要的是,应用后台的厮杀不会影响手机厂商的利益。反正有白名单机制,真正的利益相关者早就被保护了。

所以在我们看来,也许只要手机厂商不强制关闭AccessibilityService,违反相关条款,谷歌实际上就无法控制手机厂商的第三方ROM是否会应用MGLRU。

 
友情链接
鄂ICP备19019357号-22