手机厂商惯用的“后台优化”,如何成了业界毒瘤

  • 时间: 2020-07-16 05:00:31

编者按:本文来自微信公众号 “三易生活”(ID:IT-3eLife) ,作者:三易菌,36氪经授权发布。

随着2020年的时间过半,对于安卓手机阵营来说,也就意味着距离一年一度的新版系统发布越来越近了。

根据当前已经公开的消息,Android 11这次的改变可谓是相当巨大。比如说,它将会变革智能手机的关机界面,将IoT设备的管理页面置于显眼位置,弱化原本的“关机”功能;比如说,它将会强制手机厂商采用A/B分区,让系统更新从此不再需要漫长的重启等待,进一步改善Android系统更新的体验;又比如说,根据近日一位内部人士透露的官方计划表,Android 11还可能为平板电脑设备带来久违的“全新体验”,这或许可以看作是谷歌对于苹果和微软近年来在平板电脑领域愈发强势的重要回应。

Android 11的全新关机界面

但是在当前已知的Android 11新变化中,有这么一条格外吸引了我们的注意。它就是谷歌日前在Reddit网站与海外网友交流时所强调的,会在Android 11中“对手机厂商随意杀后台的行为进行遏制”。

说实在的,看到“杀后台”这三个字,大部分国内手机用户脑海中浮现出的可能都是相当正面的印象。就拿我们日常接触到的智能手机产品来说,大多数都具备自动清理后台应用的功能,也就是说当某个APP没有在前台运行时,系统会自动终止其进程,释放出更多的CPU算力与内存空间,还能起到省电的作用。乍看之下这样的行为非常正当,那么为什么谷歌要在Android 11中明确反对这种做法,甚至不惜将“遏制杀后台”作为新系统重要的“功能改进”之一呢?

首先,杀后台会给用户带来意想不到的烦恼

不知道大家有没有过这样的体验,正在使用聊天软件的时候,突然因为其他的事情需要切换到其他的APP。一段时间之后再切回聊天软件,结果发现就在这段时间里对方发了好多条消息,自己的手机却完全没有弹出提醒,因此耽误了重要的事情,或是造成了不小的误解,

在欧美科技圈,杀后台严重的Android手机有时候会被讽刺为“傻瓜机(Dumb Phone)”

为什么会这样?简单来说,这就是手机系统“自动杀后台”的机制干的好事。特别是对于那些有能力自行改造Android系统的手机厂商来说,为了让手机用起来感觉更流畅,经常会将自动杀后台的参数设定得相当激进。如此一来,就会造成一些应用一旦被退至后台,进程就被自动“杀”掉,不仅刚刚浏览的页面与操作的进度会丢失,更糟糕的是造成重要通知信息无法及时收到,从而给消费者带来切实的困扰。虽然这样手机是更流畅也更省电了,但是反而因此耽误了事,显然就是得不偿失了。

其次,杀后台实际上促进了软件业的垄断

当然,看到这里可能有的朋友要说了,我根本没遇到这种情况,你看我平时常用的xxx应用平日里常年挂在后台,都没有被“杀掉”。

然而,这恰恰是各大手机厂商在“杀后台”一事上最大的门道所在。根据谷歌此前披露的信息显示,手机厂商当然明白,胡乱杀后台会导致正在运行的程序突然中断,特别是对聊天与地图软件等时常需要在后台运行,要第一时间给用户推送通知的软件影响巨大。为了解决这个问题,手机厂商想出的办法就是设立所谓的“白名单”——只要是在白名单上的软件,就不会被强制杀后台。

原生Android系统里,白名单是用户自行制定的

由于白名单上往往都是消费者最常用的那些软件,因此站在用户的角度上来说,“杀后台”所造成的可感知的负面效果就变得不那么明显了。但与此同时,它实际上也造成了更为严重的后果,简单来说就是促进了软件行业的不公平。

试想一下,如果你是一个初创企业的成员,刚刚推出了一款功能上很有新意,设计上也足够人性化的新款聊天工具。结果,满心期待成功的你,在用户论坛里看到的反馈却是“软件后台经常关闭”、“常常收不到消息”之类的抱怨,会有怎样的感觉呢?你其实心里很清楚,出现这样的问题完全和自己的团队或者编程水平无关,仅仅只是因为产品“不够有名”,所以就被各大Android手机厂商的系统杀后台机制给变相“封杀”,落得个用户体验糟糕的后果。

甚至有人专门编写了检测软件,测试各大品牌手机“杀后台”的严重程度

正因如此,在几天前的网友沟通环节,谷歌方面明确指出的魔改Android胡乱杀后台所带来的坏处之一,就是“白名单机制”所带来的垄断和不公问题。作为整个Android生态的领导者,谷歌当然不会允许开发者受这种委屈,整治“杀后台”也就有了必要。

最重要的是,它让程序员要么变坏要么变懒

但俗话说得好,道高一尺,魔高一丈。正因为大量手机厂商随意地在系统中设定了过于严苛的杀后台功能,再加上不公平的白名单机制严重打压了那些规规矩矩小企业和开发者。因此“杀后台”实际上还会衍生出一个更为糟糕的后果,那就是逼着开发者去使坏、钻空子,甚至是去制造流氓软件。

比如说,有些软件会在接收到用户的后台切换命令之后,故意把主程序缩小到只有一个像素点,继续保持在前台运行。此时系统会认为你依然在使用刚刚你以为已经“后台化”的那个程序,从而不会终止掉它的进程。

又比如说,有些软件会非常频繁地在后台自启动,不管用户实际上有没有在使用它们,都会试图通过不断地唤醒自己,来抵消系统“杀后台”所可能造成的服务无法运行与通知无法收到的问题。

除此之外,对于那些已经进入“白名单”保护的软件来说,也就意味着不管它们的内存占用有多大、编程优化水平有多差,或者不断塞进了多少用户可能不需要的新功能,那些部署了“杀后台”机制的手机都不会在它们于后台运行时终止其进程。很显然,如果说前面我们讲到的两个例子,是小众软件面对如今魔改Android系统的“杀后台”技术,为了生存很可能被迫变坏的话,那么反过来说,对于已经受到了白名单保护,拥有大量用户的知名APP来说,“怎么作都不会被杀后台”这样的事实,同样有可能使得他们的开发人员轻视软件优化的重要性,在功能复杂化和代码臃肿化的道路上狂奔不止,从而带来更为恶劣的后果。

*本文图片来自网络