android 13 WMS/AMS系统开发-窗口层级相关Task/ActivityRecord/WindowState/WindowToken放置图层创建 第三节

93 篇文章 58 订阅
45 篇文章 54 订阅

hi,粉丝朋友大家好!
上几集已经给大家讲解了如何构建出0-36层的层级树及相关源码分析,这节来分析离我们最近的Task/ActivityRecord/WindowToken/WindowState/等是怎么添加到这个层级树里面去的。
更多内容qqun:422901085 https://ke.qq.com/course/5992266#term_id=106217431
先来看看最后对应的结构树图:
在这里插入图片描述

标记有颜色的就是我们今天要重点源码分析的,主要分为2个部分:

1、Task的加入部分
2、普通的WindowToken加入
因为相对来说ActivityRecord部分比其他WindowToken的多了一个Task
堆栈代码加入:
在这里插入图片描述

在WindowContainer加入堆栈打印来追踪:

Line  44013: 02-23 14:36:19.116   565   565 I test2   : DefaultTaskDisplayArea@243571827 addChild child = Task{a13d730 #1 type=home ?? U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}
	Line  44014: 02-23 14:36:19.116   565   565 I test2   : java.lang.Exception
	Line  44015: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line  44016: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChildTask(TaskDisplayArea.java:334)
	Line  44017: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChild(TaskDisplayArea.java:320)
	Line  44018: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.Task$Builder.build(Task.java:6551)
	Line  44019: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.TaskDisplayArea.createRootTask(TaskDisplayArea.java:1066)
	Line  44020: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.TaskDisplayArea.createRootTask(TaskDisplayArea.java:1040)
	Line  44021: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.TaskDisplayArea.getOrCreateRootHomeTask(TaskDisplayArea.java:1640)
	Line  44022: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.setWindowManager(RootWindowContainer.java:1321)
	Line  44023: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.setWindowManager(ActivityTaskManagerService.java:1006)
	Line  44024: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.am.ActivityManagerService.setWindowManager(ActivityManagerService.java:1923)
	Line  44025: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.SystemServer.startOtherServices(SystemServer.java:1595)
	Line  44026: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.SystemServer.run(SystemServer.java:939)
	Line  44027: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.server.SystemServer.main(SystemServer.java:649)
	Line  44028: 02-23 14:36:19.116   565   565 I test2   : 	at java.lang.reflect.Method.invoke(Native Method)
	Line  44029: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	Line  44030: 02-23 14:36:19.116   565   565 I test2   : 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:914)
	Line 121322: 02-23 14:36:22.676   565   565 I test2   : Task{a13d730 #1 type=home ?? U=0 visible=true visibleRequested=false mode=fullscreen translucent=true sz=0} addChild Comparator child = Task{63f31d4 #2 type=undefined A=1000:com.android.settings.FallbackHome U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}
	Line 121323: 02-23 14:36:22.676   565   565 I test2   : java.lang.Exception
	Line 121324: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 121325: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.Task.addChild(Task.java:5935)
	Line 121326: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.Task.-$$Nest$maddChild(Unknown Source:0)
	Line 121327: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.Task$Builder.build(Task.java:6548)
	Line 121328: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.Task.reuseOrCreateTask(Task.java:5819)
	Line 121329: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.setNewTask(ActivityStarter.java:2872)
	Line 121330: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityInner(ActivityStarter.java:1864)
	Line 121331: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1661)
	Line 121332: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1216)
	Line 121333: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:702)
	Line 121334: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.ActivityStartController.startHomeActivity(ActivityStartController.java:179)
	Line 121335: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnTaskDisplayArea(RootWindowContainer.java:1493)
	Line 121336: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.lambda$startHomeOnDisplay$12$com-android-server-wm-RootWindowContainer(RootWindowContainer.java:1434)
	Line 121337: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer$$ExternalSyntheticLambda7.apply(Unknown Source:16)
	Line 121338: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.TaskDisplayArea.reduceOnAllTaskDisplayAreas(TaskDisplayArea.java:513)
	Line 121339: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121340: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121341: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121342: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121343: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121344: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.WindowContainer.reduceOnAllTaskDisplayAreas(WindowContainer.java:2283)
	Line 121345: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnDisplay(RootWindowContainer.java:1433)
	Line 121346: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnDisplay(RootWindowContainer.java:1420)
	Line 121347: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnAllDisplays(RootWindowContainer.java:1405)
	Line 121348: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.wm.ActivityTaskManagerService$LocalService.startHomeOnAllDisplays(ActivityTaskManagerService.java:5892)
	Line 121349: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.am.ActivityManagerService.systemReady(ActivityManagerService.java:8203)
	Line 121350: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.SystemServer.startOtherServices(SystemServer.java:2801)
	Line 121351: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.SystemServer.run(SystemServer.java:939)
	Line 121352: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.server.SystemServer.main(SystemServer.java:649)
	Line 121353: 02-23 14:36:22.676   565   565 I test2   : 	at java.lang.reflect.Method.invoke(Native Method)
	Line 121354: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	Line 121355: 02-23 14:36:22.676   565   565 I test2   : 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:914)
	Line 121591: 02-23 14:36:22.681   565   565 I test2   : Task{63f31d4 #2 type=undefined A=1000:com.android.settings.FallbackHome U=0 rootTaskId=1 visible=true visibleRequested=false mode=fullscreen translucent=true sz=0} addChild child = ActivityRecord{983a135 u0 com.android.settings/.FallbackHome}
	Line 121592: 02-23 14:36:22.681   565   565 I test2   : java.lang.Exception
	Line 121593: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 121594: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.TaskFragment.addChild(TaskFragment.java:1835)
	Line 121595: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.Task.addChild(Task.java:1429)
	Line 121596: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.addOrReparentStartingActivity(ActivityStarter.java:2927)
	Line 121597: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.setNewTask(ActivityStarter.java:2877)
	Line 121598: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityInner(ActivityStarter.java:1864)
	Line 121599: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1661)
	Line 121600: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1216)
	Line 121601: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:702)
	Line 121602: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityStartController.startHomeActivity(ActivityStartController.java:179)
	Line 121603: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnTaskDisplayArea(RootWindowContainer.java:1493)
	Line 121604: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.lambda$startHomeOnDisplay$12$com-android-server-wm-RootWindowContainer(RootWindowContainer.java:1434)
	Line 121605: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer$$ExternalSyntheticLambda7.apply(Unknown Source:16)
	Line 121606: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.TaskDisplayArea.reduceOnAllTaskDisplayAreas(TaskDisplayArea.java:513)
	Line 121607: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121608: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121609: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121610: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121611: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.DisplayArea.reduceOnAllTaskDisplayAreas(DisplayArea.java:404)
	Line 121612: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.WindowContainer.reduceOnAllTaskDisplayAreas(WindowContainer.java:2283)
	Line 121613: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnDisplay(RootWindowContainer.java:1433)
	Line 121614: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnDisplay(RootWindowContainer.java:1420)
	Line 121615: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.RootWindowContainer.startHomeOnAllDisplays(RootWindowContainer.java:1405)
	Line 121616: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.wm.ActivityTaskManagerService$LocalService.startHomeOnAllDisplays(ActivityTaskManagerService.java:5892)
	Line 121617: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.am.ActivityManagerService.systemReady(ActivityManagerService.java:8203)
	Line 121618: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.SystemServer.startOtherServices(SystemServer.java:2801)
	Line 121619: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.SystemServer.run(SystemServer.java:939)
	Line 121620: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.server.SystemServer.main(SystemServer.java:649)
	Line 121621: 02-23 14:36:22.681   565   565 I test2   : 	at java.lang.reflect.Method.invoke(Native Method)
	Line 121622: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	Line 121623: 02-23 14:36:22.681   565   565 I test2   : 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:914)
	Line 130729: 02-23 14:36:23.276   565   627 I test2   : ActivityRecord{983a135 u0 com.android.settings/.FallbackHome} t2} addChild Comparator child = Window{ae9b359 u0 com.android.settings/com.android.settings.FallbackHome}
	Line 130730: 02-23 14:36:23.276   565   627 I test2   : java.lang.Exception
	Line 130731: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 130732: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 130733: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.ActivityRecord.addWindow(ActivityRecord.java:4212)
	Line 130734: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 130735: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 130736: 02-23 14:36:23.276   565   627 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 130737: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 130738: 02-23 14:36:23.276   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 130739: 02-23 14:36:23.276   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 131587: 02-23 14:36:23.439   565   582 I test2   : DefaultTaskDisplayArea@243571827 addChild child = Task{6d173bf #3 type=undefined ?? U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}
	Line 131588: 02-23 14:36:23.439   565   582 I test2   : java.lang.Exception
	Line 131589: 02-23 14:36:23.439   565   582 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 131590: 02-23 14:36:23.439   565   582 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChildTask(TaskDisplayArea.java:334)
	Line 131591: 02-23 14:36:23.439   565   582 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChild(TaskDisplayArea.java:320)
	Line 131592: 02-23 14:36:23.439   565   582 I test2   : 	at com.android.server.wm.Task$Builder.build(Task.java:6551)
	Line 131593: 02-23 14:36:23.439   565   582 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:662)
	Line 131594: 02-23 14:36:23.439   565   582 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:641)
	Line 131595: 02-23 14:36:23.439   565   582 I test2   : 	at android.window.ITaskOrganizerController$Stub.onTransact(ITaskOrganizerController.java:211)
	Line 131596: 02-23 14:36:23.439   565   582 I test2   : 	at com.android.server.wm.TaskOrganizerController.onTransact(TaskOrganizerController.java:342)
	Line 131597: 02-23 14:36:23.439   565   582 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 131598: 02-23 14:36:23.439   565   582 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 132441: 02-23 14:36:23.673   565   582 I test2   : DefaultTaskDisplayArea@243571827 addChild child = Task{572ca1 #4 type=undefined ?? U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}
	Line 132442: 02-23 14:36:23.673   565   582 I test2   : java.lang.Exception
	Line 132443: 02-23 14:36:23.673   565   582 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 132444: 02-23 14:36:23.673   565   582 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChildTask(TaskDisplayArea.java:334)
	Line 132445: 02-23 14:36:23.673   565   582 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChild(TaskDisplayArea.java:320)
	Line 132446: 02-23 14:36:23.673   565   582 I test2   : 	at com.android.server.wm.Task$Builder.build(Task.java:6551)
	Line 132447: 02-23 14:36:23.673   565   582 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:662)
	Line 132448: 02-23 14:36:23.673   565   582 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:641)
	Line 132449: 02-23 14:36:23.673   565   582 I test2   : 	at android.window.ITaskOrganizerController$Stub.onTransact(ITaskOrganizerController.java:211)
	Line 132450: 02-23 14:36:23.673   565   582 I test2   : 	at com.android.server.wm.TaskOrganizerController.onTransact(TaskOrganizerController.java:342)
	Line 132451: 02-23 14:36:23.673   565   582 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 132452: 02-23 14:36:23.673   565   582 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 132579: 02-23 14:36:23.681   565   627 I test2   : DefaultTaskDisplayArea@243571827 addChild child = Task{ecd7f95 #5 type=undefined ?? U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}
	Line 132580: 02-23 14:36:23.681   565   627 I test2   : java.lang.Exception
	Line 132581: 02-23 14:36:23.681   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 132582: 02-23 14:36:23.681   565   627 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChildTask(TaskDisplayArea.java:334)
	Line 132583: 02-23 14:36:23.681   565   627 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChild(TaskDisplayArea.java:320)
	Line 132584: 02-23 14:36:23.681   565   627 I test2   : 	at com.android.server.wm.Task$Builder.build(Task.java:6551)
	Line 132585: 02-23 14:36:23.681   565   627 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:662)
	Line 132586: 02-23 14:36:23.681   565   627 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:641)
	Line 132587: 02-23 14:36:23.681   565   627 I test2   : 	at android.window.ITaskOrganizerController$Stub.onTransact(ITaskOrganizerController.java:211)
	Line 132588: 02-23 14:36:23.681   565   627 I test2   : 	at com.android.server.wm.TaskOrganizerController.onTransact(TaskOrganizerController.java:342)
	Line 132589: 02-23 14:36:23.681   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 132590: 02-23 14:36:23.681   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 132956: 02-23 14:36:23.694   565   627 I test2   : DefaultTaskDisplayArea@243571827 addChild child = Task{47b0380 #6 type=undefined ?? U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}
	Line 132957: 02-23 14:36:23.694   565   627 I test2   : java.lang.Exception
	Line 132958: 02-23 14:36:23.694   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 132959: 02-23 14:36:23.694   565   627 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChildTask(TaskDisplayArea.java:334)
	Line 132960: 02-23 14:36:23.694   565   627 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChild(TaskDisplayArea.java:320)
	Line 132961: 02-23 14:36:23.694   565   627 I test2   : 	at com.android.server.wm.Task$Builder.build(Task.java:6551)
	Line 132962: 02-23 14:36:23.694   565   627 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:662)
	Line 132963: 02-23 14:36:23.694   565   627 I test2   : 	at com.android.server.wm.TaskOrganizerController.createRootTask(TaskOrganizerController.java:641)
	Line 132964: 02-23 14:36:23.694   565   627 I test2   : 	at android.window.ITaskOrganizerController$Stub.onTransact(ITaskOrganizerController.java:211)
	Line 132965: 02-23 14:36:23.694   565   627 I test2   : 	at com.android.server.wm.TaskOrganizerController.onTransact(TaskOrganizerController.java:342)
	Line 132966: 02-23 14:36:23.694   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 132967: 02-23 14:36:23.694   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 135188: 02-23 14:36:23.806   565   917 I test2   : WindowToken{441cfb3 type=2038 android.os.BinderProxy@b7ed012} addChild Comparator child = Window{c50e0b1 u0 ShellDropTarget}
	Line 135189: 02-23 14:36:23.806   565   917 I test2   : java.lang.Exception
	Line 135190: 02-23 14:36:23.806   565   917 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 135191: 02-23 14:36:23.806   565   917 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 135192: 02-23 14:36:23.806   565   917 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 135193: 02-23 14:36:23.806   565   917 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 135194: 02-23 14:36:23.806   565   917 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 135195: 02-23 14:36:23.806   565   917 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 135196: 02-23 14:36:23.806   565   917 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 135197: 02-23 14:36:23.806   565   917 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 142014: 02-23 14:36:17.668   565   627 I test2   : WindowToken{1d09304 type=2024 android.os.BinderProxy@82f6cca} addChild Comparator child = Window{bb200ed u0 ScreenDecorOverlay}
	Line 142015: 02-23 14:36:17.668   565   627 I test2   : java.lang.Exception
	Line 142016: 02-23 14:36:17.668   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 142017: 02-23 14:36:17.668   565   627 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 142018: 02-23 14:36:17.668   565   627 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 142019: 02-23 14:36:17.668   565   627 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 142020: 02-23 14:36:17.668   565   627 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 142021: 02-23 14:36:17.668   565   627 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 142022: 02-23 14:36:17.668   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 142023: 02-23 14:36:17.668   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 143514: 02-23 14:36:17.815   565   627 I test2   : WindowToken{ebdfca9 type=2024 android.os.BinderProxy@eb5be56} addChild Comparator child = Window{d96422e u0 ScreenDecorOverlayBottom}
	Line 143515: 02-23 14:36:17.815   565   627 I test2   : java.lang.Exception
	Line 143516: 02-23 14:36:17.815   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 143517: 02-23 14:36:17.815   565   627 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 143518: 02-23 14:36:17.815   565   627 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 143519: 02-23 14:36:17.815   565   627 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 143520: 02-23 14:36:17.815   565   627 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 143521: 02-23 14:36:17.815   565   627 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 143522: 02-23 14:36:17.815   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 143523: 02-23 14:36:17.815   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 187123: 02-23 14:36:19.865   565   914 I test2   : WindowToken{ddad912 type=2019 android.os.BinderProxy@fa6276b} addChild Comparator child = Window{a3e18e3 u0 NavigationBar0}
	Line 187124: 02-23 14:36:19.865   565   914 I test2   : java.lang.Exception
	Line 187125: 02-23 14:36:19.865   565   914 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 187126: 02-23 14:36:19.865   565   914 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 187127: 02-23 14:36:19.865   565   914 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 187128: 02-23 14:36:19.865   565   914 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 187129: 02-23 14:36:19.865   565   914 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 187130: 02-23 14:36:19.865   565   914 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 187131: 02-23 14:36:19.865   565   914 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 187132: 02-23 14:36:19.865   565   914 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 188254: 02-23 14:36:19.953   565   627 I test2   : WindowToken{df66140 type=2040 android.os.BinderProxy@8cb6241} addChild Comparator child = Window{b091879 u0 NotificationShade}
	Line 188255: 02-23 14:36:19.953   565   627 I test2   : java.lang.Exception
	Line 188256: 02-23 14:36:19.953   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 188257: 02-23 14:36:19.953   565   627 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 188258: 02-23 14:36:19.953   565   627 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 188259: 02-23 14:36:19.953   565   627 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 188260: 02-23 14:36:19.953   565   627 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 188261: 02-23 14:36:19.953   565   627 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 188262: 02-23 14:36:19.953   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 188263: 02-23 14:36:19.953   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 189558: 02-23 14:36:19.973   565   627 I test2   : WindowToken{ea411e9 type=2000 android.os.BinderProxy@46a0296} addChild Comparator child = Window{c86ce6e u0 StatusBar}
	Line 189559: 02-23 14:36:19.973   565   627 I test2   : java.lang.Exception
	Line 189560: 02-23 14:36:19.973   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 189561: 02-23 14:36:19.973   565   627 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 189562: 02-23 14:36:19.973   565   627 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 189563: 02-23 14:36:19.973   565   627 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 189564: 02-23 14:36:19.973   565   627 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 189565: 02-23 14:36:19.973   565   627 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 189566: 02-23 14:36:19.973   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 189567: 02-23 14:36:19.973   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 192046: 02-23 14:36:20.229   565   914 I test2   : Task{572ca1 #4 type=undefined ?? U=0 visible=false visibleRequested=false mode=fullscreen translucent=true sz=0} addChild child = Task{ecd7f95 #5 type=undefined ?? U=0 visible=false visibleRequested=false mode=multi-window translucent=true sz=0}
	Line 192047: 02-23 14:36:20.229   565   914 I test2   : java.lang.Exception
	Line 192048: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 192049: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.TaskFragment.addChild(TaskFragment.java:1835)
	Line 192050: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.Task.addChild(Task.java:1429)
	Line 192051: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowContainer.reparent(WindowContainer.java:539)
	Line 192052: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.Task.reparent(Task.java:2597)
	Line 192053: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.sanitizeAndApplyHierarchyOp(WindowOrganizerController.java:1067)
	Line 192054: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyHierarchyOp(WindowOrganizerController.java:886)
	Line 192055: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:443)
	Line 192056: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:372)
	Line 192057: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:179)
	Line 192058: 02-23 14:36:20.229   565   914 I test2   : 	at android.window.IWindowOrganizerController$Stub.onTransact(IWindowOrganizerController.java:204)
	Line 192059: 02-23 14:36:20.229   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.onTransact(WindowOrganizerController.java:163)
	Line 192060: 02-23 14:36:20.229   565   914 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 192061: 02-23 14:36:20.229   565   914 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 192186: 02-23 14:36:20.231   565   914 I test2   : Task{572ca1 #4 type=undefined ?? U=0 visible=false visibleRequested=false mode=fullscreen translucent=true sz=1} addChild child = Task{47b0380 #6 type=undefined ?? U=0 visible=false visibleRequested=false mode=multi-window translucent=true sz=0}
	Line 192187: 02-23 14:36:20.231   565   914 I test2   : java.lang.Exception
	Line 192188: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 192189: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.TaskFragment.addChild(TaskFragment.java:1835)
	Line 192190: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.Task.addChild(Task.java:1429)
	Line 192191: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowContainer.reparent(WindowContainer.java:539)
	Line 192192: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.Task.reparent(Task.java:2597)
	Line 192193: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.sanitizeAndApplyHierarchyOp(WindowOrganizerController.java:1067)
	Line 192194: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyHierarchyOp(WindowOrganizerController.java:886)
	Line 192195: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:443)
	Line 192196: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:372)
	Line 192197: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:179)
	Line 192198: 02-23 14:36:20.231   565   914 I test2   : 	at android.window.IWindowOrganizerController$Stub.onTransact(IWindowOrganizerController.java:204)
	Line 192199: 02-23 14:36:20.231   565   914 I test2   : 	at com.android.server.wm.WindowOrganizerController.onTransact(WindowOrganizerController.java:163)
	Line 192200: 02-23 14:36:20.231   565   914 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 192201: 02-23 14:36:20.231   565   914 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 197740: 02-23 14:36:20.864   565   727 I test2   : WallpaperWindowToken{975f25a token=android.os.Binder@31c1850} addChild Comparator child = Window{81d7fa3 u0 com.android.systemui.ImageWallpaper}
	Line 197741: 02-23 14:36:20.864   565   727 I test2   : java.lang.Exception
	Line 197742: 02-23 14:36:20.864   565   727 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 197743: 02-23 14:36:20.864   565   727 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 197744: 02-23 14:36:20.864   565   727 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 197745: 02-23 14:36:20.864   565   727 I test2   : 	at com.android.server.wm.Session.addToDisplay(Session.java:199)
	Line 197746: 02-23 14:36:20.864   565   727 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:618)
	Line 197747: 02-23 14:36:20.864   565   727 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 197748: 02-23 14:36:20.864   565   727 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 197749: 02-23 14:36:20.864   565   727 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 198378: 02-23 14:36:20.970   565   914 I test2   : WindowToken{9de7f85 type=2024 android.os.BinderProxy@23d9793} addChild Comparator child = Window{47501da u0 pip-dismiss-overlay}
	Line 198379: 02-23 14:36:20.970   565   914 I test2   : java.lang.Exception
	Line 198380: 02-23 14:36:20.970   565   914 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 198381: 02-23 14:36:20.970   565   914 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 198382: 02-23 14:36:20.970   565   914 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 198383: 02-23 14:36:20.970   565   914 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 198384: 02-23 14:36:20.970   565   914 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 198385: 02-23 14:36:20.970   565   914 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 198386: 02-23 14:36:20.970   565   914 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 198387: 02-23 14:36:20.970   565   914 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 201889: 02-23 14:36:21.578   565   914 I test2   : DefaultTaskDisplayArea@243571827 addChild child = Task{4fbc455 #7 type=standard ?? U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}
	Line 201890: 02-23 14:36:21.578   565   914 I test2   : java.lang.Exception
	Line 201891: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 201892: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChildTask(TaskDisplayArea.java:334)
	Line 201893: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.TaskDisplayArea.addChild(TaskDisplayArea.java:320)
	Line 201894: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.Task$Builder.build(Task.java:6551)
	Line 201895: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.TaskDisplayArea.getOrCreateRootTask(TaskDisplayArea.java:1005)
	Line 201896: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.TaskDisplayArea.getOrCreateRootTask(TaskDisplayArea.java:1030)
	Line 201897: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.RootWindowContainer.getOrCreateRootTask(RootWindowContainer.java:2838)
	Line 201898: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.getOrCreateRootTask(ActivityStarter.java:3017)
	Line 201899: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityInner(ActivityStarter.java:1858)
	Line 201900: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1661)
	Line 201901: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1216)
	Line 201902: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:702)
	Line 201903: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1240)
	Line 201904: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1203)
	Line 201905: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1178)
	Line 201906: 02-23 14:36:21.578   565   914 I test2   : 	at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:893)
	Line 201907: 02-23 14:36:21.578   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.onTransact(ActivityTaskManagerService.java:5183)
	Line 201908: 02-23 14:36:21.578   565   914 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 201909: 02-23 14:36:21.578   565   914 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
	Line 202080: 02-23 14:36:21.584   565   914 I test2   : Task{4fbc455 #7 type=standard A=1000:com.android.settings U=0 visible=false visibleRequested=false mode=fullscreen translucent=true sz=0} addChild child = ActivityRecord{4d8c7a4 u0 com.android.settings/.sim.SimDialogActivity}
	Line 202081: 02-23 14:36:21.584   565   914 I test2   : java.lang.Exception
	Line 202082: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:727)
	Line 202083: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.TaskFragment.addChild(TaskFragment.java:1835)
	Line 202084: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.Task.addChild(Task.java:1429)
	Line 202085: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.addOrReparentStartingActivity(ActivityStarter.java:2927)
	Line 202086: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.setNewTask(ActivityStarter.java:2877)
	Line 202087: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityInner(ActivityStarter.java:1864)
	Line 202088: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1661)
	Line 202089: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1216)
	Line 202090: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:702)
	Line 202091: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1240)
	Line 202092: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1203)
	Line 202093: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1178)
	Line 202094: 02-23 14:36:21.584   565   914 I test2   : 	at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:893)
	Line 202095: 02-23 14:36:21.584   565   914 I test2   : 	at com.android.server.wm.ActivityTaskManagerService.onTransact(ActivityTaskManagerService.java:5183)
	Line 202096: 02-23 14:36:21.584   565   914 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 202097: 02-23 14:36:21.584   565   914 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)

