为了更直观的看到window的添加,我在WindowManagerService.java中添加如下log,这样可以看到每次添加窗口的细节

 

+++ b/base/services/core/java/com/android/server/wm/WindowManagerService.java@@ -1424,7 +1424,13 @@ public class WindowManagerService extends IWindowManager.Stub      public int addWindow(Session session, IWindow client, int seq,            LayoutParams attrs, int viewVisibility, int displayId, Rect outFrame,            Rect outContentInsets, Rect outStableInsets, Rect outOutsets,            DisplayCutout.ParcelableWrapper outDisplayCutout, InputChannel outInputChannel) {            /********************************/             win.attach();             mWindowMap.put(client.asBinder(), win);-+            android.util.Log.v("lishuo","*** ADD client.asBinder :" + client.asBinder().toString());+            android.util.Log.v("lishuo","*** ADD windowState :" + win.toString());+            for(IBinder key:mWindowMap.keySet())+            {+                android.util.Log.v("lishuo","client.asBinder :" + key.toString());+                android.util.Log.v("lishuo","windowState :" + mWindowMap.get(key).toString());+            }             win.initAppOpsState();

一,重启抓取log。

(1)第一次出现时,此时是在安全模式下先添加了设备锁界面。

02-26 01:54:18.575   850   902 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:18.575   850   902 V lishuo  : *** ADD windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}02-26 01:54:18.575   850   902 V lishuo  : client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:18.575   850   902 V lishuo  : windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}

(2)第2次出现,添加的是分屏界面(SystemUI/src/com/android/systemui/stackdivider/DividerWindowManager.java),此时windowMap已经有设备所界面了。

02-26 01:54:19.294   850   901 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@2f88702-26 01:54:19.294   850   901 V lishuo  : *** ADD windowState :Window{18c0352 u0 DockedStackDivider}02-26 01:54:19.294   850   901 V lishuo  : client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:19.294   850   901 V lishuo  : windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}02-26 01:54:19.294   850   901 V lishuo  : client.asBinder :android.os.BinderProxy@2f88702-26 01:54:19.294   850   901 V lishuo  : windowState :Window{18c0352 u0 DockedStackDivider}

(3)第3次出现,添加的是AssistPreviewPanel界面(SystemUI/src/com/android/systemui/assist/AssistManager.java)。

02-26 01:54:19.592   850  1049 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@65f4e1302-26 01:54:19.593   850  1049 V lishuo  : *** ADD windowState :Window{5034f4e u0 AssistPreviewPanel}02-26 01:54:19.593   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:19.593   850  1049 V lishuo  : windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}02-26 01:54:19.593   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@2f88702-26 01:54:19.593   850  1049 V lishuo  : windowState :Window{18c0352 u0 DockedStackDivider}02-26 01:54:19.593   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@65f4e1302-26 01:54:19.593   850  1049 V lishuo  : windowState :Window{5034f4e u0 AssistPreviewPanel}

 

(4)第4次出现,添加的是虚拟按键界面(SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java)。

02-26 01:54:20.270   850  1426 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@657466702-26 01:54:20.271   850  1426 V lishuo  : *** ADD windowState :Window{ab792b2 u0 NavigationBar}02-26 01:54:20.271   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@657466702-26 01:54:20.271   850  1426 V lishuo  : windowState :Window{ab792b2 u0 NavigationBar}02-26 01:54:20.271   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:20.271   850  1426 V lishuo  : windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}02-26 01:54:20.271   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@2f88702-26 01:54:20.271   850  1426 V lishuo  : windowState :Window{18c0352 u0 DockedStackDivider}02-26 01:54:20.271   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@65f4e1302-26 01:54:20.272   850  1426 V lishuo  : windowState :Window{5034f4e u0 AssistPreviewPanel}

(5)第5次出现,添加的是状态栏界面(SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java)

02-26 01:54:20.580   850  1426 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@dc1ec2f02-26 01:54:20.581   850  1426 V lishuo  : *** ADD windowState :Window{d85a91a u0 StatusBar}02-26 01:54:20.581   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@657466702-26 01:54:20.581   850  1426 V lishuo  : windowState :Window{ab792b2 u0 NavigationBar}02-26 01:54:20.581   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:20.581   850  1426 V lishuo  : windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}02-26 01:54:20.581   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@2f88702-26 01:54:20.581   850  1426 V lishuo  : windowState :Window{18c0352 u0 DockedStackDivider}02-26 01:54:20.581   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@65f4e1302-26 01:54:20.581   850  1426 V lishuo  : windowState :Window{5034f4e u0 AssistPreviewPanel}02-26 01:54:20.581   850  1426 V lishuo  : client.asBinder :android.os.BinderProxy@dc1ec2f02-26 01:54:20.581   850  1426 V lishuo  : windowState :Window{d85a91a u0 StatusBar}

