0

当我使用 getRunningProcesses() 时,我得到了大约 20~30 个进程。

但是,当我在 Android 终端中使用 TOP 命令时,我看到了 80 多个进程。我发现“root”拥有的一些进程的内存消耗为零。

造成差异的原因是什么?TOP 发现的某些进程当前是否未运行?

4

2 回答 2

1

top显示操作系统上运行的所有进程。而 ActivityManager.getRunningAppProcesses仅显示由 Android 启动的进程。

Root拥有的进程通常由linux内核启动用于事件处理,而返回的进程ActivityManager.getRunningAppProcesses只有Android框架启动的进程

于 2013-01-29T19:08:45.340 回答
0

Android 运行很多服务。那些您不想关闭的服务,因为 Android 需要它们运行。以下是有关服务的更多信息:

  • 服务不是一个单独的进程。Service 对象本身并不意味着它在自己的进程中运行;除非另有说明,否则它在与其所属的应用程序相同的进程中运行。
  • 服务不是线程。它本身并不是一种脱离主线程工作的方法(以避免应用程序无响应错误)。

另请阅读Android 开发人员 - 进程和线程

于 2013-01-27T13:37:53.007 回答