Android普通应用切到后台后,多长时间会被系统回收 - 教程

news/2025/9/22 8:57:04/文章来源:https://www.cnblogs.com/wzzkaifa/p/19104519

了解 Android 应用在后台的回收机制,能帮助大家更好地理解应用的行为。简单来说,Android 普通应用切换到后台后,并没有一个固定的回收时间。其回收完全取决于架构当前的内存压力和应用的优先级。

回收时间不是一个定时器,而是由体系根据当前可用内存的紧张程度和应用进程的重要性(优先级) 动态决定的。
系统内存充足时,你的应用可能在后台存活很久;而内存紧张时,高优先级的应用会更晚被回收。

详细解释:
影响回收时间的因素非常多,首要包括:

设备物理内存(RAM)大小:内存越小的设备,系统越激进,后台应用存活时间越短。

当前系统内存压力:用户同时运行的应用越多,系统内存越紧张,回收越快。

应用进程的优先级(最重要因素):

前台进程 (Foreground Process):用户正在交互的App(如正在使用的Activity、前台Service)。几乎不会被回收,除非内存极端不足。

可见进程 (Visible Process):不在前台但仍对用户可见(如一个Activity上弹出一个非全屏的对话框)。优先级很高,不易被回收。

服务进程 (Service Process):托管了已启动服务的应用(如正在播放音乐的后台服务)。优先级中等,内存紧张时会被回收。

“普通应用”切后台后最常见的状态,优先级最低,最先被回收。就是后台进程 (Cached/Background Process):完全进入后台,没有任何活跃组件(Activity完全不可见,Service已停止)。这

空进程 (Empty Process):不囊括任何活跃组件的缓存进程,保留它只是为了下次启动更快。最先被回收。

厂商定制(非常重要):不同手机厂商(如华为、小米、OPPO、vivo)都有自己的省电策略和后台管理机制。它们可能会比原生Android框架更激进地杀死后台进程以节省电量,这会导致你的应用在后台存活时间大大缩短,甚至几分钟内就被“清理”。

总结一下时间范围:一个纯粹的后台进程(没有任何服务等活跃组件),在内存充足的旗舰机上可能存活几小时甚至更久,但在内存紧张的中低端机或受到厂商省电策略影响时,可能几分钟到半小时内就会被回收。

⚙️ 回收机制与负责模块

是体系的哪个模块负责回收?
关键负责回收应用进程的模块是 Linux内核中的 Low Memory Killer (LMK) 驱动。

但整个决策流程是由 用户空间的系统服务 ActivityManagerService (AMS) 和 LMK 协同工作完成的。

ActivityManagerService (AMS):

归属:frameworks/base/services/core/java/com/android/server/am/

职责:它是Android系统管理的“大脑”。它负责管理四大组件(Activity, Service, BroadcastReceiver, ContentProvider)的生命周期,并维护所有应用进程的优先级列表(OOM_ADJ)。

它决定“该杀谁”。AMS会根据应用组件的状态(如是否有Activity可见、是否有Service在运行)动态计算每个进程的 oom_adj_score(Out Of Memory Adjustment值)。这个分数值越高,进程优先级越低,越容易被杀。

Low Memory Killer (LMK) 驱动:

归属:Linux内核的一部分(通常是 drivers/staging/android/lowmemorykiller.c 或类似路径)。

职责:它监听内核的内存压力事件。当系统可用内存降到某个阈值时,它被触发。

它负责“动手”。LMK会检查AMS预先设置好的oom_adj分数阈值,然后找到分数高于阈值且分数最高的进程(即优先级最低的进程),将其杀死,释放其占用的内存。

关系可以便捷理解为:

AMS 是 法官,它根据法律(优先级规则)给每个犯人(进程)判刑(贴上oom_adj标签)。

LMK 是 刽子手,它会在资源不足(饥荒)时,根据法官设定的处决标准(阈值),从刑期最重(oom_adj分数最高)的犯人开始处决。

Android 的进程回收重要涉及两个层次:

  1. Application Framework 层:负责管理应用组件的生命周期(如 Activity、Service),并在适当时机通知内核层某个进程可以被回收。
  2. Linux 内核层:这是实际执行进程回收(杀死) 的“执法部门”,其核心是 Low Memory Killer (LMK) 驱动。LMK 基于 Linux 内核的 OOM Killer 机制,但针对移动设备的特点进行了优化。

