TaskManager 中文文档 下载 App

进程级内存占用与 OOM — 谁在独占大内存

PSS vs RSS — 为什么 TaskManager 用 PSS

一个应用的内存不是全部独占的。比如微信和 QQ 都用了 Android Runtime (ART) 虚拟机的共享库,这份内存被两个进程共享。

TaskManager 的进程详情和 RAM 面板用的是 PSS,比 RSS 更能反映一个应用独占的内存成本。

进程详情里的内存字段

点开任意进程的详情页,你会看到和内存相关的几个条目:

字段含义
Memory (PSS)该进程的 PSS 值,TaskManager 用这个排序
Memory (RSS)该进程的 RSS 值,包含全部共享内存
Threads进程的线程数,线程泄漏会导致线程数异常高
Priority (Nice)调度优先级,默认 0,数字越小优先级越高

什么是 OOM Killer

OOM(Out Of Memory)Killer 是 Linux 内核的内存保护机制。当系统物理内存真的用光了,内核会选择一个进程杀掉来释放内存。

TaskManager 本身不直接告诉你 OOM Killer 有没有杀过进程,但你可以通过 RAM 面板的两个迹象间接判断:

迹象一:可用内存持续低于 10%

当可用内存长时间低于总内存的 10%(比如 12GB 手机可用不到 1.2GB),OOM Killer 随时可能被触发。这时你的手机会表现为:切应用要重新加载、后台频繁被杀、收到系统通知「内存不足」。

迹象二:Swap 使用量持续升高

系统开始疯狂往 Swap 里压缩内存,说明物理内存真的顶不住了。Swap 用得越多,手机会越卡(因为读压缩内存比读物理 RAM 慢得多)。

实操建议

  1. 切到 RAM 面板,看进程列表前 3 名的 PSS
  2. 如果某几个是游戏/浏览器/社交应用,切到它们的进程详情确认
  3. 用 TaskManager 的 Force Stop 结束不需要挂后台的进程
  4. 同时去系统设置里把这些应用的「后台启动」和「自启动」关掉——杀进程只是治标,不让它自己回来才是治本

下一步

内存这边搞清楚了,切到 GPU 面板。

GPU 占用曲线与帧率