SleepToken机制 - 安卓R

本文深入解析了Android系统中SleepToken的实现原理及其在屏幕亮灭过程中的作用。SleepToken通过控制前台活动的状态来协调设备的睡眠与唤醒行为。

重要类介绍

SleepToken

SleepToken是frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java的内部静态类,其定义如下:

    static final class SleepToken {
        private final String mTag;
        private final long mAcquireTime;
        private final int mDisplayId;
        final int mHashKey;

        SleepToken(String tag, int displayId) {
            mTag = tag;
            mDisplayId = displayId;
            mAcquireTime = SystemClock.uptimeMillis();
            mHashKey = makeSleepTokenKey(mTag, mDisplayId);
        }

        @Override
        public String toString() {
            return "{\"" + mTag + "\", display " + mDisplayId
                    + ", acquire at " + TimeUtils.formatUptime(mAcquireTime) + "}";
        }
    }

SleepTokenAcquirer

SleepTokenAcquirer是在frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java的内部接口,其定义如下:

    /**
     * Sleep tokens cause the activity manager to put the top activity to sleep.
     * They are used by components such as dreams that may hide and block interaction
     * with underlying activities.
     * The Acquirer provides an interface that encapsulates the underlying work, so the user does
     * not need to handle the token by him/herself.
     */
    public interface SleepTokenAcquirer {

        /**
         * Acquires a sleep token.
         * @param displayId The display to apply to.
         */
        void acquire(int displayId);

        /**
         * Releases the sleep token.
         * @param displayId The display to apply to.
         */
        void release(int displayId);
    }

有两个方法分别是acquirerelease

其实现类是SleepTokenAcquirerImpl,是frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java的内部类,其定义如下:

    final class SleepTokenAcquirerImpl implements ActivityTaskManagerInternal.SleepTokenAcquirer {
        private final String mTag;
        private final SparseArray<RootWindowContainer.SleepToken> mSleepTokens =
                new SparseArray<>();

        SleepTokenAcquirerImpl(@NonNull String tag) {
            mTag = tag;
        }

        @Override
        public void acquire(int displayId) {
            synchronized (mGlobalLock) {
                if (!mSleepTokens.contains(displayId)) {
                    mSleepTokens.append(displayId,
                            mRootWindowContainer.createSleepToken(mTag, displayId));
                    updateSleepIfNeededLocked();
                }
            }
        }

        @Override
        public void release(int displayId) {
            synchronized (mGlobalLock) {
                final RootWindowContainer.SleepToken token = mSleepTokens.get(displayId);
                if (token != null) {
                    mRootWindowContainer.removeSleepToken(token);
                    mSleepTokens.remove(displayId);
                }
            }
        }
    }

在SleepTokenAcquirerImpl的acquire方法中会调用RootWindowContainer的createSleepToken方法:

    SleepToken createSleepToken(String tag, int displayId) {
        final DisplayContent display = getDisplayContent(displayId);
        if (display == null) {
            throw new IllegalArgumentException("Invalid display: " + displayId);
        }

        final int tokenKey = makeSleepTokenKey(tag, displayId);
        SleepToken token = mSleepTokens.get(tokenKey);
        if (token == null) {
            token = new SleepToken(tag, displayId);
            mSleepTokens.put(tokenKey, token);
            display.mAllSleepTokens.add(token);
        } else {
            throw new RuntimeException("Create the same sleep token twice: " + token);
        }
        return token;
    }

创建了SleepToken对象,然后在SleepTokenAcquirerImpl的acquire方法中调用ActivityTaskManagerService的updateSleepIfNeededLocked方法对resume的Activity进行pause。

在SleepTokenAcquirerImpl的release方法中会调用RootWindowContainer的removeSleepToken方法:

    void removeSleepToken(SleepToken token) {
        if (!mSleepTokens.contains(token.mHashKey)) {
            Slog.d(TAG, "Remove non-exist sleep token: " + token + " from " + Debug.getCallers(6));
        }
        mSleepTokens.remove(token.mHashKey);

        final DisplayContent display = getDisplayContent(token.mDisplayId);
        if (display != null) {
            display.mAllSleepTokens.remove(token);
            if (display.mAllSleepTokens.isEmpty()) {
                mService.updateSleepIfNeededLocked();
            }
        }
    }

如果发现所有的SleepToken都被移除了,那么会调用ActivityTaskManagerService的updateSleepIfNeededLocked方法尝试resume前台Activity,但是一般此时的场景是刚刚亮屏,会存在keyguard,所以此时一般也不会去resume前台Activity。(快速亮灭屏的时候,灭屏会触发keyguard显示,如果在keyguard出来之前就亮屏了,会因为SleepToken的完全移除而去resume前台Activity,等keyguard出来了又去stop前台Activity,导致出现闪app的问题)

在灭屏时的作用

灭屏流程中,会调用frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java的screenTurnedOff方法:

    // Called on the DisplayManager's DisplayPowerController thread.
    @Override
    public void screenTurnedOff() {
        if (DEBUG_WAKEUP) Slog.i(TAG, "Screen turned off...");

        updateScreenOffSleepToken(true);
        mDefaultDisplayPolicy.screenTurnedOff();
        synchronized (mLock) {
            if (mKeyguardDelegate != null) {
                mKeyguardDelegate.onScreenTurnedOff();
            }
        }
        mDefaultDisplayRotation.updateOrientationListener();
        reportScreenStateToVrManager(false);
    }

调用了PhoneWindowManager的updateScreenOffSleepToken方法并传入true:

    // TODO (multidisplay): Support multiple displays in WindowManagerPolicy.
    private void updateScreenOffSleepToken(boolean acquire) {
        if (acquire) {
            mScreenOffSleepTokenAcquirer.acquire(DEFAULT_DISPLAY);
        } else {
            mScreenOffSleepTokenAcquirer.release(DEFAULT_DISPLAY);
        }
    }

调用了frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java的内部类SleepTokenAcquirerImpl的acquire方法:

        @Override
        public void acquire(int displayId) {
            synchronized (mGlobalLock) {
                if (!mSleepTokens.contains(displayId)) {
                    mSleepTokens.append(displayId,
                            mRootWindowContainer.createSleepToken(mTag, displayId));
                    updateSleepIfNeededLocked();
                }
            }
        }

调用了ActivityTaskManagerService的updateSleepIfNeededLocked方法:

    void updateSleepIfNeededLocked() {
        final boolean shouldSleep = !mRootWindowContainer.hasAwakeDisplay();
        final boolean wasSleeping = mSleeping;
        boolean updateOomAdj = false;

        if (!shouldSleep) {
            ......
        } else if (!mSleeping && shouldSleep) {
            mSleeping = true;
            FrameworkStatsLog.write(FrameworkStatsLog.ACTIVITY_MANAGER_SLEEP_STATE_CHANGED,
                    FrameworkStatsLog.ACTIVITY_MANAGER_SLEEP_STATE_CHANGED__STATE__ASLEEP);
            if (mCurAppTimeTracker != null) {
                mCurAppTimeTracker.stop();
            }
            mTopProcessState = ActivityManager.PROCESS_STATE_TOP_SLEEPING;
            Slog.d(TAG, "Top Process State changed to PROCESS_STATE_TOP_SLEEPING");
            mStackSupervisor.goingToSleepLocked();
            updateResumedAppTrace(null /* resumed */);
            updateOomAdj = true;
        }
        if (updateOomAdj) {
            updateOomAdj();
        }
    }

调用了frameworks/base/services/core/java/com/android/server/wm/ActivityStackSupervisor.java的goingToSleepLocked方法:

    void goingToSleepLocked() {
        scheduleSleepTimeout();
        if (!mGoingToSleepWakeLock.isHeld()) {
            mGoingToSleepWakeLock.acquire();
            if (mLaunchingActivityWakeLock.isHeld()) {
                if (VALIDATE_WAKE_LOCK_CALLER && Binder.getCallingUid() != Process.myUid()) {
                    throw new IllegalStateException("Calling must be system uid");
                }
                mLaunchingActivityWakeLock.release();
                mHandler.removeMessages(LAUNCH_TIMEOUT_MSG);
            }
        }

        mRootWindowContainer.applySleepTokens(false /* applyToStacks */);

        checkReadyForSleepLocked(true /* allowDelay */);
    }

调用了ActivityStackSupervisor的checkReadyForSleepLocked方法:

    void checkReadyForSleepLocked(boolean allowDelay) {
        if (!mService.isSleepingOrShuttingDownLocked()) {
            // Do not care.
            return;
        }

        if (!mRootWindowContainer.putStacksToSleep(
                allowDelay, false /* shuttingDown */)) {
            return;
        }

        // Send launch end powerhint before going sleep
        mRootWindowContainer.sendPowerHintForLaunchEndIfNeeded();

        removeSleepTimeouts();

        if (mGoingToSleepWakeLock.isHeld()) {
            mGoingToSleepWakeLock.release();
        }
        if (mService.mShuttingDown) {
            mService.mGlobalLock.notifyAll();
        }
    }

调用了frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java的putStacksToSleep方法:

    // Tries to put all activity stacks to sleep. Returns true if all stacks were
    // successfully put to sleep.
    boolean putStacksToSleep(boolean allowDelay, boolean shuttingDown) {
        boolean allSleep = true;
        for (int displayNdx = getChildCount() - 1; displayNdx >= 0; --displayNdx) {
            final DisplayContent display = getChildAt(displayNdx);
            for (int tdaNdx = display.getTaskDisplayAreaCount() - 1; tdaNdx >= 0; --tdaNdx) {
                final TaskDisplayArea taskDisplayArea = display.getTaskDisplayAreaAt(tdaNdx);
                for (int sNdx = taskDisplayArea.getStackCount() - 1; sNdx >= 0; --sNdx) {
                    // Stacks and activities could be removed while putting activities to sleep if
                    // the app process was gone. This prevents us getting exception by accessing an
                    // invalid stack index.
                    if (sNdx >= taskDisplayArea.getStackCount()) {
                        continue;
                    }
                    final ActivityStack stack = taskDisplayArea.getStackAt(sNdx);
                    if (allowDelay) {
                        allSleep &= stack.goToSleepIfPossible(shuttingDown);
                    } else {
                        stack.goToSleep();
                    }
                }
            }
        }
        return allSleep;
    }

