diff options
| author | 2018-12-17 14:09:01 -0800 | |
|---|---|---|
| committer | 2019-01-03 09:55:34 -0800 | |
| commit | 58b47f10307b9df67b5a9b54127a21a944c7795b (patch) | |
| tree | b6465cbb741194d8270bdb16363e66ed9da68198 | |
| parent | 76e986a2f25e71924937b63bbf1cd793d72094d3 (diff) | |
Replace snapshot starting windows w/ splashscreen
This CL replaces the use of task snapshot starting windows with
splashscreen starting windows when we have the low RAM snapshots
flag turned on.
Bug: 114136250
Test: Manual test
Change-Id: If9908a1712aa3b3e835761c5bf8c59ac1f99b51c
| -rw-r--r-- | services/core/java/com/android/server/wm/AppWindowToken.java | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index d8b2b5200f0c..a5341ca11784 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -1949,6 +1949,11 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree } else if (newTask || !processRunning || (taskSwitch && !activityCreated)) { return STARTING_WINDOW_TYPE_SPLASH_SCREEN; } else if (taskSwitch && allowTaskSnapshot) { + if (mWmService.mLowRamTaskSnapshots) { + // For low RAM devices, we use the splash screen starting window instead of the + // task snapshot starting window. + return STARTING_WINDOW_TYPE_SPLASH_SCREEN; + } return snapshot == null ? STARTING_WINDOW_TYPE_NONE : snapshotOrientationSameAsTask(snapshot) || fromRecents ? STARTING_WINDOW_TYPE_SNAPSHOT : STARTING_WINDOW_TYPE_SPLASH_SCREEN; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index b6a4a51c41f2..f5f55e2ebf73 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -433,6 +433,12 @@ public class WindowManagerService extends IWindowManager.Stub final long mDrawLockTimeoutMillis; final boolean mAllowAnimationsInLowPowerMode; + /** + * Use very low resolution task snapshots. Replaces task snapshot starting windows with + * splashscreen starting windows. Used on low RAM devices to save memory. + */ + final boolean mLowRamTaskSnapshots; + final boolean mAllowBootMessages; final boolean mLimitedAlphaCompositing; @@ -949,6 +955,8 @@ public class WindowManagerService extends IWindowManager.Stub com.android.internal.R.bool.config_disableTransitionAnimation); mPerDisplayFocusEnabled = context.getResources().getBoolean( com.android.internal.R.bool.config_perDisplayFocusEnabled); + mLowRamTaskSnapshots = context.getResources().getBoolean( + com.android.internal.R.bool.config_lowRamTaskSnapshotsAndRecents); mInputManager = inputManager; // Must be before createDisplayContentLocked. mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); mDisplayWindowSettings = new DisplayWindowSettings(this); |