home task创建:

日志比较多,大家可以拷贝到notepad进行观看,这里我们先重点关注home task相关:
结合以前dumpsys activity containers发现home task直接被TaskDisplayArea持有为孩子,这里可以明显看出Task{a13d730 #1 type=home 是在第一次创建WMS就已经创建好了,通过的是
TaskDisplayArea.getOrCreateRootHomeTask开始一直到
com.android.server.wm.WindowContainer.addChild

DefaultTaskDisplayArea@243571827 addChild child = Task{a13d730 #1 type=home ?? U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}

接下来 是home task加入一个具体Launcher的task,这里最开始当然是我们的FallbackHome

Task{a13d730 #1 type=home ?? U=0 visible=true visibleRequested=false mode=fullscreen translucent=true sz=0} addChild Comparator child = Task{63f31d4 #2 type=undefined A=1000:com.android.settings.FallbackHome U=0 visible=false visibleRequested=false mode=undefined translucent=true sz=0}

具体堆栈可以看出是ActivityManagerService.systemReady时候触发了ActivityTaskManagerService$LocalService.startHomeOnAllDisplays然后把HomeActivity拉起,由于此时还是加密状态,所以获取的的Home当然是setting的fallbackhome

com.android.server.wm.RootWindowContainer.startHomeOnAllDisplays(RootWindowContainer.java:1405)
com.android.server.wm.ActivityTaskManagerService$LocalService.startHomeOnAllDisplays(ActivityTaskManagerService.java:5892)
com.android.server.am.ActivityManagerService.systemReady(ActivityManagerService.java:8203)

再接下来是ActivityRecord的放入:

Task{63f31d4 #2 type=undefined A=1000:com.android.settings.FallbackHome U=0 rootTaskId=1 visible=true visibleRequested=false mode=fullscreen translucent=true sz=0} addChild child = ActivityRecord{983a135 u0 com.android.settings/.FallbackHome}

触这里和Task一样流程,都是因为ActivityStartController.startHomeActivity(ActivityStartController.java:179)导致:

在这里插入图片描述

WindowState的加入:

因为一般都是WindowToken来作为WindowState的父亲,ActivityRecord是WindowToken的子类:

ActivityRecord{983a135 u0 com.android.settings/.FallbackHome} t2} addChild Comparator child = Window{ae9b359 u0 com.android.settings/com.android.settings.FallbackHome}

这里是触发ActivityRecord加入WindowState,这个堆栈看明显是个应用端跨进程调用过来的,对这里也相对较熟悉,应用跨进程调用addToDisplayAsUser:

	Line 130730: 02-23 14:36:23.276   565   627 I test2   : java.lang.Exception
	Line 130731: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 130732: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 130733: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.ActivityRecord.addWindow(ActivityRecord.java:4212)
	Line 130734: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 130735: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 130736: 02-23 14:36:23.276   565   627 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 130737: 02-23 14:36:23.276   565   627 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 130738: 02-23 14:36:23.276   565   627 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 130739: 02-23 14:36:23.276   565   627 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)

其他WindowToken类型的加入

这里WindowContainer的addChild堆栈需要加入WindowToken的判断
在这里插入图片描述这里因为WindowToken的种类堆栈太多,这里就只以StatusBar为例写:

Leaf容器加入StatusBar的WindowToken

堆栈

Line 189151: 02-23 15:22:48.767   558   617 I test2   : Leaf:15:15@65133355 addChild Comparator child = WindowToken{9dd676f type=2000 android.os.BinderProxy@ce5e149}
	Line 189152: 02-23 15:22:48.767   558   617 I test2   : java.lang.Exception
	Line 189153: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 189154: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.DisplayArea$Tokens.addChild(DisplayArea.java:605)
	Line 189155: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.DisplayContent.addWindowToken(DisplayContent.java:1235)
	Line 189156: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.WindowToken.<init>(WindowToken.java:214)
	Line 189157: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.WindowToken$Builder.build(WindowToken.java:817)
	Line 189158: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1577)
	Line 189159: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 189160: 02-23 15:22:48.767   558   617 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 189161: 02-23 15:22:48.767   558   617 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 189162: 02-23 15:22:48.767   558   617 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 189163: 02-23 15:22:48.767   558   617 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)