(6)第6次出现,添加的是壁纸界面(SystemUI//src/com/android/systemui/ImageWallpaper.java)

02-26 01:54:22.287   850   902 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@97f1abf02-26 01:54:22.287   850   902 V lishuo  : *** ADD windowState :Window{3fec58c u0 com.android.systemui.ImageWallpaper}02-26 01:54:22.287   850   902 V lishuo  : client.asBinder :android.os.BinderProxy@657466702-26 01:54:22.288   850   902 V lishuo  : windowState :Window{ab792b2 u0 NavigationBar}02-26 01:54:22.288   850   902 V lishuo  : client.asBinder :android.os.BinderProxy@97f1abf02-26 01:54:22.288   850   902 V lishuo  : windowState :Window{3fec58c u0 com.android.systemui.ImageWallpaper}02-26 01:54:22.288   850   902 V lishuo  : client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:22.288   850   902 V lishuo  : windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}02-26 01:54:22.288   850   902 V lishuo  : client.asBinder :android.os.BinderProxy@2f88702-26 01:54:22.288   850   902 V lishuo  : windowState :Window{18c0352 u0 DockedStackDivider}02-26 01:54:22.288   850   902 V lishuo  : client.asBinder :android.os.BinderProxy@65f4e1302-26 01:54:22.288   850   902 V lishuo  : windowState :Window{5034f4e u0 AssistPreviewPanel}02-26 01:54:22.288   850   902 V lishuo  : client.asBinder :android.os.BinderProxy@dc1ec2f02-26 01:54:22.288   850   902 V lishuo  : windowState :Window{d85a91a u0 StatusBar}

(7)第7次出现,添加的依然是添加了一个新的分屏界面,windowManagerService又重新创建了一个windowState。

02-26 01:54:24.171   850  1049 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@3416ef402-26 01:54:24.171   850  1049 V lishuo  : *** ADD windowState :Window{ee6ca63 u0 DockedStackDivider}02-26 01:54:24.171   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@657466702-26 01:54:24.171   850  1049 V lishuo  : windowState :Window{ab792b2 u0 NavigationBar}02-26 01:54:24.171   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@97f1abf02-26 01:54:24.171   850  1049 V lishuo  : windowState :Window{3fec58c u0 com.android.systemui.ImageWallpaper}02-26 01:54:24.171   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@40803ea02-26 01:54:24.172   850  1049 V lishuo  : windowState :Window{99726db u0 com.android.settings/com.android.settings.CryptKeeper}02-26 01:54:24.172   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@2f88702-26 01:54:24.172   850  1049 V lishuo  : windowState :Window{18c0352 u0 DockedStackDivider}02-26 01:54:24.172   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@3416ef402-26 01:54:24.172   850  1049 V lishuo  : windowState :Window{ee6ca63 u0 DockedStackDivider}02-26 01:54:24.172   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@65f4e1302-26 01:54:24.172   850  1049 V lishuo  : windowState :Window{5034f4e u0 AssistPreviewPanel}02-26 01:54:24.172   850  1049 V lishuo  : client.asBinder :android.os.BinderProxy@dc1ec2f02-26 01:54:24.172   850  1049 V lishuo  : windowState :Window{d85a91a u0 StatusBar}

余下的就不再贴了,和之前的添加就很相似。

二,进入应用时窗口的添加,实际操作是在桌面点击设置,观察窗口的添加动作

(1)点击-->进入一级设置界面。

可以看到此处有两次的添加,第一次为“Splash Screen com.android.settings”,第二次就是真正显示的设置界面“com.android.settings/com.android.settings.Settings”

