添加以下方法:
com.android.server.wm.ActivityTaskManagerService#dumpTaskForId
public void dumpTaskForId(PrintWriter pw, int taskId) {
Task task = mRootWindowContainer.anyTaskForId(taskId);
task.forAllActivities((r) -> {
pw.println(" "+ r.mActivityComponent);
});
}
然后在这里调用它 :
com.android.server.utils.PriorityDump.PriorityDumper#dump
if(args.length>=2 && args[0].equals("a6")){
mActivityTaskManager.dumpTaskForId(pw,Integer.parseInt(args[1]));
return ;
}
执行如下指令:
adb shell dumpsys activity a6 62
这里的62是taskid 。
打印如下:
ComponentInfo{com.example.test2/com.example.test2.Activity3}
ComponentInfo{com.example.test2/com.example.test2.Alert}
ComponentInfo{com.example.test2/com.example.test2.SecondActivity}
所以我们要重点研究 RootWindowContainer。