思路如下:
ActivityManagerService 的变量 mProcessList.mLruProcesses 保存了所有的进程ProcessRecord 信息,
循环打印即可。
以下代码添加在 ActivityManagerService 的 dump 方法里面 :
if(args.length>=1 && args[0].equals("a0")){
pw.println("pid processName lastActivityTime systemNoUi empty startTime ");
for (int i=0; i<mProcessList.mLruProcesses.size(); i++) {
final ProcessRecord proc = mProcessList.mLruProcesses.get(i);
pw.print(proc.pid+ " "+proc.processName +" "+proc.lastActivityTime);
pw.print(" "+proc.hasShownUi);
pw.print(" "+proc.systemNoUi);
pw.print(" "+proc.empty);
pw.print(" "+proc.startTime);
pw.println();
}
return ;
}
编译安装之后, 就可以使用下面的指令来调用 :
adb shell dumpsys activity a0
结果就不展示了 。