Android 12 Starting window的添加与移除

添加:

04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.StartingSurfaceController.createSplashScreenStartingSurface(StartingSurfaceController.java:87)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.SplashScreenStartingData.createStartingSurface(SplashScreenStartingData.java:49)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityRecord$AddStartingWindow.run(ActivityRecord.java:2847)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityRecord.scheduleAddStartingWindow(ActivityRecord.java:2820)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityRecord.addStartingWindow(ActivityRecord.java:2799)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityRecord.showStartingWindow(ActivityRecord.java:7997)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityRecord.showStartingWindow(ActivityRecord.java:7957)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.StartingSurfaceController.showStartingWindow(StartingSurfaceController.java:201)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.Task.startActivityLocked(Task.java:5873)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityStarter.startActivityInner(ActivityStarter.java:2156)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1840)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1383)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:786)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1365)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1328)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1303)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1174)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.ActivityTaskManagerService.onTransact(ActivityTaskManagerService.java:5560)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at android.os.Binder.execTransactInternal(Binder.java:1290)
04-13 16:29:55.931 2944 7259 D jinyanmeistart: at android.os.Binder.execTransact(Binder.java:1249)04-13 16:29:55.932 5000 5835 D jinyanmeistart: ITaskOrganizer addStartingWindow :
04-13 16:29:55.932 5000 5835 D jinyanmeistart: java.lang.RuntimeException: jinyanmeistart
04-13 16:29:55.932 5000 5835 D jinyanmeistart: at android.window.TaskOrganizer$1.addStartingWindow(TaskOrganizer.java:287)
04-13 16:29:55.932 5000 5835 D jinyanmeistart: at android.window.ITaskOrganizer$Stub.onTransact(ITaskOrganizer.java:211)
04-13 16:29:55.932 5000 5835 D jinyanmeistart: at android.os.Binder.execTransactInternal(Binder.java:1290)
04-13 16:29:55.932 5000 5835 D jinyanmeistart: at android.os.Binder.execTransact(Binder.java:1249)
04-13 16:29:55.952 2944 3701 D jinyanmeistart: getFinishedCallback 11111111:com.android.server.wm.WindowContainer$$ExternalSyntheticLambda4@ebc3815

 

调用到shell 的system _ui 进程:

其中调用到StartingSurfaceDrawer.addSplashScreenStartingWindow

函数初计算了startingwindow的各种屏幕参数params,

mAttrs.type = TYPE_APPLICATION_STARTING

然后根据参数addWindow。

addView

然后调用到系统的WindwmanagerService的addView,执行添加窗口的流程

移除:

 

