裴圩新闻网
当前位置:裴圩新闻网 >> 美食 >>为什么 12G 内存的 Android 手机依旧会被杀后台?
为什么 12G 内存的 Android 手机依旧会被杀后台? 作者:匿名 时间:2019-11-14 13:31:11:


安卓不知不觉陷入了一个关于“后台”的怪圈:一方面,各大制造商纷纷推出12g ram手机;另一方面,您刚刚放在后台的下载任务并没有像预期的那样挂断并下载。打开微信发现,你不得不在启动屏幕上与孤独的小人分享蓝色星球,按照教程中的tasker规则努力工作了半个小时,但没有按计划自动执行...

所以一个熟悉的句子开始在我们脑海中形成——我的后台又被“杀死”了。

应用程序开发人员的“投诉”

如果你第二天早上醒来,在睡眠跟踪应用程序中发现记录的数据“马平川”,这不是因为你“睡得要死”,而是因为睡眠跟踪应用程序根本就不能正常工作。

你不是唯一遇到上述问题的人。许多人选择将问题反馈给这些应用程序的开发人员,但是他们没有意识到问题实际上是应用程序本身。

安卓平台著名的睡眠跟踪应用sleep as android的开发团队Urbandroid团队非常沮丧,以至于简单地推出了一个名为“不要杀死我的应用”(Dot Kill My Application)的网站,针对的是手机制造商糟糕的后台管理机制。

不要杀了我的应用!网站对oem系统的评分

以三星为例。urbandroid团队表示,在将一些三星型号升级到基于android 9的用户界面后,“扼杀后台”的现象变得尤为严重。自适应电池机制变得比原来的android更激进,3天内没有启动的应用程序甚至不能从后台再次启动。最坏的情况是,如果你安装一个第三方闹钟,自动跳过周末,闹钟应用程序可能不会像系统闹钟那样在下周一早上准时响起...

正如网站“不要杀我”指责的那样,其他拥有类似机制的手机制造商包括华为、一加、小米、华硕等定制安卓系统。他们管理背景的方式是一样的,但他们都坚持ios的“划掉并杀死”原则——当我们从多任务界面划掉某个应用程序的任务卡时,他们就完全从手机的背景中抹去了。

在这里你可能会问很多问题:

我们必须从一些基本原则开始。

安卓的内存恢复机制

在官方文件中,谷歌将“不受应用程序本身直接控制的应用程序流程生命周期”描述为安卓最基本、最独特的核心功能。在这里,我们可以暂时将“应用程序流程生命周期”理解为本文开头和第一部分提到的“背景”或“背景流程”。

因此,安卓系统应该决定是否保留安卓应用的后台进程。

当可用的运行内存空间不足时,android系统将决定回收和释放特定应用程序的后台进程所占用的空间。安卓在这个过程中使用的大刀叫做lmk(低内存杀手)。lmk如何判断哪些应用程序可以被“杀死”,哪些应用程序应该被暂时释放?

每个应用程序都有不同的组件,特定组件的运行状态共同构成了lmk回收内存的一组“优先级”引用,包括:前台进程、可见进程、服务进程和缓存进程。

应用程序通常包含的进程类型

前台流程、可视流程和服务流程通常与我们在手机上执行的操作直接或间接相关,例如前台供我们交互和操作的活动、等待通过broadcastreceiver触发的tasker规则、后台通过wi-fi网络自动上传备份照片的google photos以及前面提到的要触发的闹钟。这些过程的优先级从高到低降低,lmk通常不会触及它们。

缓存进程是临时存储在运行内存中的部分,这也是与本文讨论的主题相关的主要焦点。

在正常操作系统(android)中,缓存进程应该是内存管理机制中唯一需要交互的部分:运行良好的android系统通常会在运行中的内存中临时存储多个缓存进程,以便随时调用,提高应用程序之间的切换效率,并有计划地回收那些旧的非活动进程。

只有在极端情况下,例如当安卓系统在回收所有缓存进程后发现可用内存仍然不够时(例如,在内存不足的“经典机器”上运行Collapse 3),lmk才会继续根据优先级对服务进程、可见进程和前台进程采用回收策略。然而,当这些我们可以直观地感觉到在正常使用中必须回收的过程中,微信过载、音乐中断、下载消失等文章开头提到的现象也出现了。

谁移动了你的后台

当可用内存充足时,它会遇到“杀死后台”的现象。一方面,lmk的“大刀”(安卓9中像素3用户常用)可能有问题。另一方面,其他规则可能会额外干扰android系统的正常内存恢复机制。

这里提到的“其他规则”主要有两种形式。其中一个类似于预先安装在一些华为设备上的“节能向导”,它将删除所有尚未添加到背景白名单中的应用背景。另一种是基于谷歌对背景检查、背景限制和适应性电池的“神奇改变”,使得这些功能的实际效果远远超出预期,甚至达到意想不到的负面效果。

按照不要杀我的应用程序!统计数据显示,第二种后台干预机制在三星、一加和早期诺基亚型号中很常见,制造商通常使用类似“白名单”的方法进行过滤。

以三星基于安卓9的一个用户界面为例。除微信、qq和其他常见的国内应用程序外,默认情况下,一个用户界面将关闭所有第三方应用程序的“允许后台活动”选项,并打开“优化电池使用”功能。

一个用户界面的后台管理

一些配备氢操作系统的模型分割了上述应用过程。除了基于原生安卓的后台限制和电池优化之外,还有一套称为“自启动管理”(self-startup management)的设置来管理应用程序的自启动,还有一套称为“深度优化”(deep optimization)的电池优化机制。后者将导致许多智能手表和手镯设备在一段时间后与手机失去蓝牙连接,最终导致睡眠跟踪、运动记录等功能的失败。