回收流程

通过回收流程能够概括为:分层评估 + 按需回收。下图描绘了一个应用从进入后台到可能被回收的历程,以及体系中各模块的分工:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

变分法和欧拉-拉格朗日方程 - Emi

基本概念函数(function):函数是一种映射,输入一个数,输出一个数。 泛函(functional):泛函也是一种映射,输入一个函数,输出一个数。故我们可以说泛函是函数的函数。 微分(derivation):微分是函数的”输入和…

【Android】View 的滑动 - 实践

【Android】View 的滑动 - 实践2025-09-22 08:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

AT_arc194_d [ARC194D] Reverse Brackets

考虑将包含关系建出一棵树,那么答案相当于你可以重排儿子,相同大小儿子不区分,问能得到多少种树的形态。 简单用树哈希做就好了。

2025.9.22——1橙

普及- P10376 [GESP202403 六级] 游戏 很简单的DP,但要注意数组偏移,把负数也存进去。

huggingface.co 无法访问

Ping查询结果: huggingface.co 查询时间:2025-09-22 08:46:27

202403_QQ_brutezip

流量分析,文件分离,ZIP文件,掩码爆破Tags:流量分析,文件分离,ZIP,掩码爆破 0x00. 题目 题目表述 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202403_QQ_brut…

实用指南:Vue开发准备

实用指南:Vue开发准备pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

完整教程:WPF 程序用户权限模块利用MarkupExtension实现控制控件显示

完整教程:WPF 程序用户权限模块利用MarkupExtension实现控制控件显示2025-09-22 08:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto…

私有外设总线PPB(Private Peripheral Bus) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

enrichmcp 构建数据驱动mcp的框架

enrichmcp 构建数据驱动mcp的框架enrichmcp 构建数据驱动mcp的框架 包含的特性通过数据模型生成类型工具 处理实体关系 处理schema 发现 通过pydantic 模型进行input 以及output 校验 支持database,api,自定义逻辑 支…

完整教程:visual studio快捷键

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AppSpider 7.5.020 for Windows - Web 应用程序安全测试

AppSpider 7.5.020 for Windows - Web 应用程序安全测试AppSpider 7.5.020 for Windows - Web 应用程序安全测试 Rapid7 Dynamic Application Security Testing (DAST) released Sep 2025 请访问原文链接:https://sys…

上周热点回顾(9.15

热点随笔:为什么不建议在 Docker 中跑 MySQL? (苏三说技术) C# 2025年6-9月TIOBE排名增长及未来展望 (张善友) 重要:Java25正式发布(长期支持版)! (磊哥|www.javacn.site) 刚刚 Java 25 炸裂发布!让 Java 再次…

“学术造神”何时休?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087这个时代的学术圈,正在上演一场盛大的滑稽剧:实验室里产出的不再…

vLLM 核心机密:大模型推理引擎内部长啥样?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087vLLM Offcie Hours #32 又披露了一批新技术。其中有两个比较特殊,…

华为销量下滑OV米荣迎来窗口期

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087一、华为手机销量阶段性下滑以下是全国全渠道销量份额(不包含智选…

【GitHub每日速递 250922】开源 AI 搜索引擎 Perplexica:本地大模型 + 多模式搜索,免费又强大!

原文: https://mp.weixin.qq.com/s/F7KwZlUd5OQg5CbAEbZGug MarkItDown:多格式文件转Markdown神器,助力LLM文本分析! markitdown 是一个将文件和办公文档转换为 Markdown 的工具。简单讲,它能帮你把 Word、Excel 等…

coze工作流实战——三分钟读一本名著

导航前言 作品展示 工作流展示 操作步骤 结语 参考前言2025年被行业认为是智能体(Agent)元年。过去几年,我们见证了AI 大模型的飞速发展,从只会简单回答问题,简单生成图文,到可以写代码,生成复杂视频,甚至可以…

大厂是怎么识别“高潜员工”的?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087大部分人都想当“高潜员工”,包括我,因为高潜员工意味着更好的机…

读人形机器人19后劳动经济

读人形机器人19后劳动经济1. 后劳动经济 1.1. 后劳动经济不仅仅是一个理论上的概念,它是AI、机器人技术和自动化技术融合的潜在现实 1.2. 核心设想是一个由机器人完成大部分工作的社会,使得人类劳动在经济生产中变得…