在刷新的过程中,遍历窗口属性时,如果当topactivity的Surface drawState为drawState == HAS_DRAWN || drawState == READY_TO_SHOW) 移除starting window04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.ViewRootImpl.createSyncIfNeeded(ViewRootImpl.java:3938)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3886)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2608)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9623)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1491)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1499)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.Choreographer.doCallbacks(Choreographer.java:1114)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.Choreographer.doFrame(Choreographer.java:1031)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1467)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.os.Handler.handleCallback(Handler.java:942)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.os.Looper.loopOnce(Looper.java:211)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.os.Looper.loop(Looper.java:300)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at android.app.ActivityThread.main(ActivityThread.java:8352)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at java.lang.reflect.Method.invoke(Native Method)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
04-13 20:51:34.272 10792 10792 D jinyanmeistart: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)04-13 20:51:34.273 10792 10792 D jinyanmeistart: finishDrawing mWindow:android.view.ViewRootImpl$W@b52582a
04-13 20:51:34.273 10792 10792 D jinyanmeistart: java.lang.RuntimeException: reportDrawFinished
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.view.ViewRootImpl.reportDrawFinished(ViewRootImpl.java:4614)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.view.ViewRootImpl.lambda$createSyncIfNeeded$4$android-view-ViewRootImpl(ViewRootImpl.java:3945)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.view.ViewRootImpl$$ExternalSyntheticLambda1.run(Unknown Source:6)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.os.Handler.handleCallback(Handler.java:942)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.os.Looper.loopOnce(Looper.java:211)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.os.Looper.loop(Looper.java:300)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at android.app.ActivityThread.main(ActivityThread.java:8352)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at java.lang.reflect.Method.invoke(Native Method)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
04-13 20:51:34.273 10792 10792 D jinyanmeistart: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)04-13 20:51:34.276 2901 2955 D jinyanmeistar: requestTraversal:com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop:205 com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement:148 com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement:137
04-13 20:51:34.276 2901 2955 D jinyanmeistar: java.lang.RuntimeException: jinyanmeistart
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at com.android.server.wm.WindowSurfacePlacer.requestTraversal(WindowSurfacePlacer.java:248)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:205)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:148)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:137)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:79)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at android.os.Handler.handleCallback(Handler.java:942)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at android.os.Looper.loopOnce(Looper.java:211)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at android.os.Looper.loop(Looper.java:300)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at android.os.HandlerThread.run(HandlerThread.java:67)
04-13 20:51:34.276 2901 2955 D jinyanmeistar: at com.android.server.ServiceThread.run(ServiceThread.java:46)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: TaskOrganizerController removeStartingWindow + topActivity:ActivityRecord{c790b3d u0 com.tencent.mobileqq/.activity.LoginActivity} t405}
04-13 16:29:56.352 2944 2970 D jinyanmeistart: java.lang.RuntimeException: jinyanmeistart
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.TaskOrganizerController.removeStartingWindow(TaskOrganizerController.java:551)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.StartingSurfaceController$StartingSurface.remove(StartingSurfaceController.java:275)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.ActivityRecord.lambda$removeStartingWindowAnimation$6$com-android-server-wm-ActivityRecord(ActivityRecord.java:3221)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.ActivityRecord$$ExternalSyntheticLambda11.run(Unknown Source:8)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.ActivityRecord.removeStartingWindowAnimation(ActivityRecord.java:3237)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.ActivityRecord.removeStartingWindow(ActivityRecord.java:3163)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.ActivityRecord.onFirstWindowDrawn(ActivityRecord.java:7323)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowState.performShowLocked(WindowState.java:5094)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowStateAnimator.commitFinishDrawingLocked(WindowStateAnimator.java:315)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.DisplayContent.lambda$new$8$com-android-server-wm-DisplayContent(DisplayContent.java:1065)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.DisplayContent$$ExternalSyntheticLambda17.accept(Unknown Source:4)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer$ForAllWindowsConsumerWrapper.apply(WindowContainer.java:2753)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer$ForAllWindowsConsumerWrapper.apply(WindowContainer.java:2743)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowState.applyInOrderWithImeWindows(WindowState.java:5377)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowState.forAllWindows(WindowState.java:5221)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1735)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1752)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.DisplayContent.applySurfaceChangesTransaction(DisplayContent.java:5079)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.RootWindowContainer.applySurfaceChangesTransaction(RootWindowContainer.java:1099)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:897)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:855)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:199)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:148)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:137)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:79)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at android.os.Handler.handleCallback(Handler.java:942)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at android.os.Looper.loopOnce(Looper.java:211)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at android.os.Looper.loop(Looper.java:300)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at android.os.HandlerThread.run(HandlerThread.java:67)
04-13 16:29:56.352 2944 2970 D jinyanmeistart: at com.android.server.ServiceThread.run(ServiceThread.java:46)然后调用到shell的removeStartingWindow04-13 16:29:56.353 5000 5835 D jinyanmeistart: ITaskOrganizer removeStartingWindow :
04-13 16:29:56.353 5000 5835 D jinyanmeistart: java.lang.RuntimeException: jinyanmeistart
04-13 16:29:56.353 5000 5835 D jinyanmeistart: at android.window.TaskOrganizer$1.removeStartingWindow(TaskOrganizer.java:294)
04-13 16:29:56.353 5000 5835 D jinyanmeistart: at android.window.ITaskOrganizer$Stub.onTransact(ITaskOrganizer.java:219)
04-13 16:29:56.353 5000 5835 D jinyanmeistart: at android.os.Binder.execTransactInternal(Binder.java:1290)
04-13 16:29:56.353 5000 5835 D jinyanmeistart: at android.os.Binder.execTransact(Binder.java:1249)04-13 16:29:56.354 5000 5129 D jinyanmeistart: java.lang.RuntimeException: jinyanmeistart
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at com.android.wm.shell.startingsurface.StartingWindowController.removeStartingWindow(StartingWindowController.java:191)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at com.android.wm.shell.ShellTaskOrganizer.removeStartingWindow(ShellTaskOrganizer.java:407)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at android.window.TaskOrganizer$1.lambda$removeStartingWindow$1$android-window-TaskOrganizer$1(TaskOrganizer.java:295)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at android.window.TaskOrganizer$1$$ExternalSyntheticLambda10.run(Unknown Source:4)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at android.os.Handler.handleCallback(Handler.java:942)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at android.os.Looper.loopOnce(Looper.java:211)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at android.os.Looper.loop(Looper.java:300)
04-13 16:29:56.354 5000 5129 D jinyanmeistart: at android.os.HandlerThread.run(HandlerThread.java:67)04-13 16:29:56.359 5000 5287 D jinyanmeistart: java.lang.RuntimeException: jinyanmeistart
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.view.ViewRootImpl.die(ViewRootImpl.java:9116)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:523)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:464)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at com.android.wm.shell.startingsurface.StartingSurfaceDrawer.removeWindowInner(StartingSurfaceDrawer.java:698)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at com.android.wm.shell.startingsurface.StartingSurfaceDrawer.removeWindowSynced(StartingSurfaceDrawer.java:655)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at com.android.wm.shell.startingsurface.StartingSurfaceDrawer.removeStartingWindow(StartingSurfaceDrawer.java:523)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at com.android.wm.shell.startingsurface.StartingWindowController.lambda$removeStartingWindow$4(StartingWindowController.java:192)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at com.android.wm.shell.startingsurface.StartingWindowController.$r8$lambda$qG0mTCPcPig28ujIzll9N1h0gXA(Unknown Source:0)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at com.android.wm.shell.startingsurface.StartingWindowController$$ExternalSyntheticLambda3.run(Unknown Source:4)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.os.Handler.handleCallback(Handler.java:942)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.os.Looper.loopOnce(Looper.java:211)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.os.Looper.loop(Looper.java:300)
04-13 16:29:56.359 5000 5287 D jinyanmeistart: at android.os.HandlerThread.run(HandlerThread.java:67)由shell的systemUI进程ViewRootImpl调用到 WMS的removeWindow 并且释放surface。将状态置于0.04-13 16:29:56.578 2944 2970 D jinyanmeistart: destroySurface mDrawState 555 +++:4
04-13 16:29:56.578 2944 2970 D jinyanmeistart: destroySurface mDrawState 555 ---:0
04-13 16:29:56.578 2944 2970 D jinyanmeistart: java.lang.RuntimeException: jinyanmeistart
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowStateAnimator.destroySurface(WindowStateAnimator.java:830)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowStateAnimator.destroySurfaceLocked(WindowStateAnimator.java:467)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowState.destroySurfaceUnchecked(WindowState.java:3834)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowState.destroySurface(WindowState.java:3808)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowState.onExitAnimationDone(WindowState.java:5578)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowStateAnimator.onAnimationFinished(WindowStateAnimator.java:198)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowState.onAnimationFinished(WindowState.java:5793)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.WindowContainer$$ExternalSyntheticLambda4.onAnimationFinished(Unknown Source:2)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$0$com-android-server-wm-SurfaceAnimator(SurfaceAnimator.java:135)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.SurfaceAnimator$$ExternalSyntheticLambda1.run(Unknown Source:8)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.SurfaceAnimator.lambda$getFinishedCallback$1$com-android-server-wm-SurfaceAnimator(SurfaceAnimator.java:145)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.SurfaceAnimator$$ExternalSyntheticLambda0.onAnimationFinished(Unknown Source:4)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.LocalAnimationAdapter.lambda$startAnimation$0$com-android-server-wm-LocalAnimationAdapter(LocalAnimationAdapter.java:69)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.wm.LocalAnimationAdapter$$ExternalSyntheticLambda0.run(Unknown Source:6)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at android.os.Handler.handleCallback(Handler.java:942)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at android.os.Looper.loopOnce(Looper.java:211)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at android.os.Looper.loop(Looper.java:300)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at android.os.HandlerThread.run(HandlerThread.java:67)
04-13 16:29:56.578 2944 2970 D jinyanmeistart: at com.android.server.ServiceThread.run(ServiceThread.java:46)

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios不兼容Svg Wave的动画的解决方法

