安卓版“墓碑机制”火了,而隐藏在这背后的「矛与盾」才是关键

核心提示文 | 小伊评科技最近,关于安卓版「墓碑机制」的消息在数码圈火了起来。用户通过打开开发者模式,然后打开「暂停执行已缓存的应用」①这里也先科普一下什么是「墓碑机制」。我们传统印象中的多任务处理方式,就是Windows上的后台,俗称为“真后台”

文|小科技

最近,关于安卓版“墓碑机制”的消息在数码圈火了起来。用户打开开发者模式,然后打开“暂停缓存应用的执行”

①这里,我们先来了解一下什么是“墓碑机制”。

我们对多任务的传统印象是Windows上的背景,俗称“真背景”。

在这个体系下,后台应用和前台应该基本没有本质区别。只要配置足够,消费者可以同时在内存中预留N个应用。因为电脑是主动输入设备,所以不需要考虑电池的消耗。

但是像手机这样的移动设备就不一样了,因为手机是需要依靠电池来维持能量输入的设备,所以不可能采用类似Windows的后台管理策略。必须建立合理的退出机制,保证设备的“耐久性”,即前台应用的耐久性和体验性。

所谓“墓碑机制”,原本是指IOS系统上的一种多任务处理策略。

解释起来很复杂。简单来说,在IOS平台上,手机的资源会优先分配给前台的活动进程,而用户放在后台的程序会被设置为非活动状态。经过一段固定时间后,非活动状态将被设置为暂停状态。

在这种状态下,它的后台进程不占用CPU资源,只占用内存容量。当系统监测到内存容量紧张时,应用会被杀死,但系统会将其状态保存在闪存中,也就是“应用墓碑”。下一次用户打开它时,将再次给出状态。

这是苹果的后台处理机制。简单来说,IOS系统的所有硬件资源都会供应给前台应用,后台应用的资源占用会大大减少。

而且这种机制受制度限制,由苹果主导。应用厂商根本打不过。我们稍后将讨论这一点。请记住,我会先将它标记为红色。

②我们来看看Android的后台机制。

很多人觉得安卓的后台机制很乱,其实不然。原生Android系统的内存处理机制也非常完善。它还将进程分为很多层次,包括前台进程、可见进程、二级进程、隐藏进程、内容提供者、空应用等。,这些状态的优先级依次降低。

当系统检测到内存不足时,系统会根据app优先级的不同,对应用进行批量处理,从而释放内存。这就是众所周知的LMK机制,这个逻辑本质上没有问题。

换句话说,原生Android系统在系统判断内存即将耗尽之前,不会开始清理内存中的进程,而在被清理之前,后台程序会同时占用CPU资源和内存资源。

这和IOS的后台机制有些不同,因为IOS上的后台系统在10分钟不活动后不再需要消耗CPU资源。所以相比较而言,IOS会更节省资源,更省电,这也是iPhone13还敢用4G做存储的原因,电池容量明明那么小,却比安卓更耐用。

这一次,“暂停缓存应用程序的执行”的效果是相似的。简单来说,放在后台的程序不再占用CPU资源,只在内存中保持一种状态,从而降低功耗和CPU压力。

看到这里,你不觉得很好吗?初衷是挺好的,但这会引出一个新问题——“一些需要留在后台的进程会被乱杀”。

最典型的是WX等即时通讯应用,因为需要推送消息,其他的是健康类应用,需要长时间待在后台,运动检测类应用可能都会受到影响。

那么苹果是怎么做出来的呢?苹果为开发者预留了可以驻留在后台的接口。应用开发者在开发应用时,可以根据业务需求调用不同的接口,比如背景音频,可以让音乐播放软件在后台宿主;再比如远程通知界面,可以让推送的信息直接在后台刷新等等。

苹果APPStore上架时会严格审核这些接口的调用。比如一个完全不用音频接口的app,非要弄一个常驻后台的APP接口,审核的时候会直接拒绝。严格的审核模式保证了应用的质量,同时也保证了体验。

安卓这边很麻烦。如果要启用非常严格的后台控制措施,那么将是两败俱伤的局面。而且我要告诉你的是,国内定制ROM的后台控制措施其实是非常严格的,动不动就会扼杀一些后台进程。

那么,为什么安卓厂商对后台程序的管理如此严格呢?主要是那些应用开发者太过分了。在Android市场中,应用程序开发人员为了让他们的应用程序留在后台,做出了可怕的事情。

比如什么设置透明浮动窗口,互相唤醒,启动关联等。层出不穷。如果搜索“安卓常驻后台技巧”,会有很多方法出来。他们的本质是保持他们的申请过程的高优先级,以逃避LMK机制。

如果这种行为得不到遏制,消费者的体验将会非常糟糕。所以手机厂商不得不采取更严格的管控措施,这是一个非常矛盾的情况——管控严格会损害消费者的体验;如果管理松散,消费者体验也会受损。

这一切的根源在于“国内手机厂商约束应用开发者的手段非常有限。」

因为安卓手机厂商的应用市场完全分散,小米有小米的应用市场,华为有华为的,OPPO有OPPO的,导致国内安卓生态系统完全割裂,无法凝聚成一股绳。

所以让我们考虑一下。如果一个手机厂商对应用的审查过于严格会有什么后果?很多应用厂商不登陆你的应用市场,最后谁会吃亏?毫无疑问是手机厂商,因为安卓手机的可替代性太强了,那些大厂的app本身就是流氓头。

但是在IOS上就不一样了,因为苹果是唯一一个用IOS的,它有一群非常忠实的,不可替代的粉丝。如果一个应用不放在IOS上,就意味着会失去一大群消费者。哪个应用厂商敢这么做?当时TX、AL等大厂与iPhone的纠纷,基本都以应用厂商的提交而告终。

包括统一推送也是其中的一部分。统一推送一直做不下去的原因不是手机厂商不配合,而是应用开发者不愿意,因为这里已经形成了固定的利益链,冰冻三尺非一日之寒。

 
友情链接
鄂ICP备19019357号-22