个人技术分享

1  Session.addToDisplayAsUser()
win.mAttrs.type == TYPE_APPLICATION_STARTING
if(this.mWin.mAttrs.packageName.equals("com.test.aiagent")&&this.mWin.getWindowType()==TYPE_APPLICATION_STARTING){

            String  a= null;
            a.length();


        }
  if(mAttrs.packageName.equals("com.test.aiagent")&&mAttrs.type==TYPE_APPLICATION_STARTING){
            String  a1= null  ;
            a1.length();
        }
   final WindowStateAnimator winAnimator = win.mWinAnimator;
            winAnimator.mEnterAnimationPending = true;
            winAnimator.mEnteringAnimation = true;
    /** Used to indicate that this window is undergoing an enter animation. Used for system
     * windows to make the callback to View.dispatchOnWindowShownCallback(). Set when the
     * window is first added or shown, cleared when the callback has been made. */
    boolean mEnteringAnimation;

    // Set to true if, when the window gets displayed, it should perform
    // an enter animation.
    boolean mEnterAnimationPending;
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at com.android.server.wm.WindowState.<init>(WindowState.java:1163)
at com.android.server.wm.WindowState.<init>(WindowState.java:1100)
at com.android.server.wm.WindowManagerService.addWindow(WindowManagerService.java:1684)
at com.android.server.wm.Session.addToDisplayAsUser(Session.java:217)
at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:642)
at com.android.server.wm.Session.onTransact(Session.java:181)
at android.os.Binder.execTransactInternal(Binder.java:1285)
at android.os.Binder.execTransact(Binder.java:1244)

applyEnterAnimationLocked

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
                    	at com.android.server.wm.WindowStateAnimator.applyEnterAnimationLocked(WindowStateAnimator.java:541)
                    	at com.android.server.wm.WindowState.performShowLocked(WindowState.java:4706)
                    	at com.android.server.wm.ActivityRecord.lambda$showAllWindowsLocked$17(ActivityRecord.java:6765)
                    	at com.android.server.wm.ActivityRecord.$r8$lambda$EBjQ9_0_gnlxfoGHjA_CqMEFYX8(Unknown Source:0)
                    	at com.android.server.wm.ActivityRecord$$ExternalSyntheticLambda36.accept(Unknown Source:2)
                    	at com.android.server.wm.WindowContainer$ForAllWindowsConsumerWrapper.apply(WindowContainer.java:2729)
                    	at com.android.server.wm.WindowContainer$ForAllWindowsConsumerWrapper.apply(WindowContainer.java:2719)
                    	at com.android.server.wm.WindowState.applyInOrderWithImeWindows(WindowState.java:4965)
                    	at com.android.server.wm.WindowState.forAllWindows(WindowState.java:4805)
                    	at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1707)
                    	at com.android.server.wm.WindowContainer.forAllWindows(WindowContainer.java:1717)
                    	at com.android.server.wm.ActivityRecord.showAllWindowsLocked(ActivityRecord.java:6763)
                    	at com.android.server.wm.AppTransitionController.handleOpeningApps(AppTransitionController.java:1171)
                    	at com.android.server.wm.AppTransitionController.handleAppTransitionReady(AppTransitionController.java:305)
                    	at com.android.server.wm.RootWindowContainer.checkAppTransitionReady(RootWindowContainer.java:970)
                    	at com.android.server.wm.RootWindowContainer.performSurfacePlacementNoTrace(RootWindowContainer.java:834)
                    	at com.android.server.wm.RootWindowContainer.performSurfacePlacement(RootWindowContainer.java:777)
                    	at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacementLoop(WindowSurfacePlacer.java:177)
                    	at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:126)
                    	at com.android.server.wm.WindowSurfacePlacer.performSurfacePlacement(WindowSurfacePlacer.java:115)
                    	at com.android.server.wm.WindowSurfacePlacer$Traverser.run(WindowSurfacePlacer.java:57)
                    	at android.os.Handler.handleCallback(Handler.java:942)
                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                    	at android.os.Looper.loopOnce(Looper.java:201)
                    	at android.os.Looper.loop(Looper.java:288)
                    	at android.os.HandlerThread.run(HandlerThread.java:67)
                    	at com.android.server.ServiceThread.run(ServiceThread.java:44)

WindowSurfacePlacer.performSurfacePlacement()
AppTransitionController.handleOpeningApps()
ActivityRecord.showAllWindowsLocked()