02-26 10:42:06.750  8212  8299 V lishuo  : *** ADD client.asBinder :android.view.ViewRootImpl$W@1fbbdea02-26 10:42:06.750  8212  8299 V lishuo  : *** ADD windowState :Window{90958db u0 Splash Screen com.android.settings}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.view.ViewRootImpl$W@1fbbdea02-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{90958db u0 Splash Screen com.android.settings}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.os.BinderProxy@1550f2702-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{5538272 u0 DockedStackDivider}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.os.BinderProxy@74309e002-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{70aa33f u0 NavigationBar}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.os.BinderProxy@7bf294b02-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{d1e6de6 u0 AssistPreviewPanel}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.view.ViewRootImpl$W@3f982ee02-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{491f61c u0 android}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.os.BinderProxy@ce2af1b02-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{7c0f8b8 u0 com.android.launcher3/com.android.launcher3.Launcher}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.os.BinderProxy@e4927f502-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{cb65418 u0 StatusBar}02-26 10:42:06.751  8212  8299 V lishuo  : client.asBinder :android.os.BinderProxy@b37ecd02-26 10:42:06.751  8212  8299 V lishuo  : windowState :Window{f7c6a93 u0 com.android.systemui.ImageWallpaper}02-26 10:42:07.567  8212  9344 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@f788db402-26 10:42:07.567  8212  9344 V lishuo  : *** ADD windowState :Window{eb95ddd u0 com.android.settings/com.android.settings.Settings}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.view.ViewRootImpl$W@1fbbdea02-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{90958db u0 Splash Screen com.android.settings}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.os.BinderProxy@1550f2702-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{5538272 u0 DockedStackDivider}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.os.BinderProxy@74309e002-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{70aa33f u0 NavigationBar}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.os.BinderProxy@7bf294b02-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{d1e6de6 u0 AssistPreviewPanel}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.view.ViewRootImpl$W@3f982ee02-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{491f61c u0 android}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.os.BinderProxy@ce2af1b02-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{7c0f8b8 u0 com.android.launcher3/com.android.launcher3.Launcher}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.os.BinderProxy@e4927f502-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{cb65418 u0 StatusBar}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.os.BinderProxy@f788db402-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{eb95ddd u0 com.android.settings/com.android.settings.Settings}02-26 10:42:07.568  8212  9344 V lishuo  : client.asBinder :android.os.BinderProxy@b37ecd02-26 10:42:07.568  8212  9344 V lishuo  : windowState :Window{f7c6a93 u0 com.android.systemui.ImageWallpaper}

(2)在设置界面点击“电池”,进入电池界面,此时添加的是“com.android.settings/com.android.settings.Settings$PowerUsageSummaryActivity”,而上一个步奏添加的“Splash Screen com.android.settings”已经被移除了,但是“com.android.settings/com.android.settings.Settings”依然存在。

02-26 10:47:32.860  8212  9039 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@5a736402-26 10:47:32.860  8212  9039 V lishuo  : *** ADD windowState :Window{903c9cd u0 com.android.settings/com.android.settings.Settings$PowerUsageSummaryActivity}02-26 10:47:32.860  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@1550f2702-26 10:47:32.860  8212  9039 V lishuo  : windowState :Window{5538272 u0 DockedStackDivider}02-26 10:47:32.860  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@74309e002-26 10:47:32.860  8212  9039 V lishuo  : windowState :Window{70aa33f u0 NavigationBar}02-26 10:47:32.860  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@7bf294b02-26 10:47:32.861  8212  9039 V lishuo  : windowState :Window{d1e6de6 u0 AssistPreviewPanel}02-26 10:47:32.861  8212  9039 V lishuo  : client.asBinder :android.view.ViewRootImpl$W@3f982ee02-26 10:47:32.861  8212  9039 V lishuo  : windowState :Window{491f61c u0 android}02-26 10:47:32.861  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@ce2af1b02-26 10:47:32.861  8212  9039 V lishuo  : windowState :Window{7c0f8b8 u0 com.android.launcher3/com.android.launcher3.Launcher}02-26 10:47:32.861  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@e4927f502-26 10:47:32.861  8212  9039 V lishuo  : windowState :Window{cb65418 u0 StatusBar}02-26 10:47:32.861  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@f788db402-26 10:47:32.861  8212  9039 V lishuo  : windowState :Window{eb95ddd u0 com.android.settings/com.android.settings.Settings}02-26 10:47:32.861  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@b37ecd02-26 10:47:32.861  8212  9039 V lishuo  : windowState :Window{f7c6a93 u0 com.android.systemui.ImageWallpaper}02-26 10:47:32.861  8212  9039 V lishuo  : client.asBinder :android.os.BinderProxy@5a736402-26 10:47:32.861  8212  9039 V lishuo  : windowState :Window{903c9cd u0 com.android.settings/com.android.settings.Settings$PowerUsageSummaryActivity}

(3)按back返回后界面“com.android.settings/com.android.settings.Settings$PowerUsageSummaryActivity”会被移除的,移除的地方我没有添加log,但是通过遍历windowMap是可以看到的。

三,Dialog和Toast的添加

(1)Dialog,此时添加的是“将屏幕投射到设备上”的dialog