氢气操作系统的自启动管理

问题是上述功能被深埋,普通用户在安装应用程序后通常不会在第一时间进入设置。添加的氢操作系统以在系统更新后自动重置一些用户设置而闻名。因此,那些需要在后台正常工作的应用程序被直接扔进“黑匣子”,用来限制本地android中的“癌症”应用程序。

换句话说,中国大多数定制rom在后台管理中选择了“宁可误杀1000人也不放过一个人”的方法。

相关阅读:控制频繁激活的“癌症”。安卓9.0使用这些方法来节省手机的更多电量

多任务管理还是后台管理?

在一定程度上,国内手机制造商在安卓后台管理方面的做法是极端的,但它们都是国内特殊生态的产物。

一方面,虽然谷歌已经为安卓设想了一个非常理想的应用运行和后台管理机制,但在中国本土安卓中大多数有效的后台管理机制似乎都成了“鸡肋”。

如果谷歌有100种方法来提高安卓应用的运行效率,并确保绿色和纯净的背景,那么国内癌症应用开发者将有101种方法绕过这些限制。

借助共享的第三方推送服务来实现链唤醒,借助透明的悬挂窗口来确保后台的生存,并借助连续获得定位的方式来防止进程被系统回收...无论是为了实现消息推送的简单目的,还是为了不断唤醒用户设备以实现关键绩效指标目标的廉价行为,它已经出现在中国的安卓生态系统中。

绿色卫士链唤醒的唤醒跟踪功能

虽然国内外的具体环境不同,但这种非标准android应用带来的问题是一样的。将此类应用置于后台不会给我们带来便利,但也会因设备频繁唤醒而带来相当大的功耗问题。待机电池寿命是困扰国内安卓机器的一把剑。手机制造商必须分别从系统层面引入自己的应对机制——上面提到了各种激进的后台管理方法。

另一方面,还有一个非常重要的概念区别:多任务管理和后台管理是一回事吗?

早期,中国的安卓生态系统深受ios的影响。开发人员和用户都更倾向于理解“从多任务列表中删除应用程序卡”的行为,因为这样可以清除应用程序的后台进程。在上述特殊生态环境的影响下,这里移除的后台进程通常包括那些用于确保应用程序后台运行的可见进程、服务进程甚至前台进程。

Ios的任务管理方法|图:javi pérez

在酷酷的应用程序市场上,甚至有一些应用程序可以在原生android上实现类似的“划掉卡并停止运行”的效果。这表明ios的后台管理理念是如何深深扎根于中国人民的心中。

然而,这种后台管理的概念与谷歌针对安卓的多任务管理设计背道而驰。谷歌一直称安卓手机上调用任务卡的界面为“最近”。android系统的最新版本甚至将其本地化为“概述”。结合谷歌在android 9和android 10之间手势交互的变化,关注多任务管理而不是后台管理的意图变得越来越明显。

当最近运行的应用程序以卡片的形式呈现给我们时,谷歌希望呈现一个多任务交互,允许我们在不同任务之间快速切换。在理想状态下,后台管理由系统处理,根本不应该被用户察觉。

至于如何理性看待安卓平台的后台管理,我们不妨用绿色卫士开发者@oasisfeng关于“安卓多任务界面的划分与互动”的问答来回答这个问题:

安卓自8.0版以来,已经大大调整了应用程序的后台控制策略...原则上,只要android 8+应用程序被修改,它就不能继续在后台占用内存...至于功耗,这是一个需要平衡的权衡。如果你真的需要应用程序的后台机制,你必须让它消耗一点能量(你不能让马跑得快,让马不吃草)。如果您根本不需要它的后台机制,或者它的后台功耗太高,那么您可以在应用程序设置中限制应用程序的后台功能(非本机系统可能不一定有此选项)。总之,你不需要“扼杀应用程序”或者担心这些愚蠢的事情。

随着本月早些时候安卓10的正式发布,这种专注于多任务管理并将后台管理的主动权归还给系统的理念将得到进一步加强——谷歌将不再允许预装安卓10的手机通过清除多任务卡来终止后台进程,这一要求也被添加到谷歌的cts认证流程中。

换句话说,在海外市场需要谷歌服务的绝大多数手机将来都必须满足这一要求。

摘要

就在上周三(9月25日),酝酿已久的安卓统一推送联盟正式宣布,已收到华为、oppo、One Plus和realme的进度确认。尽管谷歌的缺席也让中国的安卓生态系统变得极其复杂,但中国安卓设备上的统一推送服务最终迈出了具有现实意义的第一步。

只是要改变人们对安卓“幕后杀戮”的看法还有很长的路要走。事实上,早在四五年前,中国就有一个关于安卓是否需要“杀后台”的科普问题,但收效甚微,盲目跟随ios设计风格和交互逻辑的国内安卓制造商应该承担很大一部分责任。

我希望一个可靠节能的统一推送系统能够成为改进的第一步。我也希望@oasisfeng口中的理想化生态能尽快到来,它甚至能在设备重启时恢复“背景状态”。就目前而言,我们只能看到动作,并拉出动作。当应用程序无法正常执行后台任务时,打开手机设置,仔细搜索和设置,将它们放入白名单或在它们的背景卡上设置“锁定”...

下载并安装了非白名单应用程序后,我们如何确保它不会“在后台被杀死”?欢迎与评论区的每个人分享您的设置方法。

时时乐走势图 云南快乐十分 手机买彩票 pk10游戏


上一篇:再见,北京这座百年机场!南苑机场即将关闭民用航空
下一篇:邮报:若惨败给利物浦,索肖担心自己的帅位可能不保

Copyright 2018-2019 italkgo.com 裴圩新闻网 Inc. All Rights Reserved.