以下代码添加至ActivityManagerService 的 dump 方法:
if(args.length>=1 && args[0].equals("a3")){
int i=1;
List<ActivityManager.RunningTaskInfo> tasks = mActivityTaskManager.getTasks(1000);
for(ActivityManager.RunningTaskInfo a : tasks)
{
pw.println("Task:"+i++);
pw.println(" taskId " + a.taskId);
pw.println(" numActivities :" + a.numActivities);
pw.println(" topActivity :" + a.topActivity);
pw.println(" baseActivity :" + a.baseActivity);
pw.println();
}
return ;
}
if(args.length>=2 && args[0].equals("a4")){
mActivityTaskManager.removeTask(Integer.parseInt(args[1]));
int i=1;
List<ActivityManager.RunningTaskInfo> tasks = mActivityTaskManager.getTasks(1000);
for(ActivityManager.RunningTaskInfo a : tasks)
{
pw.println("Task:"+i++);
pw.println(" taskId " + a.taskId);
pw.println(" numActivities :" + a.numActivities);
pw.println(" topActivity :" + a.topActivity);
pw.println(" baseActivity :" + a.baseActivity);
pw.println();
}
return ;
}
运行:
adb shell dumpsys activity a3
adb shell dumpsys activity a4 50
其中50为对应的taskid。