调用了frameworks/base/services/core/java/com/android/server/wm/ActivityStack.java的goToSleepIfPossible方法:

    /**
     * Tries to put the activities in the stack to sleep.
     *
     * If the stack is not in a state where its activities can be put to sleep, this function will
     * start any necessary actions to move the stack into such a state. It is expected that this
     * function get called again when those actions complete.
     *
     * @param shuttingDown true when the called because the device is shutting down.
     * @return true if the stack finished going to sleep, false if the stack only started the
     * process of going to sleep (checkReadyForSleep will be called when that process finishes).
     */
    boolean goToSleepIfPossible(boolean shuttingDown) {
        boolean shouldSleep = true;

        if (mResumedActivity != null) {
            // Still have something resumed; can't sleep until it is paused.
            if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Sleep needs to pause " + mResumedActivity);
            if (DEBUG_USER_LEAVING) Slog.v(TAG_USER_LEAVING,
                    "Sleep => pause with userLeaving=false");

            startPausingLocked(false /* userLeaving */, true /* uiSleeping */, null /* resuming */);
            shouldSleep = false ;
        } else if (mPausingActivity != null) {
            // Still waiting for something to pause; can't sleep yet.
            if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Sleep still waiting to pause " + mPausingActivity);
            shouldSleep = false;
        }

        if (!shuttingDown) {
            if (containsActivityFromStack(mStackSupervisor.mStoppingActivities)) {
                // Still need to tell some activities to stop; can't sleep yet.
                if (DEBUG_PAUSE) Slog.v(TAG_PAUSE, "Sleep still need to stop "
                        + mStackSupervisor.mStoppingActivities.size() + " activities");

                mStackSupervisor.scheduleIdle();
                shouldSleep = false;
            }
        }

        if (shouldSleep) {
            goToSleep();
        }

        return shouldSleep;
    }

如果mResumedActivity不为null,则调用startPausingLocked方法将其pause掉。

在亮屏时的作用

亮屏流程中,会调用frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java的screenTurningOn方法:

    // Called on the DisplayManager's DisplayPowerController thread.
    @Override
    public void screenTurningOn(final ScreenOnListener screenOnListener) {
        if (DEBUG_WAKEUP) Slog.i(TAG, "Screen turning on...");

        Trace.asyncTraceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "screenTurningOn", 0 /* cookie */);
        updateScreenOffSleepToken(false);
        mDefaultDisplayPolicy.screenTurnedOn(screenOnListener);

        synchronized (mLock) {
            if (mKeyguardDelegate != null && mKeyguardDelegate.hasKeyguard()) {
                mHandler.removeMessages(MSG_KEYGUARD_DRAWN_TIMEOUT);
                mHandler.sendEmptyMessageDelayed(MSG_KEYGUARD_DRAWN_TIMEOUT,
                        getKeyguardDrawnTimeout());
                mKeyguardDelegate.onScreenTurningOn(mKeyguardDrawnCallback);
            } else {
                if (DEBUG_WAKEUP) Slog.d(TAG,
                        "null mKeyguardDelegate: setting mKeyguardDrawComplete.");
                mHandler.sendEmptyMessage(MSG_KEYGUARD_DRAWN_COMPLETE);
            }
        }
    }

调用了PhoneWindowManager的updateScreenOffSleepToken方法并传入false:

    // TODO (multidisplay): Support multiple displays in WindowManagerPolicy.
    private void updateScreenOffSleepToken(boolean acquire) {
        if (acquire) {
            mScreenOffSleepTokenAcquirer.acquire(DEFAULT_DISPLAY);
        } else {
            mScreenOffSleepTokenAcquirer.release(DEFAULT_DISPLAY);
        }
    }

调用了frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java的内部类SleepTokenAcquirerImpl的release方法:

        @Override
        public void release(int displayId) {
            synchronized (mGlobalLock) {
                final RootWindowContainer.SleepToken token = mSleepTokens.get(displayId);
                if (token != null) {
                    mRootWindowContainer.removeSleepToken(token);
                    mSleepTokens.remove(displayId);
                }
            }
        }

调用了frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java的removeSleepToken方法:

    void removeSleepToken(SleepToken token) {
        if (!mSleepTokens.contains(token.mHashKey)) {
            Slog.d(TAG, "Remove non-exist sleep token: " + token + " from " + Debug.getCallers(6));
        }
        mSleepTokens.remove(token.mHashKey);

        final DisplayContent display = getDisplayContent(token.mDisplayId);
        if (display != null) {
            display.mAllSleepTokens.remove(token);
            if (display.mAllSleepTokens.isEmpty()) {
                mService.updateSleepIfNeededLocked();
            }
        }
    }

如果此时没有SleepToken了,会调用ActivityTaskManagerService的updateSleepIfNeededLocked方法:

    void updateSleepIfNeededLocked() {
        final boolean shouldSleep = !mRootWindowContainer.hasAwakeDisplay();
        final boolean wasSleeping = mSleeping;
        boolean updateOomAdj = false;

        if (!shouldSleep) {
            // If wasSleeping is true, we need to wake up activity manager state from when
            // we started sleeping. In either case, we need to apply the sleep tokens, which
            // will wake up stacks or put them to sleep as appropriate.
            if (wasSleeping) {
                mSleeping = false;
                FrameworkStatsLog.write(FrameworkStatsLog.ACTIVITY_MANAGER_SLEEP_STATE_CHANGED,
                        FrameworkStatsLog.ACTIVITY_MANAGER_SLEEP_STATE_CHANGED__STATE__AWAKE);
                startTimeTrackingFocusedActivityLocked();
                mTopProcessState = ActivityManager.PROCESS_STATE_TOP;
                Slog.d(TAG, "Top Process State changed to PROCESS_STATE_TOP");
                mStackSupervisor.comeOutOfSleepIfNeededLocked();
            }
            mRootWindowContainer.applySleepTokens(true /* applyToStacks */);
            if (wasSleeping) {
                updateOomAdj = true;
            }
        } else if (!mSleeping && shouldSleep) {
            ......
        }
        if (updateOomAdj) {
            updateOomAdj();
        }
    }

调用了RootWindowContainer的applySleepTokens方法:

    void applySleepTokens(boolean applyToStacks) {
        for (int displayNdx = getChildCount() - 1; displayNdx >= 0; --displayNdx) {
            // Set the sleeping state of the display.
            final DisplayContent display = getChildAt(displayNdx);
            final boolean displayShouldSleep = display.shouldSleep();
            if (displayShouldSleep == display.isSleeping()) {
                continue;
            }
            display.setIsSleeping(displayShouldSleep);

            if (!applyToStacks) {
                continue;
            }

            // Set the sleeping state of the stacks on the display.
            for (int tdaNdx = display.getTaskDisplayAreaCount() - 1; tdaNdx >= 0; --tdaNdx) {
                final TaskDisplayArea taskDisplayArea = display.getTaskDisplayAreaAt(tdaNdx);
                for (int sNdx = taskDisplayArea.getStackCount() - 1; sNdx >= 0; --sNdx) {
                    final ActivityStack stack = taskDisplayArea.getStackAt(sNdx);
                    if (displayShouldSleep) {
                        stack.goToSleepIfPossible(false /* shuttingDown */);
                    } else {
                        // When the display which can only contain one task turns on, start a
                        // special transition.
                        // {@link AppTransitionController#handleAppTransitionReady} later picks up
                        // the transition, and schedules
                        // {@link ITaskStackListener#onSingleTaskDisplayDrawn} callback which is
                        // triggered after contents are drawn on the display.
                        if (display.isSingleTaskInstance()) {
                            display.mDisplayContent.prepareAppTransition(
                                    TRANSIT_SHOW_SINGLE_TASK_DISPLAY, false,
                                    0 /* flags */, true /* forceOverride*/);
                        }
                        stack.awakeFromSleepingLocked();
                        if (display.isSingleTaskInstance()) {
                            display.executeAppTransition();
                        }
                        if (stack.isFocusedStackOnDisplay()
                                && !mStackSupervisor.getKeyguardController()
                                .isKeyguardOrAodShowing(display.mDisplayId)) {
                            // If the keyguard is unlocked - resume immediately.
                            // It is possible that the display will not be awake at the time we
                            // process the keyguard going away, which can happen before the sleep
                            // token is released. As a result, it is important we resume the
                            // activity here.
                            stack.resumeTopActivityUncheckedLocked(null, null);
                        }
                        // The visibility update must not be called before resuming the top, so the
                        // display orientation can be updated first if needed. Otherwise there may
                        // have redundant configuration changes due to apply outdated display
                        // orientation (from keyguard) to activity.
                        stack.ensureActivitiesVisible(null /* starting */, 0 /* configChanges */,
                                false /* preserveWindows */);
                    }
                }
            }
        }
    }

此时如果没有keyguard会调用frameworks/base/services/core/java/com/android/server/wm/ActivityStack.java的resumeTopActivityUncheckedLocked方法,对前台Activity进行resume。

总结

1 在获取了SleepToken后,会将resume的Activity进入pause状态。

2 在释放了SleepToken后,如果此时没有SleepToken了,并且也没有keyguard,会对前台Activity进行resume。