02-23 15:22:48.767   558   617 I test2   : Leaf:15:15@65133355 addChild Comparator child = WindowToken{9dd676f type=2000 android.os.BinderProxy@ce5e149}
0

堆栈可以看出触发是由客户端的发起跨进程addToDisplayAsUser,会触发WindowManagerService.addWindow然后方法内会勾召一个新的WindowToken
在这里插入图片描述

WindowToken加入对应的StatusBar 的WindowState

堆栈

Line 189279: 02-23 15:22:48.773   558   617 I test2   : WindowToken{9dd676f type=2000 android.os.BinderProxy@ce5e149} addChild Comparator child = Window{b94d567 u0 StatusBar}
	Line 189280: 02-23 15:22:48.773   558   617 I test2   : java.lang.Exception
	Line 189281: 02-23 15:22:48.773   558   617 I test2   : 	at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:694)
	Line 189282: 02-23 15:22:48.773   558   617 I test2   : 	at com.android.server.wm.WindowToken.addWindow(WindowToken.java:302)
	Line 189283: 02-23 15:22:48.773   558   617 I test2   : 	at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1773)
	Line 189284: 02-23 15:22:48.773   558   617 I test2   : 	at com.android.server.wm.Session.addToDisplayAsUser(Session.java:209)
	Line 189285: 02-23 15:22:48.773   558   617 I test2   : 	at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:652)
	Line 189286: 02-23 15:22:48.773   558   617 I test2   : 	at com.android.server.wm.Session.onTransact(Session.java:175)
	Line 189287: 02-23 15:22:48.773   558   617 I test2   : 	at android.os.Binder.execTransactInternal(Binder.java:1280)
	Line 189288: 02-23 15:22:48.773   558   617 I test2   : 	at android.os.Binder.execTransact(Binder.java:1244)

这里从堆栈也可以看出来属于addToDisplayAsUser,只不过是发生再WindowToken已经创建,及WindowState也创建后,所以它相对执行肯定较晚

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值