02-26 10:57:15.002  8212 10327 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@c897b2502-26 10:57:15.002  8212 10327 V lishuo  : *** ADD windowState :Window{3bddaab u0 将屏幕投射到设备上}02-26 10:57:15.002  8212 10327 V lishuo  : client.asBinder :android.os.BinderProxy@74309e002-26 10:57:15.002  8212 10327 V lishuo  : windowState :Window{70aa33f u0 NavigationBar}02-26 10:57:15.003  8212 10327 V lishuo  : client.asBinder :android.view.ViewRootImpl$W@3f982ee02-26 10:57:15.003  8212 10327 V lishuo  : windowState :Window{491f61c u0 android}02-26 10:57:15.003  8212 10327 V lishuo  : client.asBinder :android.os.BinderProxy@ce2af1b02-26 10:57:15.003  8212 10327 V lishuo  : windowState :Window{7c0f8b8 u0 com.android.launcher3/com.android.launcher3.Launcher}02-26 10:57:15.003  8212 10327 V lishuo  : client.asBinder :android.os.BinderProxy@979ac6202-26 10:57:15.003  8212 10327 V lishuo  : windowState :Window{7d0129 u0 DockedStackDivider}02-26 10:57:15.003  8212 10327 V lishuo  : client.asBinder :android.os.BinderProxy@e4927f502-26 10:57:15.003  8212 10327 V lishuo  : windowState :Window{cb65418 u0 StatusBar}02-26 10:57:15.003  8212 10327 V lishuo  : client.asBinder :android.os.BinderProxy@c897b2502-26 10:57:15.003  8212 10327 V lishuo  : windowState :Window{3bddaab u0 将屏幕投射到设备上}02-26 10:57:15.003  8212 10327 V lishuo  : client.asBinder :android.os.BinderProxy@b37ecd02-26 10:57:15.003  8212 10327 V lishuo  : windowState :Window{f7c6a93 u0 com.android.systemui.ImageWallpaper}02-26 10:57:15.003  8212 10327 V lishuo  : client.asBinder :android.os.BinderProxy@9afa4f102-26 10:57:15.003  8212 10327 V lishuo  : windowState :Window{701c244 u0 AssistPreviewPanel}

(2)Toast添加过程。

02-26 10:58:12.730  8212 14579 V lishuo  : *** ADD client.asBinder :android.os.BinderProxy@6ee9c0402-26 10:58:12.730  8212 14579 V lishuo  : *** ADD windowState :Window{639d5ed u0 Toast}02-26 10:58:12.730  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@74309e002-26 10:58:12.730  8212 14579 V lishuo  : windowState :Window{70aa33f u0 NavigationBar}02-26 10:58:12.730  8212 14579 V lishuo  : client.asBinder :android.view.ViewRootImpl$W@3f982ee02-26 10:58:12.730  8212 14579 V lishuo  : windowState :Window{491f61c u0 android}02-26 10:58:12.730  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@ce2af1b02-26 10:58:12.730  8212 14579 V lishuo  : windowState :Window{7c0f8b8 u0 com.android.launcher3/com.android.launcher3.Launcher}02-26 10:58:12.730  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@6ee9c0402-26 10:58:12.730  8212 14579 V lishuo  : windowState :Window{639d5ed u0 Toast}02-26 10:58:12.730  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@979ac6202-26 10:58:12.730  8212 14579 V lishuo  : windowState :Window{7d0129 u0 DockedStackDivider}02-26 10:58:12.730  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@e4927f502-26 10:58:12.730  8212 14579 V lishuo  : windowState :Window{cb65418 u0 StatusBar}02-26 10:58:12.731  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@2ce773302-26 10:58:12.731  8212 14579 V lishuo  : windowState :Window{eac7af0 u0 com.android.launcher3/com.android.launcher3.Launcher EXITING}02-26 10:58:12.731  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@b37ecd02-26 10:58:12.731  8212 14579 V lishuo  : windowState :Window{f7c6a93 u0 com.android.systemui.ImageWallpaper}02-26 10:58:12.731  8212 14579 V lishuo  : client.asBinder :android.os.BinderProxy@9afa4f102-26 10:58:12.731  8212 14579 V lishuo  : windowState :Window{701c244 u0 AssistPreviewPanel}

 

更多相关文章

  1. Android 屏幕适配,分辨率适配
  2. 设置Android默认锁定屏幕旋转
  3. android 屏幕适配方案第二版
  4. android 使用系统照相程序照相并存储、显示在界面上
  5. [Android问答] 如何获得手机屏幕分辨率?
  6. 模拟器无法启动,卡在android字样的界面上
  7. 关于 Android 4.4 系统屏幕旋转调研
  8. 【Android 开发教程】屏幕方向的改变
  9. js判断当前设备是 Android 还是 iOS

随机推荐

  1. Android Step by Step (1)——第一个Andr
  2. 基本组件之列表视图
  3. Windows如何配置Android的ADB环境变量
  4. Android(安卓)URL scheme
  5. Android(安卓)ListView 技巧 (一) Androi
  6. Android_TextView属性介绍
  7. android私有目录直接读取
  8. 【android】shape使用总结
  9. [Android] 问题记录 - Android 支持的度
  10. 浅谈android的selector,背景选择器 .