行 27412: 12-20 16:39:21.891207 2337 3619 D KeyguardService: onScreenTurningOn 行 27471: 12-20 16:39:21.896378 1762 4917 D KEYLOG_PhoneWindowManager: mKeyguardDelegate.ShowListener.onDrawn. 行 27478: 12-20 16:39:21.897175 1762 4834 D WindowManager: Looking for focus:Window{c744be0 u0 NotificationShade} flags:-2130313152 canReceive:true reason:fromTouch= false isVisibleRequestedOrAdding=true mViewVisibility=0 mRemoveOnExit=false flags=-2130313152 appWindowsAreFocusable=true canReceiveTouchInput=true disp ... 行 27479: 12-20 16:39:21.897237 1762 4834 D WindowManager: NFW_findFocusedWindowIfNeeded:Window{c744be0 u0 NotificationShade} mCurrentFocus:null 行 27495: 12-20 16:39:21.899068 1762 4834 V WindowManager: Changing focus from null to Window{c744be0 u0 NotificationShade},diplayid=0 行 27506: 12-20 16:39:21.899934 27380 27380 V OCAM_OplusCamera: onResume, this: com.oplus.camera.Camera@58aa405, mbDisplayOnLock: true, mVersionInfo: 6.020.680__25-11-18 17:44 行 27671: 12-20 16:39:21.911471 1762 4834 D WindowManager: BarWindow--setVisible: id=1, oldState=2, state=0, mFocuseWindow= Window{c744be0 u0 NotificationShade} call: com.android.server.wm.InsetsPolicy$BarWindow.updateVisibility:902 com.android.server.wm.InsetsPolicy$BarWindow.-$$Nest$mupdateVisibility:0 com.android. ... 行 27705: 12-20 16:39:21.912511 1762 4834 D WindowManager: BarWindow--setVisible: id=2, oldState=0, state=2, mFocuseWindow= Window{c744be0 u0 NotificationShade} call: com.android.server.wm.InsetsPolicy$BarWindow.updateVisibility:902 com.android.server.wm.InsetsPolicy$BarWindow.-$$Nest$mupdateVisibility:0 com.android. ... 行 27711: 12-20 16:39:21.912902 1762 4834 D WindowManager: onSystemBarAttributesChanged ,focusedApp = com.android.systemui ,mFocusedWindow = Window{c744be0 u0 NotificationShade} ,win = Window{c744be0 u0 NotificationShade} ,appearance = 0 ,statusBarAppearanceRegions = [] 行 27741: 12-20 16:39:21.914390 1762 4834 D WindowManager: NFW_findFocusedWindowIfNeeded:null mCurrentFocus:null 行 27744: 12-20 16:39:21.914565 27380 27380 V OCAM_PopUpWindowManager: hidePopUpWindow 行 27757: 12-20 16:39:21.915488 1762 1938 D WindowManager: waitForAllWindowsDrawn displayId=16,true 行 27809: 12-20 16:39:21.919964 1762 10783 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1296 com.android.server.policy.PhoneWindowManagerExtImpl$7.run:1836 java.lang.Thread.run:1563 <bottom of call stack> <bottom of call stack> 行 27818: 12-20 16:39:21.922139 2337 2353 D KeyguardService: onStartedWakingUp pmWakeReason=1 powerButtonLaunchGestureTriggered=false 行 27828: 12-20 16:39:21.923076 1762 1899 V WindowManager: setClientVisible: WallpaperWindowToken{25ae05f showWhenLocked=true} clientVisible=false Callers=com.android.server.wm.WallpaperWindowToken.setVisible:204 com.android.server.wm.WallpaperWindowToken.updateWallpaperWindows:199 com.android.server.wm.WallpaperCont ... 行 27831: 12-20 16:39:21.923304 1762 1899 D WindowManager: NFW_setClientVisible:WallpaperWindowToken{25ae05f showWhenLocked=true} clientVisible:false 行 27893: 12-20 16:39:21.933207 1762 4834 D WindowManager: finishDrawingWindow: Window{c744be0 u0 NotificationShade} mDrawState=HAS_DRAWN 行 27894: 12-20 16:39:21.933387 1762 4834 D WindowManager: finishDrawing :Window{c744be0 u0 NotificationShade}syncSeqId:0 prepareSyncSeqId:0 postDrawTransaction:android.view.SurfaceControl$Transaction@23d3478 行 27899: 12-20 16:39:21.938017 1023 1534 D SurfaceFlinger: updateWinowInfo=1, setFocusedWindow timestamp=4546933766501, windowName=c744be0 NotificationShade 行 27994: 12-20 16:39:21.984155 1762 4833 V WindowManager: Reporting new frame to Window{d03571f u0 StatusBar}: Rect(0, 0 - 720, 70) 行 27996: 12-20 16:39:21.984622 1762 4833 V WindowManager: Reporting new frame to Window{c744be0 u0 NotificationShade}: Rect(0, 0 - 720, 1570) 行 27998: 12-20 16:39:21.984995 1762 4833 V WindowManager: Reporting new frame to Window{59b018e u0 OplusPrivacyIconTopRight}: Rect(681, 37 - 689, 45) 行 28005: 12-20 16:39:21.987229 1762 4833 D WindowManager: relayoutVisibleWindow win:Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} set mDestroying = false DestroySavedSurface remove 行 28007: 12-20 16:39:21.987422 1762 4833 D WindowManager: Looking for focus:Window{c744be0 u0 NotificationShade} flags:-2130313152 canReceive:true reason:fromTouch= false isVisibleRequestedOrAdding=true mViewVisibility=0 mRemoveOnExit=false flags=-2130313152 appWindowsAreFocusable=true canReceiveTouchInput=true disp ... 行 28008: 12-20 16:39:21.987464 1762 4833 D WindowManager: NFW_findFocusedWindowIfNeeded:Window{c744be0 u0 NotificationShade} mCurrentFocus:Window{c744be0 u0 NotificationShade} 行 28011: 12-20 16:39:21.987609 1762 4833 D WindowManager: NFW_findFocusedWindowIfNeeded:null mCurrentFocus:null 行 28013: 12-20 16:39:21.988084 1762 4833 D WindowManager: ImeContainer@251801521 assignRelativeLayer: relativeTo = Surface(name=b49131f com.oplus.camera/com.oplus.camera.Camera)/@0x260c764, oldRelativeLayer = Surface(name=ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312})/@0xe32a022, newRelativeLayer = Surfa ... 行 28013: .server.wm.DisplayContent.assignChildLayers:6719 com.android.server.wm.DisplayContent.assignWindowLayers:5025 com.android.server.wm.DisplayContent.setImeLayeringTargetInner:5416 com.android.server.wm.DisplayContent.computeImeTarget:5152 com.android.server.wm.WindowManagerService.relayoutWindow:2924 行 28016: 2 u0 com.oplus.camera/.Camera t312}, activityOrientation = 4, !rInTransition = true, config.orientation = 1, call by=com.android.server.wm.DisplayContent.updateOrientation:2060 com.android.server.wm.DisplayContent.updateOrientation:1978 com.android.server.wm.WindowManagerService.relayoutWindow:2944 com.android.server.wm.Session.relayout:317 android.view.IWindowSession$Stub.onTransact:730 com.android.server.wm.Session.onTransact:227 android.os.Binder.execTransactInternal:1444 android.os.Binder.execTransact:1378 <bottom of call s ... 行 28018: 12-20 16:39:21.990567 1762 4833 D WindowManager: updateOrientation: mLastOrientation = SCREEN_ORIENTATION_NOSENSOR(5) newOrientation = SCREEN_ORIENTATION_SENSOR(4) forceUpdate = false LastOrientationSource = ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 28086: 12-20 16:39:22.000733 1762 4250 V WindowManager: Relayout Window{c744be0 u0 NotificationShade}: viewVisibility=0, oldvis=0, req=720x1570 , apr = 0, vsysui=, x=0, y=0 行 28150: 2 u0 com.oplus.camera/.Camera t312}, activityOrientation = 4, !rInTransition = true, config.orientation = 1, call by=com.android.server.wm.DisplayContent.updateOrientation:2060 com.android.server.wm.DisplayContent.updateOrientation:1978 com.android.server.wm.WindowManagerService.relayoutWindow:2944 com.android.server.wm.Session.relayout:317 com.android.server.wm.Session.relayoutAsync:336 android.view.IWindowSession$Stub.onTransact:755 com.android.server.wm.Session.onTransact:227 android.os.Binder.execTransactInternal:1444 andro ... 行 28195: 12-20 16:39:22.010983 1762 4250 D WindowManager: finishDrawingWindow: Window{c744be0 u0 NotificationShade} mDrawState=HAS_DRAWN 行 28196: 12-20 16:39:22.011048 1762 4250 D WindowManager: finishDrawing :Window{c744be0 u0 NotificationShade}syncSeqId:0 prepareSyncSeqId:0 postDrawTransaction:android.view.SurfaceControl$Transaction@2ac4ed8 行 28224: 12-20 16:39:22.012370 1762 1899 V WindowManager: commitVisibility: WallpaperWindowToken{25ae05f showWhenLocked=true}: visible=false mVisibleRequested=true 行 28230: 12-20 16:39:22.012757 1762 1899 V WindowManager: setClientVisible: WallpaperWindowToken{25ae05f showWhenLocked=true} clientVisible=true Callers=com.android.server.wm.WallpaperWindowToken.setVisible:204 com.android.server.wm.WallpaperWindowToken.commitVisibility:272 com.android.server.wm.WallpaperWindowToken ... 行 28232: 12-20 16:39:22.012859 1762 1899 D WindowManager: NFW_setClientVisible:WallpaperWindowToken{25ae05f showWhenLocked=true} clientVisible:true 行 28366: 12-20 16:39:22.027268 1762 4836 D OplusStartingWindowManager: updateRecordSurfaceViewState windowToken = android.os.BinderProxy@840a6be, surfaceState = true, attachedToWindow = true, inList = false, win = Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} 行 28372: 12-20 16:39:22.027403 1762 4836 D OplusStartingWindowManager: updateRecordSurfaceViewState windowToken = android.os.BinderProxy@840a6be, surfaceState = true, attachedToWindow = true, inList = false, win = Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} 行 28450: 12-20 16:39:22.041335 1762 3074 D WindowManager: Create SleepToken: tag=keyguard, displayId=0 行 28468: 12-20 16:39:22.042525 1762 3074 D WindowManager: setIsSleeping from false to true this=Display{#0 state=ON size=720x1570 ROTATION_0} 行 28479: 12-20 16:39:22.043299 1762 3074 V WindowManager: Sleep needs to pause ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 28480: 12-20 16:39:22.043339 1762 3074 D WindowManager: startPausing: taskFrag=Task{790916d #312 type=standard A=10170:com.oplus.camera nonResizable} mResumedActivity=ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 28481: 12-20 16:39:22.043363 1762 3074 V WindowManager: Moving to PAUSING: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 28483: 12-20 16:39:22.043511 1762 3074 V WindowManager: State movement: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} from:RESUMED to:PAUSING reason:startPausingLocked 行 28484: 12-20 16:39:22.043596 1762 3074 V WindowManager: Sending position change to ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312}, onTop: false 行 28485: 12-20 16:39:22.043674 1762 3074 V WindowManager: Waiting for top state to be released by ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 28486: 12-20 16:39:22.043970 1762 3074 V WindowManager: Enqueueing pending pause: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 28550: 12-20 16:39:22.059387 1762 3074 V WindowManager: Key dispatch not paused for screen off 行 28551: 12-20 16:39:22.059536 1762 3074 V WindowManager: Waiting for pause to complete... 行 28581: 12-20 16:39:22.064395 1762 10780 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1296 com.android.server.policy.PhoneWindowManagerExtImpl$7.run:1836 java.lang.Thread.run:1563 <bottom of call stack> <bottom of call stack> 行 28706: 12-20 16:39:22.087823 1762 3074 D FlexibleWindowManagerService: pauseFlexibleResumedActivityIfNeeded: resumed=ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312}, reason=makeInvisible, needPause=false, topResumed=null 行 28707: 12-20 16:39:22.087894 1762 3074 V WindowManager: Scheduling idle now: forceIdle=true immediate=true 行 28963: 12-20 16:39:22.121640 27380 6779 V OCAM_OplusCamera: onResume, enable mOrientationListener 行 29029: 12-20 16:39:22.134944 2337 3619 V WindowManagerShell: onTransitionReady(transaction=7567732443126) 行 29033: 12-20 16:39:22.135357 2337 2407 V WindowManagerShell: onTransitionReady (#794) android.os.BinderProxy@e5739a4: {id=794 t=WAKE f=0x840 trk=0 r=[] c=[] 行 29048: 12-20 16:39:22.135925 2337 2407 V WindowManagerShell: No transition roots in (#794) android.os.BinderProxy@e5739a4@0 so abort 行 29050: 12-20 16:39:22.136161 1762 4836 D OplusWindowManagerServiceEnhance: setInsetAnimationTid: pid 2337 ,tid 2337 ,enable true ,uafEnable true 行 29058: 12-20 16:39:22.137254 1762 1895 V WindowManager: Sent Transition (#794) createdAt=12-20 16:39:21.732 via request=TransitionRequestInfo { type = WAKE, triggerTask = null, pipChange = null, remoteTransition = null, displayChange = null, flags = 0, debugId = 794 } 行 29060: 12-20 16:39:22.137347 1762 1895 V WindowManager: startWCT=WindowContainerTransaction { changes= {} hops= [] errorCallbackToken=null taskFragmentOrganizer=null } 行 29063: 12-20 16:39:22.137481 1762 1895 V WindowManager: info={id=794 t=WAKE f=0x840 trk=0 r=[] c=[] 行 29072: 12-20 16:39:22.137731 2337 2407 V WindowManagerShell: Transition animation finished (aborted=true), notifying core (#794) android.os.BinderProxy@e5739a4@0 行 29095: 12-20 16:39:22.138586 1762 3074 D FlexibleWindowManagerService: notifyKeyguardStateChanged keyguardChanged:true ,keyguardShowing:true ,displayId:0 行 29099: 12-20 16:39:22.139081 1762 3077 D OplusWindowManagerServiceEnhance: setInsetAnimationTid: pid 2337 ,tid 2337 ,enable true ,uafEnable true 行 29129: 12-20 16:39:22.143201 1762 3074 I WindowManager: Window{bf869da u0 com.android.launcher/com.android.launcher.Launcher} state from HAS_DRAWN to NO_SURFACE; reason: destroySurface 行 29153: 12-20 16:39:22.145112 1762 3074 D WindowManager: Create SleepToken: tag=keyguard, displayId=16 行 29251: 12-20 16:39:22.168578 1762 3074 D FlexibleWindowManagerService: notifyKeyguardStateChanged keyguardChanged:true ,keyguardShowing:true ,displayId:16 行 29264: 12-20 16:39:22.170327 1762 4896 D WindowManager: finishDrawingWindow: Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} mDrawState=DRAW_PENDING 行 29265: 12-20 16:39:22.170380 1762 4896 D WindowManager: finishDrawing :Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera}syncSeqId:0 prepareSyncSeqId:0 postDrawTransaction:android.view.SurfaceControl$Transaction@9e42ac2 行 29266: 12-20 16:39:22.170447 1762 4896 V WindowManager: finishDrawingLocked: mDrawState=COMMIT_DRAW_PENDING Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} in Surface(name=com.oplus.camera/com.oplus.camera.Camera)/@0xdab6725 行 29267: 12-20 16:39:22.170495 1762 4896 I WindowManager: Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} state from DRAW_PENDING to COMMIT_DRAW_PENDING; reason: finishDrawingLocked 行 29299: 12-20 16:39:22.178543 1762 1899 I WindowManager: Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} state from COMMIT_DRAW_PENDING to READY_TO_SHOW; reason: commitFinishDrawingLocked 行 29311: 12-20 16:39:22.180604 1762 1899 D OplusAONSmartDim: onWakeLockAcquireLocked: lock=54205997, flags=0x2000000a, packageName=android, tag="WindowManager/displayId:0", ws=WorkSource{10170 com.oplus.camera}, uid=1000, pid=1762 行 29329: 12-20 16:39:22.183763 1762 1895 V WindowManager: Finish Transition (#794): created at 12-20 16:39:21.732 collect-started=0.036ms request-sent=0.597ms started=27.462ms ready=304.855ms sent=396.015ms commit=22.383ms finished=449.992ms 行 29403: 12-20 16:39:22.186995 1762 3077 D KEYLOG_PhoneWindowManager: setKeyguardOccludedLw occluded=true,false,true 行 29408: 12-20 16:39:22.187249 1762 3077 D KEYLOG_PhoneWindowManager: setKeyguardOccludedLw occluded=true,true,false 行 29422: 12-20 16:39:22.188708 2337 2407 V WindowManagerShell: Track 0 became idle 行 29423: 12-20 16:39:22.188761 2337 2407 V WindowManagerShell: All active transition animations finished 行 29464: 12-20 16:39:22.192227 1762 4816 V WindowManager: Stopping ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312}: nowVisible=false animating=false finishing=false 行 29472: 12-20 16:39:22.192839 1762 3077 D WindowManager: Remove SleepToken: tag=keyguard, displayId=0 行 29480: 12-20 16:39:22.194163 1762 3077 D WindowManager: setIsSleeping from true to false this=Display{#0 state=ON size=720x1570 ROTATION_0} 行 29483: 12-20 16:39:22.194404 1762 1896 W KEYLOG_PhoneWindowManager: Setting mKeyguardDrawComplete 行 30050: 12-20 16:39:22.239178 1762 4425 D OplusWindowManagerServiceEnhance: setInsetAnimationTid: pid 2337 ,tid 2337 ,enable false ,uafEnable true 行 30732: 12-20 16:39:22.299598 2337 2407 V WindowManagerShell: Transition requested (#795): android.os.BinderProxy@1868046 TransitionRequestInfo { type = WAKE, triggerTask = TaskInfo{userId=0 taskId=312 effectiveUid=10170 displayId=0 isRunning=true baseIntent=Intent { act=android.intent.action.MAIN cat=[android.inte ... 行 30739: 12-20 16:39:22.299796 1762 3077 V WindowManager: Moving to PAUSED: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} (due to timeout) 行 30750: 12-20 16:39:22.300181 1762 3077 V WindowManager: Complete pause: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 30752: 12-20 16:39:22.300229 1762 3077 V WindowManager: State movement: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} from:PAUSING to:PAUSED reason:completePausedLocked 行 30766: 12-20 16:39:22.300809 1762 3077 V WindowManager: Enqueue pending stop if needed: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} wasStopping=false visibleRequested=false 行 30767: 12-20 16:39:22.300884 1762 3077 V WindowManager: Scheduling idle now: forceIdle=true immediate=true 行 30954: 12-20 16:39:22.317516 1762 3077 V WindowManager: No longer Stopped: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 30956: 12-20 16:39:22.317734 1762 3077 V WindowManager: Moving to RESUMED: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} (in existing) 行 30958: 12-20 16:39:22.317782 1762 3077 V WindowManager: State movement: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} from:PAUSED to:RESUMED reason:resumeTopActivity 行 31060: 12-20 16:39:22.328423 1762 1779 D OplusWindowManagerServiceEnhance: setInsetAnimationTid: pid 2337 ,tid 2337 ,enable true ,uafEnable true 行 31109: 12-20 16:39:22.332568 1762 3077 W InputLog: KEYLOG_PhoneWindowManagerExtImpl : overrideIsKeyguardShowingAndNotOccluded : false 行 31111: 12-20 16:39:22.332667 1762 3077 D WindowManager: updateOrientation: mLastOrientation = SCREEN_ORIENTATION_SENSOR(4) newOrientation = SCREEN_ORIENTATION_NOSENSOR(5) forceUpdate = true LastOrientationSource = Window{c744be0 u0 NotificationShade} 行 31112: 12-20 16:39:22.332786 1762 3077 D WindowManager: rotation(ROTATION_0) no changed displayId = 0, lastOrientation = 5 行 31123: 12-20 16:39:22.333709 1762 3077 V WindowManager: Task info changed taskId=312 行 31144: 12-20 16:39:22.334283 1762 3077 D FlexibleWindowManagerService: onFlexibleWindowTaskInfoChanged: mTaskId = 312 oldIsTaskEmbedded = false curIsTaskEmbedded = false topActivity = ComponentInfo{com.oplus.camera/com.oplus.camera.Camera} taskVisible = false 行 31197: 12-20 16:39:22.336236 1762 3077 E FlexibleWindowManagerService: notifyTaskObserverToAttachController not need to notify! 行 31198: 12-20 16:39:22.336256 1762 3077 I FlexibleWindowManagerService: onFlexibleWindowTaskInfoChanged, return for cur task not embedded 行 31257: 12-20 16:39:22.340671 1762 3077 V WindowManager: notifyAppResumed: wasStopped=false ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 31259: 12-20 16:39:22.340757 1762 3077 D OplusStartingWindowManager: hasSplashWindowFlag: hasFlag=false, mStartingWindowFlags=0x0 行 31279: 12-20 16:39:22.341347 1762 3077 D WindowManager: resumeTopActivity: Resumed ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 31295: 12-20 16:39:22.342297 1762 3077 D OplusStartingWindowManager: supportSplashFastBootOptimize, packageName:com.oplus.camera, sFastBootOptimizeEnabled=false, isSplashFastBootOptimizePackage:false 行 31700: 12-20 16:39:22.372725 1762 3077 D WindowManager: resumeTopActivity: Top activity resumed ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312},caller com.android.server.wm.Task.resumeTopActivityInnerLocked:5943 com.android.server.wm.Task.resumeTopActivityUncheckedLocked:5848 com.android.server.wm.Task.r ... 行 31949: 12-20 16:39:22.401249 1762 3077 D FlexibleWindowManagerService: notifyKeyguardStateChanged keyguardChanged:false ,keyguardShowing:true ,displayId:0 行 32087: 12-20 16:39:22.410002 1762 3077 D FlexibleWindowManagerService: notifyKeyguardStateChanged keyguardChanged:false ,keyguardShowing:true ,displayId:16 行 32202: 12-20 16:39:22.418920 1762 2453 V WindowManager: Apply window transaction, syncId=-1 行 32221: 12-20 16:39:22.421045 1762 2351 I AccessibilityWindowManager: mDisplayId=0, topFocusedDisplayId=0, currentUserId=0, visibleBgUsers=null 行 32223: 12-20 16:39:22.421281 1762 2351 I AccessibilityWindowManager: 1 windows changed: [{displayId=0, title=null}] 行 32227: 12-20 16:39:22.421531 1762 2351 D AccessibilityWindowManager: onAccessibilityWindowsChanged(): updating windows for display 0 and token android.os.BinderProxy@481c47 行 32313: 12-20 16:39:22.427823 1762 1899 D WindowManager: onSyncFinishedDrawing: Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} 行 32343: 12-20 16:39:22.429073 1762 1899 D FlexibleWindowManagerService: onPsCanvasWindowStateHasDrawn windowState:Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} 行 32345: 12-20 16:39:22.429491 1762 1899 I WindowManager: Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} state from READY_TO_SHOW to HAS_DRAWN; reason: performShowLocked 行 32498: 12-20 16:39:22.438496 1762 1899 D OplusZoomWindowManagerService: saveSupportFreeFormToTaskInfo target = com.oplus.camera/.Camera isSupportZoomMode = false 行 32553: 12-20 16:39:22.443316 2337 2350 V WindowManagerShell: onTransitionReady(transaction=7567732443141) 行 32555: 12-20 16:39:22.443871 2337 2407 V WindowManagerShell: onTransitionReady (#795) android.os.BinderProxy@1868046: {id=795 t=WAKE f=0x1040 trk=0 r=[0@Point(0, 0)] c=[ 行 32616: 12-20 16:39:22.449312 2337 2407 V WindowManagerShell: Playing animation for (#795) android.os.BinderProxy@1868046@0 行 32621: 12-20 16:39:22.449944 1762 1895 V WindowManager: info={id=795 t=WAKE f=0x1040 trk=0 r=[0@Point(0, 0)] c=[ 行 32659: 12-20 16:39:22.452312 2337 2407 V WindowManagerShell: start OnePuttTransition animation, info = {id=795 t=WAKE f=0x1040 trk=0 r=[0@Point(0, 0)] c=[{m=TO_FRONT f=NONE p=WCT{android.window.IWindowContainerToken$Stub$Proxy@e297c2e} leash=Surface(name=Task=312)/@0xe3bb373 sb=Rect(0, 0 - 720, 1570) eb=Rect(0, 0 ... 行 32688: 12-20 16:39:22.453351 2337 2407 V WindowManagerShell: Transition doesn't have explicit remote, search filters for match for {id=795 t=WAKE f=0x1040 trk=0 r=[0@Point(0, 0)] c=[{m=TO_FRONT f=NONE p=WCT{android.window.IWindowContainerToken$Stub$Proxy@e297c2e} leash=Surface(name=Task=312)/@0xe3bb373 sb=Rect(0, ... 行 32692: 12-20 16:39:22.453720 2337 2407 V WindowManagerShell: Checking filter Pair{{types=[] flags=0x0] notFlags=0x100 checks=[{atype=home independent=true modes=[OPEN,TO_FRONT] flags=NONE mustBeTask=false order=TOP topActivity=ComponentInfo{com.android.launcher/com.android.launcher.Launcher} launchCookie=null win ... 行 32695: 12-20 16:39:22.453858 2337 2407 V WindowManagerShell: Delegate animation for (#795) to null 行 32703: 12-20 16:39:22.454042 27380 27380 E OCAM_OplusCamera: onPause, this: com.oplus.camera.Camera@58aa405 行 32704: 12-20 16:39:22.454113 2337 2407 V WindowManagerShell: start default transition animation, info = {id=795 t=WAKE f=0x1040 trk=0 r=[0@Point(0, 0)] c=[{m=TO_FRONT f=NONE p=WCT{android.window.IWindowContainerToken$Stub$Proxy@e297c2e} leash=Surface(name=Task=312)/@0xe3bb373 sb=Rect(0, 0 - 720, 1570) eb=Rect(0, 0 ... 行 32718: 12-20 16:39:22.455870 2337 2407 V WindowManagerShell: Transition animation finished (aborted=false), notifying core (#795) android.os.BinderProxy@1868046@0 行 32734: 12-20 16:39:22.458330 1762 1899 V WindowManager: Task info changed taskId=312 行 32736: 12-20 16:39:22.458580 1762 1899 D FlexibleWindowManagerService: onFlexibleWindowTaskInfoChanged: mTaskId = 312 oldIsTaskEmbedded = false curIsTaskEmbedded = false topActivity = ComponentInfo{com.oplus.camera/com.oplus.camera.Camera} taskVisible = true 行 32776: 12-20 16:39:22.460614 1762 1899 E FlexibleWindowManagerService: notifyTaskObserverToAttachController not need to notify! 行 32777: 12-20 16:39:22.460621 1762 1899 I FlexibleWindowManagerService: onFlexibleWindowTaskInfoChanged, return for cur task not embedded 行 32814: 12-20 16:39:22.466407 1762 1895 V WindowManager: Finish Transition (#795): created at 12-20 16:39:22.194 collect-started=0.049ms request-sent=3.554ms started=223.725ms ready=223.708ms sent=246.312ms commit=25.229ms finished=270.762ms 行 32848: 12-20 16:39:22.470059 1762 4915 D KEYLOG_PhoneWindowManager: setKeyguardOccludedLw occluded=true,true,false 行 32859: Control hide: sc Surface(name=SplashFakeImageSurface)/@0xe4c192e tx=7567732443137 ,layerId= 8354 caller = SurfaceControl.java.hide:3599 OplusFakeImageLayerExtImpl.java.removeFakeImageLayerSync:492 OplusFakeImageLayerExtImpl.java.removeFakeImageLayer:469 PhoneWindowManager.java.setKeyguardOccludedLw:5593 PhoneWindowManager.java.applyKeyguardOcclusionChange:5285 D8$$SyntheticClass.run:0 TransitionController.java.validateStates:1223 TransitionController.java.finishTransition:1188 WindowOrganizerController.java.finishTransition:595 ... 行 32859: e)/@0xe4c192e tx=7567732443137 ,layerId= 8354 caller = SurfaceControl.java.hide:3599 OplusFakeImageLayerExtImpl.java.removeFakeImageLayerSync:492 OplusFakeImageLayerExtImpl.java.removeFakeImageLayer:469 PhoneWindowManager.java.setKeyguardOccludedLw:5593 PhoneWindowManager.java.applyKeyguardOcclusionChange:5285 D8$$SyntheticClass.run:0 TransitionController.java.validateStates:1223 TransitionController.java.finishTransition:1188 WindowOrganizerController.java.finishTransition:595 IWindowOrganizerController.java.onTransact:376 行 32861: =7567732443137 ,layerId= 8354 ,parentLayerId= -1, parent=null, caller=SurfaceControl.java.reparent:4398 SurfaceControl.java.remove:5618 OplusFakeImageLayerExtImpl.java.removeFakeImageLayerSync:493 OplusFakeImageLayerExtImpl.java.removeFakeImageLayer:469 PhoneWindowManager.java.setKeyguardOccludedLw:5593 PhoneWindowManager.java.applyKeyguardOcclusionChange:5285 D8$$SyntheticClass.run:0 TransitionController.java.validateStates:1223 TransitionController.java.finishTransition:1188 WindowOrganizerController.java.finishTransition:595 行 32861: arent=null, caller=SurfaceControl.java.reparent:4398 SurfaceControl.java.remove:5618 OplusFakeImageLayerExtImpl.java.removeFakeImageLayerSync:493 OplusFakeImageLayerExtImpl.java.removeFakeImageLayer:469 PhoneWindowManager.java.setKeyguardOccludedLw:5593 PhoneWindowManager.java.applyKeyguardOcclusionChange:5285 D8$$SyntheticClass.run:0 TransitionController.java.validateStates:1223 TransitionController.java.finishTransition:1188 WindowOrganizerController.java.finishTransition:595 行 32862: urfaceControl release: this = Surface(name=SplashFakeImageSurface)/@0xe4c192e , layerId= 8354 , caller=SurfaceControl.java.remove:5619 OplusFakeImageLayerExtImpl.java.removeFakeImageLayerSync:493 OplusFakeImageLayerExtImpl.java.removeFakeImageLayer:469 PhoneWindowManager.java.setKeyguardOccludedLw:5593 PhoneWindowManager.java.applyKeyguardOcclusionChange:5285 行 32862: akeImageSurface)/@0xe4c192e , layerId= 8354 , caller=SurfaceControl.java.remove:5619 OplusFakeImageLayerExtImpl.java.removeFakeImageLayerSync:493 OplusFakeImageLayerExtImpl.java.removeFakeImageLayer:469 PhoneWindowManager.java.setKeyguardOccludedLw:5593 PhoneWindowManager.java.applyKeyguardOcclusionChange:5285 行 32906: 12-20 16:39:22.476208 1762 1898 D WindowManager: allResumedActivitiesIdle: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} not idle 行 32908: 12-20 16:39:22.476896 1762 1896 I WindowManager: Window{c744be0 u0 NotificationShade} state from HAS_DRAWN to DRAW_PENDING; reason: requestDrawIfNeeded 行 32910: 12-20 16:39:22.477274 1762 1896 I WindowManager: Waiting for drawn Window{c744be0 u0 NotificationShade}: removed=false visible=true mHasSurface=true drawState=1 行 32911: 12-20 16:39:22.477379 2337 2407 V WindowManagerShell: Track 0 became idle 行 32913: 12-20 16:39:22.477403 2337 2407 V WindowManagerShell: All active transition animations finished 行 32915: 12-20 16:39:22.477439 2337 2407 V WindowManagerShell: animated by com.android.wm.shell.transition.DefaultTransitionHandler@1a78971 行 32917: 12-20 16:39:22.477453 1762 1896 D WindowManager: waitForAllWindowsDrawn displayId=-1,false 行 32918: 12-20 16:39:22.477494 2337 2407 V WindowManagerShell: Track 0 became idle 行 32919: 12-20 16:39:22.477507 2337 2407 V WindowManagerShell: All active transition animations finished 行 32932: 12-20 16:39:22.477848 1762 2248 I SurfaceControl: SurfaceControl release: this = Surface(name=6adba94 SurfaceView[com.oplus.camera/com.oplus.camera.Camera])/@0x5e2349e , layerId= 8318 , caller=WindowStateExtImpl.java.removeExcludeLayers:2325 OplusWindowManagerService.java.removeExcludeLayers:699 OplusWindowManagerServiceEnhance.java.removeExcludeLayers:1338 IOplusWindowManager.java.onTransact:1795 Binder.java.execTransactInternal:1444 行 32932: trol: SurfaceControl release: this = Surface(name=6adba94 SurfaceView[com.oplus.camera/com.oplus.camera.Camera])/@0x5e2349e , layerId= 8318 , caller=WindowStateExtImpl.java.removeExcludeLayers:2325 OplusWindowManagerService.java.removeExcludeLayers:699 OplusWindowManagerServiceEnhance.java.removeExcludeLayers:1338 IOplusWindowManager.java.onTransact:1795 Binder.java.execTransactInternal:1444 行 32932: ceView[com.oplus.camera/com.oplus.camera.Camera])/@0x5e2349e , layerId= 8318 , caller=WindowStateExtImpl.java.removeExcludeLayers:2325 OplusWindowManagerService.java.removeExcludeLayers:699 OplusWindowManagerServiceEnhance.java.removeExcludeLayers:1338 IOplusWindowManager.java.onTransact:1795 Binder.java.execTransactInternal:1444 行 32933: 12-20 16:39:22.478073 1762 2248 I SurfaceControl: SurfaceControl release: this = Surface(name=6adba94 SurfaceView[com.oplus.camera/com.oplus.camera.Camera])/@0x627f519 , layerId= 8318 , caller=WindowStateExtImpl.java.removeExcludeLayers:2329 OplusWindowManagerService.java.removeExcludeLayers:699 OplusWindowManagerServiceEnhance.java.removeExcludeLayers:1338 IOplusWindowManager.java.onTransact:1795 Binder.java.execTransactInternal:1444 行 32933: trol: SurfaceControl release: this = Surface(name=6adba94 SurfaceView[com.oplus.camera/com.oplus.camera.Camera])/@0x627f519 , layerId= 8318 , caller=WindowStateExtImpl.java.removeExcludeLayers:2329 OplusWindowManagerService.java.removeExcludeLayers:699 OplusWindowManagerServiceEnhance.java.removeExcludeLayers:1338 IOplusWindowManager.java.onTransact:1795 Binder.java.execTransactInternal:1444 行 32933: ceView[com.oplus.camera/com.oplus.camera.Camera])/@0x627f519 , layerId= 8318 , caller=WindowStateExtImpl.java.removeExcludeLayers:2329 OplusWindowManagerService.java.removeExcludeLayers:699 OplusWindowManagerServiceEnhance.java.removeExcludeLayers:1338 IOplusWindowManager.java.onTransact:1795 Binder.java.execTransactInternal:1444 行 32936: 12-20 16:39:22.479146 1762 1896 W Looper : Slow delivery took 298ms android.ui app=system_server main=false group=UNKNOWN h=com.android.server.policy.PhoneWindowManager$PolicyHandler c=null m=5 行 32937: 12-20 16:39:22.479291 1762 1896 W Looper : Slow dispatch took 283ms android.ui app=system_server main=false group=UNKNOWN h=com.android.server.policy.PhoneWindowManager$PolicyHandler c=null m=5 行 32942: 12-20 16:39:22.480181 1762 1896 W KEYLOG_PhoneWindowManager: All windows drawn on display 16 行 32947: g:66 com.android.server.wm.FoldScreenBlackCoverController.checkFinishFolding:146 com.android.server.wm.FoldScreenBlackCoverController.finishWindowsDrawn:76 com.android.server.wm.FoldScreenSwitchingManager.finishWindowsDrawn:196 com.android.server.policy.PhoneWindowManagerExtImpl.finishWindowsDrawn:4057 行 32977: 12-20 16:39:22.487181 1762 3074 D WindowManager: BarWindow--setVisible: id=2, oldState=2, state=0, mFocuseWindow= Window{c744be0 u0 NotificationShade} call: com.android.server.wm.InsetsPolicy$BarWindow.updateVisibility:902 com.android.server.wm.InsetsPolicy$BarWindow.-$$Nest$mupdateVisibility:0 com.android. ... 行 32989: 12-20 16:39:22.488121 1762 3074 D WindowManager: onSystemBarAttributesChanged ,focusedApp = com.android.systemui ,mFocusedWindow = Window{c744be0 u0 NotificationShade} ,win = Window{c744be0 u0 NotificationShade} ,appearance = 0 ,statusBarAppearanceRegions = [] 行 32994: 12-20 16:39:22.488349 27380 27380 V OCAM_OplusCamera: onPause X, this: com.oplus.camera.Camera@58aa405 行 33006: 12-20 16:39:22.489292 1762 3074 D WindowManagerServiceExtImpl: extractConfigInfoAndRealFlags rotation=0, screenDp=360, residentWS:0, scenario:0, bounds:1570, serverWinBounds:Rect(0, 0 - 720, 1570), win=Window{c744be0 u0 NotificationShade} 行 33014: 12-20 16:39:22.489953 1762 3074 V WindowManager: Relayout Window{c744be0 u0 NotificationShade}: viewVisibility=0, oldvis=0, req=720x1570 , apr = 0, vsysui=, x=0, y=0 行 33041: 12-20 16:39:22.493258 1762 3074 D WindowManager: onSystemBarAttributesChanged ,focusedApp = com.android.systemui ,mFocusedWindow = Window{c744be0 u0 NotificationShade} ,win = Window{c744be0 u0 NotificationShade} ,appearance = 0 ,statusBarAppearanceRegions = [AppearanceRegion{ bounds=[0,0][720,1570]}] 行 33043: 12-20 16:39:22.494118 1762 3074 V WindowManager: Resize reasons for w=Window{59b018e u0 OplusPrivacyIconTopRight}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 33044: 12-20 16:39:22.494197 1762 3074 V WindowManager: Resizing window Window{59b018e u0 OplusPrivacyIconTopRight} 行 33045: 12-20 16:39:22.494352 1762 3074 V WindowManager: Resize reasons for w=Window{917339a u0 NavigationBar_displayId_0}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 33046: 12-20 16:39:22.494382 1762 3074 V WindowManager: Resizing window Window{917339a u0 NavigationBar_displayId_0} 行 33047: 12-20 16:39:22.494447 1762 3074 V WindowManager: Resize reasons for w=Window{c744be0 u0 NotificationShade}: forceReportingResized=true insetsChanged=true configChanged=false didFrameInsetsChange=true 行 33048: 12-20 16:39:22.494471 1762 3074 V WindowManager: Resizing window Window{c744be0 u0 NotificationShade} 行 33049: 12-20 16:39:22.494574 1762 3074 V WindowManager: Resize reasons for w=Window{d03571f u0 StatusBar}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 33050: 12-20 16:39:22.494603 1762 3074 V WindowManager: Resizing window Window{d03571f u0 StatusBar} 行 33051: 12-20 16:39:22.494800 1762 3074 V WindowManager: Resize reasons for w=Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 33052: 12-20 16:39:22.495099 1762 3074 V WindowManager: Resizing window Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} 行 33053: 12-20 16:39:22.495296 1762 3074 V WindowManager: Resize reasons for w=Window{a4e1079 u0 com.android.systemui.wallpapers.ImageWallpaper}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 33054: 12-20 16:39:22.495463 1762 3074 V WindowManager: Resizing window Window{a4e1079 u0 com.android.systemui.wallpapers.ImageWallpaper} 行 33057: 12-20 16:39:22.495747 1762 3074 V WindowManager: Reporting new frame to Window{a4e1079 u0 com.android.systemui.wallpapers.ImageWallpaper}: Rect(0, 0 - 720, 1570) 行 33059: 12-20 16:39:22.496695 1762 3074 V WindowManager: Reporting new frame to Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera}: Rect(0, 0 - 720, 1570) 行 33060: 12-20 16:39:22.497290 1762 3074 V WindowManager: Reporting new frame to Window{d03571f u0 StatusBar}: Rect(0, 0 - 720, 70) 行 33062: 12-20 16:39:22.497822 1762 3074 V WindowManager: Reporting new frame to Window{c744be0 u0 NotificationShade}: Rect(0, 0 - 720, 1570) 行 33065: 12-20 16:39:22.498380 1762 3074 V WindowManager: Reporting new frame to Window{917339a u0 NavigationBar_displayId_0}: Rect(0, 1482 - 720, 1570) 行 33078: 12-20 16:39:22.500995 1762 3074 V WindowManager: Reporting new frame to Window{59b018e u0 OplusPrivacyIconTopRight}: Rect(681, 37 - 689, 45) 行 33090: 12-20 16:39:22.503765 1762 4435 D OplusWindowManagerServiceEnhance: setInsetAnimationTid: pid 2337 ,tid 2337 ,enable false ,uafEnable true 行 33091: 12-20 16:39:22.503865 1762 3074 I WindowManager: Waiting for drawn Window{c744be0 u0 NotificationShade}: removed=false visible=true mHasSurface=true drawState=1 行 33096: 12-20 16:39:22.504282 1762 3074 D WindowManager: Looking for focus:Window{c744be0 u0 NotificationShade} flags:-2129264576 canReceive:true reason:fromTouch= false isVisibleRequestedOrAdding=true mViewVisibility=0 mRemoveOnExit=false flags=-2129264576 appWindowsAreFocusable=true canReceiveTouchInput=true disp ... 行 33097: 12-20 16:39:22.504438 1762 3074 D WindowManager: NFW_findFocusedWindowIfNeeded:Window{c744be0 u0 NotificationShade} mCurrentFocus:Window{c744be0 u0 NotificationShade} 行 33100: 12-20 16:39:22.504513 1762 3074 D WindowManager: NFW_findFocusedWindowIfNeeded:null mCurrentFocus:null 行 33117: 12-20 16:39:22.506135 1762 3074 I WindowManager: Waiting for drawn Window{c744be0 u0 NotificationShade}: removed=false visible=true mHasSurface=true drawState=1 行 33137: 12-20 16:39:22.509918 1762 3074 V WindowManager: Relayout Window{917339a u0 NavigationBar_displayId_0}: viewVisibility=0, oldvis=0, req=720x88 , apr = 0, vsysui=, x=0, y=0 行 33157: 12-20 16:39:22.512250 1762 3074 I WindowManager: Waiting for drawn Window{c744be0 u0 NotificationShade}: removed=false visible=true mHasSurface=true drawState=1 行 33311: 12-20 16:39:22.526756 1762 2351 I AccessibilityWindowManager: mDisplayId=0, topFocusedDisplayId=0, currentUserId=0, visibleBgUsers=null 行 33324: 12-20 16:39:22.529531 1762 2351 I AccessibilityWindowManager: 1 windows changed: [{displayId=0, title=null}] 行 33326: 12-20 16:39:22.529632 1762 2351 D AccessibilityWindowManager: onAccessibilityWindowsChanged(): updating windows for display 0 and token android.os.BinderProxy@481c47 行 33393: 12-20 16:39:22.543042 1762 1898 I AccessibilityWindowManager: mDisplayId=0, topFocusedDisplayId=0, currentUserId=0, visibleBgUsers=null 行 33394: 12-20 16:39:22.543190 1762 1898 I AccessibilityWindowManager: 1 windows changed: [{displayId=0, title=null}] 行 33395: 12-20 16:39:22.543273 1762 1898 D AccessibilityWindowManager: onAccessibilityWindowsChanged(): NOT updating windows for display 0 and token android.os.BinderProxy@481c47 行 33401: 12-20 16:39:22.544472 1762 1898 D WindowManager: Looking for focus:Window{c744be0 u0 NotificationShade} flags:-2129264576 canReceive:true reason:fromTouch= false isVisibleRequestedOrAdding=true mViewVisibility=0 mRemoveOnExit=false flags=-2129264576 appWindowsAreFocusable=true canReceiveTouchInput=true disp ... 行 33402: 12-20 16:39:22.544522 1762 1898 D WindowManager: NFW_findFocusedWindowIfNeeded:Window{c744be0 u0 NotificationShade} mCurrentFocus:Window{c744be0 u0 NotificationShade} 行 33405: 12-20 16:39:22.544645 1762 1898 D WindowManager: NFW_findFocusedWindowIfNeeded:null mCurrentFocus:null 行 33452: 12-20 16:39:22.556707 1762 1898 I AccessibilityWindowManager: mDisplayId=0, topFocusedDisplayId=0, currentUserId=0, visibleBgUsers=null 行 33453: 12-20 16:39:22.556871 1762 1898 I AccessibilityWindowManager: 1 windows changed: [{displayId=0, title=null}] 行 33454: 12-20 16:39:22.556945 1762 1898 D AccessibilityWindowManager: onAccessibilityWindowsChanged(): NOT updating windows for display 0 and token android.os.BinderProxy@481c47 行 33467: 12-20 16:39:22.559916 1762 1898 D WindowManager: Looking for focus:Window{c744be0 u0 NotificationShade} flags:-2129264576 canReceive:true reason:fromTouch= false isVisibleRequestedOrAdding=true mViewVisibility=0 mRemoveOnExit=false flags=-2129264576 appWindowsAreFocusable=true canReceiveTouchInput=true disp ... 行 33468: 12-20 16:39:22.559966 1762 1898 D WindowManager: NFW_findFocusedWindowIfNeeded:Window{c744be0 u0 NotificationShade} mCurrentFocus:Window{c744be0 u0 NotificationShade} 行 33471: 12-20 16:39:22.560088 1762 1898 D WindowManager: NFW_findFocusedWindowIfNeeded:null mCurrentFocus:null 行 33512: 12-20 16:39:22.563756 1762 1898 D PowerManagerService: UA TimeoutOverrideFromWindowManagerInternal = 10000 行 33561: 12-20 16:39:22.568788 27380 27380 V OCAM_OplusCamera: onResume, this: com.oplus.camera.Camera@58aa405, mbDisplayOnLock: false, mVersionInfo: 6.020.680__25-11-18 17:44 行 33581: 12-20 16:39:22.569848 1762 1898 I AccessibilityWindowManager: mDisplayId=0, topFocusedDisplayId=0, currentUserId=0, visibleBgUsers=null 行 33583: 12-20 16:39:22.569962 1762 1898 I AccessibilityWindowManager: 1 windows changed: [{displayId=0, title=null}] 行 33584: 12-20 16:39:22.570028 1762 1898 D AccessibilityWindowManager: onAccessibilityWindowsChanged(): NOT updating windows for display 0 and token android.os.BinderProxy@481c47 行 33672: 12-20 16:39:22.577375 1762 4425 I AccessibilityWindowManager: mDisplayId=0, topFocusedDisplayId=0, currentUserId=0, visibleBgUsers=null 行 33675: 12-20 16:39:22.577482 1762 4425 I AccessibilityWindowManager: 1 windows changed: [{displayId=0, title=null}] 行 33676: 12-20 16:39:22.577545 1762 4425 D AccessibilityWindowManager: onAccessibilityWindowsChanged(): updating windows for display 0 and token android.os.BinderProxy@481c47 行 33702: 12-20 16:39:22.582530 27380 27380 V OCAM_PopUpWindowManager: hidePopUpWindow 行 33723: 12-20 16:39:22.583966 1762 4425 I AccessibilityWindowManager: mDisplayId=0, topFocusedDisplayId=0, currentUserId=0, visibleBgUsers=null 行 33724: 12-20 16:39:22.584053 1762 4425 I AccessibilityWindowManager: 1 windows changed: [{displayId=0, title=null}] 行 33727: 12-20 16:39:22.584090 1762 4425 D AccessibilityWindowManager: onAccessibilityWindowsChanged(): updating windows for display 0 and token android.os.BinderProxy@481c47 行 34065: 12-20 16:39:22.601815 27380 6779 V OCAM_OplusCamera: onResume, enable mOrientationListener 行 34158: 12-20 16:39:22.621642 1762 4250 D WindowManager: Create SleepToken: tag=keyguard, displayId=0 行 34164: 12-20 16:39:22.622067 2337 2407 V WindowManagerShell: Transition requested (#796): android.os.BinderProxy@b5296b7 TransitionRequestInfo { type = KEYGUARD_UNOCCLUDE, triggerTask = null, pipChange = null, remoteTransition = null, displayChange = null, flags = 8192, debugId = 796 } 行 34252: 12-20 16:39:22.629105 1762 4250 D WindowManager: setIsSleeping from false to true this=Display{#0 state=ON size=720x1570 ROTATION_0} 行 34391: 12-20 16:39:22.631354 1762 4250 V WindowManager: Sleep needs to pause ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 34392: 12-20 16:39:22.631373 1762 4250 D WindowManager: startPausing: taskFrag=Task{790916d #312 type=standard A=10170:com.oplus.camera nonResizable} mResumedActivity=ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 34393: 12-20 16:39:22.631385 1762 4250 V WindowManager: Moving to PAUSING: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 34395: 12-20 16:39:22.631415 1762 4250 V WindowManager: State movement: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} from:RESUMED to:PAUSING reason:startPausingLocked 行 34397: 12-20 16:39:22.631455 1762 4250 V WindowManager: Sending position change to ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312}, onTop: false 行 34398: 12-20 16:39:22.631497 1762 4250 V WindowManager: Waiting for top state to be released by ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 34400: 12-20 16:39:22.631562 1762 4250 V WindowManager: Enqueueing pending pause: ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312} 行 34660: 12-20 16:39:22.673779 1762 1997 D OplusWindowManagerServiceEnhance: setInsetAnimationTid: pid 2337 ,tid 2337 ,enable false ,uafEnable true 行 35111: 12-20 16:39:22.713626 1762 4250 V WindowManager: Key dispatch not paused for screen off 行 35113: 12-20 16:39:22.713734 1762 4250 V WindowManager: Waiting for pause to complete... 行 35313: 12-20 16:39:22.724361 1762 4250 D FlexibleWindowManagerService: pauseFlexibleResumedActivityIfNeeded: resumed=ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312}, reason=makeInvisible, needPause=false, topResumed=null 行 35325: 12-20 16:39:22.724806 1762 4250 V WindowManager: Scheduling idle now: forceIdle=true immediate=true 行 35391: 12-20 16:39:22.727758 1762 1899 V WindowManager: Resize reasons for w=Window{59b018e u0 OplusPrivacyIconTopRight}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 35393: 12-20 16:39:22.727812 1762 1899 V WindowManager: Resizing window Window{59b018e u0 OplusPrivacyIconTopRight} 行 35397: 12-20 16:39:22.727957 1762 1899 V WindowManager: Resize reasons for w=Window{917339a u0 NavigationBar_displayId_0}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 35399: 12-20 16:39:22.727995 1762 1899 V WindowManager: Resizing window Window{917339a u0 NavigationBar_displayId_0} 行 35402: 12-20 16:39:22.728074 1762 1899 V WindowManager: Resize reasons for w=Window{c744be0 u0 NotificationShade}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 35405: 12-20 16:39:22.728119 1762 1899 V WindowManager: Resizing window Window{c744be0 u0 NotificationShade} 行 35408: 12-20 16:39:22.728251 1762 1899 V WindowManager: Resize reasons for w=Window{d03571f u0 StatusBar}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 35410: 12-20 16:39:22.728301 1762 1899 V WindowManager: Resizing window Window{d03571f u0 StatusBar} 行 35413: 12-20 16:39:22.728455 1762 1899 V WindowManager: Resize reasons for w=Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 35414: 12-20 16:39:22.728506 1762 1899 V WindowManager: Resizing window Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} 行 35416: 12-20 16:39:22.728673 1762 1899 V WindowManager: Resize reasons for w=Window{a4e1079 u0 com.android.systemui.wallpapers.ImageWallpaper}: forceReportingResized=false insetsChanged=true configChanged=false didFrameInsetsChange=false 行 35419: 12-20 16:39:22.728910 1762 1899 V WindowManager: Resizing window Window{a4e1079 u0 com.android.systemui.wallpapers.ImageWallpaper} 行 35434: 12-20 16:39:22.729944 1762 1899 V WindowManager: Reporting new frame to Window{a4e1079 u0 com.android.systemui.wallpapers.ImageWallpaper}: Rect(0, 0 - 720, 1570) 行 35439: 12-20 16:39:22.730744 1762 1899 V WindowManager: Reporting new frame to Window{d03571f u0 StatusBar}: Rect(0, 0 - 720, 70) 行 35445: 12-20 16:39:22.731396 1762 1899 V WindowManager: Reporting new frame to Window{c744be0 u0 NotificationShade}: Rect(0, 0 - 720, 1570) 行 35449: 12-20 16:39:22.731895 1762 1899 V WindowManager: Reporting new frame to Window{917339a u0 NavigationBar_displayId_0}: Rect(0, 1482 - 720, 1570) 行 35462: 12-20 16:39:22.732802 1762 1899 V WindowManager: Reporting new frame to Window{59b018e u0 OplusPrivacyIconTopRight}: Rect(681, 37 - 689, 45) 行 35477: 12-20 16:39:22.739430 1762 1899 I WindowManager: Waiting for drawn Window{c744be0 u0 NotificationShade}: removed=false visible=true mHasSurface=true drawState=1 行 35490: 12-20 16:39:22.744646 1762 4425 V WindowManager: Apply window transaction, syncId=-1 行 35657: 12-20 16:39:22.759244 1762 1899 D OplusZoomWindowManagerService: saveSupportFreeFormToTaskInfo target = com.oplus.camera/.Camera isSupportZoomMode = false 行 35711: 12-20 16:39:22.762556 1762 1895 V WindowManager: Sent Transition (#796) createdAt=12-20 16:39:22.620 via request=TransitionRequestInfo { type = KEYGUARD_UNOCCLUDE, triggerTask = null, pipChange = null, remoteTransition = null, displayChange = null, flags = 8192, debugId = 796 } 行 35713: 12-20 16:39:22.762618 1762 1895 V WindowManager: startWCT=WindowContainerTransaction { changes= {} hops= [] errorCallbackToken=null taskFragmentOrganizer=null } 行 35720: 12-20 16:39:22.762747 2337 7706 V WindowManagerShell: onTransitionReady(transaction=7567732443158) 行 35721: 12-20 16:39:22.762783 1762 1895 V WindowManager: info={id=796 t=KEYGUARD_UNOCCLUDE f=0x2040 trk=0 r=[0@Point(0, 0)] c=[ 行 35738: 12-20 16:39:22.764293 2337 2407 V WindowManagerShell: onTransitionReady (#796) android.os.BinderProxy@b5296b7: {id=796 t=KEYGUARD_UNOCCLUDE f=0x2040 trk=0 r=[0@Point(0, 0)] c=[ 行 35770: 12-20 16:39:22.765676 2337 2407 V WindowManagerShell: Playing animation for (#796) android.os.BinderProxy@b5296b7@0 行 35829: 12-20 16:39:22.766392 1762 1899 I WindowManager: Waiting for drawn Window{c744be0 u0 NotificationShade}: removed=false visible=true mHasSurface=true drawState=1 行 35832: 12-20 16:39:22.766691 2337 2407 V WindowManagerShell: start keyguard unocclude transition, info = {id=796 t=KEYGUARD_UNOCCLUDE f=0x2040 trk=0 r=[0@Point(0, 0)] c=[{m=TO_BACK f=NONE leash=Surface(name=Task=312)/@0x341bcc1 sb=Rect(0, 0 - 720, 1570) eb=Rect(0, 0 - 720, 1570) epz=Point(720, 1570) d=0 taskParent ... 行 35891: 12-20 16:39:22.771464 1762 4425 V WindowManager: Top resumed state released (transition complete) 行 35900: 12-20 16:39:22.771827 1762 4915 D WindowManager: finishDrawingWindow: Window{c744be0 u0 NotificationShade} mDrawState=DRAW_PENDING 行 35902: 12-20 16:39:22.771897 1762 4915 D WindowManager: finishDrawing :Window{c744be0 u0 NotificationShade}syncSeqId:0 prepareSyncSeqId:0 postDrawTransaction:android.view.SurfaceControl$Transaction@84c2381 行 35912: 12-20 16:39:22.772648 1762 4915 V WindowManager: finishDrawingLocked: mDrawState=COMMIT_DRAW_PENDING Window{c744be0 u0 NotificationShade} in Surface(name=NotificationShade)/@0x1cefe05 行 35915: 12-20 16:39:22.772742 1762 4915 I WindowManager: Window{c744be0 u0 NotificationShade} state from DRAW_PENDING to COMMIT_DRAW_PENDING; reason: finishDrawingLocked 行 35936: 12-20 16:39:22.774119 1762 2000 D WindowManagerServiceExtImpl: extractConfigInfoAndRealFlags rotation=0, screenDp=360, residentWS:0, scenario:0, bounds:1570, serverWinBounds:Rect(0, 0 - 720, 1570), win=Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera} 行 35944: 12-20 16:39:22.775131 1762 2000 V WindowManager: Relayout Window{b49131f u0 com.oplus.camera/com.oplus.camera.Camera}: viewVisibility=0, oldvis=0, req=720x1570 , apr = 0, vsysui=FULLSCREEN LAYOUT_HIDE_NAVIGATION LAYOUT_FULLSCREEN IMMERSIVE_STICKY, x=0, y=0 行 35955: 12-20 16:39:22.775379 27380 27380 E OCAM_OplusCamera: onPause, this: com.oplus.camera.Camera@58aa405 行 36052: 12-20 16:39:22.777663 1762 2000 I WindowManager: Window{c744be0 u0 NotificationShade} state from COMMIT_DRAW_PENDING to READY_TO_SHOW; reason: commitFinishDrawingLocked 行 36057: 12-20 16:39:22.777799 1762 2000 I WindowManager: Window{c744be0 u0 NotificationShade} state from READY_TO_SHOW to HAS_DRAWN; reason: performShowLocked 行 36079: 12-20 16:39:22.778786 1762 2000 I WindowManager: Waiting for drawn Window{c744be0 u0 NotificationShade}: removed=false visible=true mHasSurface=true drawState=4 行 36266: 12-20 16:39:22.791088 1762 1896 W KEYLOG_PhoneWindowManager: All windows drawn on display -1 行 36460: 12-20 16:39:22.804813 1762 1898 V WindowManager: Stopping ActivityRecord{96052042 u0 com.oplus.camera/.Camera t312}: nowVisible=true animating=true finishing=false 行 36494: g:66 com.android.server.wm.FoldScreenBlackCoverController.checkFinishFolding:146 com.android.server.wm.FoldScreenBlackCoverController.finishWindowsDrawn:76 com.android.server.wm.FoldScreenSwitchingManager.finishWindowsDrawn:196 com.android.server.policy.PhoneWindowManagerExtImpl.finishWindowsDrawn:4057 行 36500: 12-20 16:39:22.813064 1762 1896 I WindowManager: Finished screen turning on...0 行 36556: 12-20 16:39:22.816264 1762 1938 D OplusFeaturePanoramicBrightness: setWindowManagerPolicy mSoftScreenOn changed to true 行 36587: 12-20 16:39:22.818231 1762 1997 D WindowManager: Remove SleepToken: tag=keyguard, displayId=0 行 36643: 12-20 16:39:22.821259 27380 27380 V OCAM_PopUpWindowManager: clearListener 行 36644: 12-20 16:39:22.821283 1762 1997 D WindowManager: setIsSleeping from true to false this=Display{#0 state=ON size=720x1570 ROTATION_0} 行 36690: 12-20 16:39:22.822287 2337 3619 D KeyguardService: onScreenTurnedOn 根据日志,排查相机现象,焦点在相机上切换了多少次
最新发布
01-06
09-10 09:51:40.867 2518 2841 D WindowManager: Remove SleepToken: tag=Display-off, displayId=0 09-10 09:51:40.867 2518 2841 I DisplayPowerController: Window Manager Policy screenTurningOn complete 09-10 09:51:40.867 2518 2841 I DisplayBrightnessStrategySelector: Changing the DisplayBrightnessStrategy from ScreenOffBrightnessStrategy to InvalidBrightnessStrategy for display 0 09-10 09:51:40.867 2518 2841 I AutomaticBrightnessController: setLightSensorEnabled enable! sensor type:5 09-10 09:51:40.867 2518 2841 I AutomaticBrightnessController: AmbientLux=0.0, mAmbientDarkeningThreshold=0.0, mAmbientBrighteningThreshold=2.0, mAmbientBrighteningSmallThreshold=2.0 09-10 09:51:40.868 2518 2841 I SceneDetector: mNeedCheckAonFlare:false, mNeedCheckProximitySensor:false 09-10 09:51:40.868 2518 2841 I AutomaticBrightnessController: updateAutoBrightness: mScreenAutoBrightness=NaN, newScreenAutoBrightness=0.0031550415 (checkedAutoBrightness=14), mAmbientLux=0.0, mUseDaemonSensorInProgress=true 09-10 09:51:40.868 2518 2841 D DisplayPowerControllerImpl: updateBrightnessChangeStatus: animating: false, displayState: 2, slowChange: false, appliedDimming: false, currentBrightness: 0.0, currentSdrBrightness: 0.0, targetBrightness: 0.0031550415, targetSdrBrightness: 0.0031550415, previousDisplayPolicy: 0, currentDisplayPolicy: 3 09-10 09:51:40.869 2518 2841 D BrightnessDataProcessor: actualBrightness: 0.0031550415originalBrightness: 0.0031550415 09-10 09:51:40.869 2518 2841 I DisplayPowerController[0]: Brightness [0.0031550415] reason changing to: 'automatic', previous reason: 'screen_off'. 09-10 09:51:40.869 2518 2841 I DisplayPowerController[0]: BrightnessEvent: brt=0.0031550415 (14.0%), nits= 3.3, lux=NaN, reason=automatic, strat=InvalidBrightnessStrategy, state=ON, stateReason=KEY, policy=BRIGHT, flags=invalid_lux , initBrt=-1.0, rcmdBrt=0.0031550415, preBrt=NaN, preLux=NaN, wasShortTermModelActive=false, autoBrightness=true (default), unclampedBrt=0.0031550415, hbmMax=0.49975574, hbmMode=off, thrmMax=1.0, rbcStrength=50, powerFactor=1.0, physDisp=鍐呯疆灞忓箷(local:4630946446063160449), logicalId=0, slowChange=false, rampSpeed=0.0 09-10 09:51:40.869 2518 2841 I AutomaticBrightnessController: AmbientLux=0.0, mAmbientDarkeningThreshold=0.0, mAmbientBrighteningThreshold=2.0, mAmbientBrighteningSmallThreshold=2.0
09-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SSSxCCC

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值