近日也是用上了SvgWave,十分的好看 Svg Wave - A free & beautiful gradient SVG wave Generator. 大家感兴趣的也可以了解一下 【场景】 使用SvgWave的Animate,并生成svg代码使用,windows web端、朋友的安卓移动端都能够正常执行动画…

P2DR

P2DR 是一种网络安全模型,代表“Policy(策略)- Protection(防护)- Detection(检测)- Response(响应)”。这个模型由信息安全专家Wheeler在1990年代提出,用于指…

前端CSS基础10(浮动)

前端CSS基础10(浮动) 浮动元素浮动后的特点浮动后的特点浮动后的影响及解决 浮动布局小练习 浮动 CSS中的浮动是一种布局技术,常用于实现元素的排列和定位。通过使用float属性,可以让元素在页面中左浮动或右浮动,使得…

在PostgreSQL中如何有效地批量导入大量数据,并确保数据加载过程中的性能和稳定性?

文章目录 解决方案1. 使用COPY命令2. 调整配置参数3. 禁用索引和约束4. 使用事务5. 并发导入 总结 在PostgreSQL中,批量导入大量数据是一个常见的需求,特别是在数据迁移、数据仓库填充或大数据分析等场景中。为了确保数据加载过程中的性能和稳定性&#…

Compose和Android View相互使用

文章目录 Compose和Android View相互使用在Compose中使用View概述简单控件复杂控件嵌入XML布局 在View中使用Compose概述在Activity中使用Compose在Fragment中使用Compose布局使用多个ComposeView 在布局中使用Compose 组合使用 Compose和Android View相互使用 在Compose中使用…

AIGC - SD(中英文本生成图片) + PaddleHub/HuggingFace + stable-diffusion-webui

功能 stable-diffusion(文本生成图片)webui-win搭建(开启api界面汉化)PaddleHubHuggingFace: SD2,中文-alibaba/EasyNLP stable-diffusion-webui 下载与安装 环境相关下载 python(文档推荐:Install Python 3.10.6 …

linux开发板开机启动向日葵

硬件:orangepi 5 pro 操作系统:ubuntu 20.4 lts 安装向日葵 根据我的实测,arm架构的ubuntu系统只能安装向日葵提供的麒麟系统的那个版本,具体安装方式官网下载页面有 允许任意用户连接到 X11 使用root用户登录后打开终端输入一下…

Windows python3.10安装psbody

Windows环境下安装psbody 下载mesh GitHub - MPI-IS/mesh: MPI-IS Mesh Processing Library 下载安装boost Boost Downloads 解压到 D:\software\boost_1_85_0,这个路径后面要设置为环境变量 BOOST_ROOT 的值。 添加 BOOST_ROOT 环境变量 您可以通过图形界面配…

php的curl请求,包含了post,get,put,delete

php的curl请求,包含了post,get,put,delete 这段代码是一个非常实用的HTTP通信工具,可以轻松集成到需要网络通信的PHP项目中。它提供了足够的灵活性,适合多种网络请求任务。 if (!function_exists("http_curl")) {/*** 发送HTTP请求* param s…

react函数组件传值(父子/子父/兄弟)

父子组件传值 子父组件传值 兄弟组件传值 注:本人前端小白 ,如有不对的地方还请多多指教

knife4j swagger 使用笔记

1.接口访问的端口跟后台设置的不一致,接口请求无反应 处理办法 2.响应参数不显示问题 (1)返回的参数里面一定要有响应的参数对象,如下: (2)TableDataInfo 定义成泛型类 TableDataInfo package…

ros2 node 之间的通信方式之 —— Topic通信案例

文章目录 ros2 node 之间的通信方式之 Topic通信Topic 通信案例1、创建工作空间2、创建功能包3、编写发布者和订阅者代码3.1 topic_helloworld_pub.cpp3.2 topic_helloworld_sub.cpp 4、编写CMakeLists.txt5、编译工作空间下的功能包6、运行结果 ros2 node 之间的通信方式之 To…

AutoGPT-Forge使用教程,自行构建agent智能体

本博客给出AutoGPT-forge四个教程的翻译与理解,使用GPT4翻译, 参考官方教程https://aiedge.medium.com/autogpt-forge-a-comprehensive-guide-to-your-first-steps-a1dfdf46e3b4 使用AutoGPT Github代码日期2024/4/22; 博客开始编辑日期20…

C语言项目实战——扫雷

目录 1.前言 2.完整流程 2.1规划书 2.2代码部分 2.2.1文件的结构设计 2.2.2变量的创建 2.2.3菜单的基本实现 2.2.4初始化期棋盘 2.2.5输出完整棋盘 2.2.6埋雷的实现 2.2.7查询周围雷的数量 2.2.8扫雷的实现 2.2.9完整代码 3.总结 1.前言 哈喽大家好吖,今…

深入了解数据结构中的查找算法

目录 前言 1. 查找的基本概念 2. 顺序查找和折半查找 2.1 顺序查找 2.2 折半查找 2.3分块查找 3. 树形查找 3.1 二叉搜索树 (BST) 3.2平衡二叉树 3.3红黑树 4. B 树和 B 树 4.1 B 树 4.2 B 树 5. 哈希表 (Hash Table) 5.1 基本操作 5.2 实现 5.3 复杂性分析 5…

# IntelliJ IDEA 中 springboot 启动类 SpringApplication.run 报红分析

IntelliJ IDEA 中 springboot 启动类 SpringApplication.run 报红分析 一、原因分析:通常 SpringApplication.run 报红,可能是由以下几种原因造成的: 1、项目的主配置文件中 pom.xml 可能没有导入相关依赖。 2、方法参数错误:S…

全量知识系统 程序详细设计 库模式的存储库模型: “三生”(派生衍生自生) (QA SmartChat)

Q1. 请仔细说说 派生和衍生 各自的意思以及关系 派生和衍生是两个近义词,但在语境不同的情况下有着不同的含义。 派生通常指从某种事物或概念中产生出新的东西或概念。它可以用来表示从一个基本的概念或原始的实体中推导或演化出来的新的思想、理论、产品或方法。…

【C++例】虚函数—代码实例

1.虚函数的动态绑定 //虚函数&#xff08;非静态的成员函数&#xff09; //动态绑定&#xff1a;只有通过基类的指针或引用调用虚函数时 #include<iostream> using namespace std; class Base1 { public:virtual void display() const; }; // 如果把某个函数指定为final…

通用型自定义拼接 SQL 脚本,摆脱重复工作量

通用型自定义拼接sql脚本,摆脱重复工作量 在开发 Restful 接口时&#xff0c;我们经常需要根据前端传递的参数动态拼接 SQL 查询语句&#xff0c;以满足不同的查询需求。本文将介绍一个通用的自定义拼接 SQL 脚本的方法&#xff0c;帮助开发人员减少重复工作量。 首先&#x…

【C++打怪之路Lv3】-- 类和对象(上)

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文(平均质量分82)&#…