diff options
| author | 2018-10-25 19:59:40 -0700 | |
|---|---|---|
| committer | 2018-10-26 16:45:48 -0700 | |
| commit | 387b34ccac506bebc39d0b49aea9fbd5983eb830 (patch) | |
| tree | c2883665508791e7a0a0bd5f4ef08f6b55e09c49 | |
| parent | 24e289ab3a5e6cb5259b770ba87326bcec3a9655 (diff) | |
Made a few ATMS methods public that can be accessed from AMS (35/n)
With this CL we should the mostly ready to move ATMS and company to the
WM package.
Bug: 80414790
Test: Existing tests pass
Change-Id: Ie37efb48b7a843ef14397d88452da0cf7cb35f80
14 files changed, 67 insertions, 67 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index b6f4d7f5e94e..88558b48b2e5 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -1361,14 +1361,6 @@ public class ActivityManagerService extends IActivityManager.Stub private static String sTheRealBuildSerial = Build.UNKNOWN; - /** - * Current global configuration information. Contains general settings for the entire system, - * also corresponds to the merged configuration of the default display. - */ - Configuration getGlobalConfiguration() { - return mActivityTaskManager.getGlobalConfiguration(); - } - final class UiHandler extends Handler { public UiHandler() { super(com.android.server.UiThread.get().getLooper(), null, true); @@ -10401,7 +10393,7 @@ public class ActivityManagerService extends IActivityManager.Stub return mProviderMap.dumpProviderProto(fd, pw, name, args); } - static class ItemMatcher { + public static class ItemMatcher { ArrayList<ComponentName> components; ArrayList<String> strings; ArrayList<Integer> objects; diff --git a/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java b/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java index cf727380ae6b..4f2a254f080f 100644 --- a/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java +++ b/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java @@ -69,6 +69,7 @@ public class ActivityTaskManagerDebugConfig { static final boolean DEBUG_METRICS = DEBUG_ALL || false; static final String POSTFIX_APP = APPEND_CATEGORY_NAME ? "_App" : ""; + static final String POSTFIX_CLEANUP = (APPEND_CATEGORY_NAME) ? "_Cleanup" : ""; static final String POSTFIX_IDLE = APPEND_CATEGORY_NAME ? "_Idle" : ""; static final String POSTFIX_RELEASE = APPEND_CATEGORY_NAME ? "_Release" : ""; static final String POSTFIX_USER_LEAVING = APPEND_CATEGORY_NAME ? "_UserLeaving" : ""; diff --git a/services/core/java/com/android/server/am/ActivityTaskManagerService.java b/services/core/java/com/android/server/am/ActivityTaskManagerService.java index 4ae9856e091c..5b0a4a9b0596 100644 --- a/services/core/java/com/android/server/am/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/am/ActivityTaskManagerService.java @@ -612,23 +612,27 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { GL_ES_VERSION = SystemProperties.getInt("ro.opengles.version", GL_ES_VERSION_UNDEFINED); } - void onSystemReady() { - mHasHeavyWeightFeature = mContext.getPackageManager().hasSystemFeature( - PackageManager.FEATURE_CANT_SAVE_STATE); - mAssistUtils = new AssistUtils(mContext); - mVrController.onSystemReady(); - mRecentTasks.onSystemReadyLocked(); + public void onSystemReady() { + synchronized (mGlobalLock) { + mHasHeavyWeightFeature = mContext.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_CANT_SAVE_STATE); + mAssistUtils = new AssistUtils(mContext); + mVrController.onSystemReady(); + mRecentTasks.onSystemReadyLocked(); + } } - void onInitPowerManagement() { - mStackSupervisor.initPowerManagement(); - final PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE); - mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class); - mVoiceWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*voice*"); - mVoiceWakeLock.setReferenceCounted(false); + public void onInitPowerManagement() { + synchronized (mGlobalLock) { + mStackSupervisor.initPowerManagement(); + final PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); + mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class); + mVoiceWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*voice*"); + mVoiceWakeLock.setReferenceCounted(false); + } } - void installSystemProviders() { + public void installSystemProviders() { mFontScaleSettingObserver = new FontScaleSettingObserver(); } @@ -737,9 +741,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { mKeyguardController = mStackSupervisor.getKeyguardController(); } - void onActivityManagerInternalAdded() { - mAmInternal = LocalServices.getService(ActivityManagerInternal.class); - mUgmInternal = LocalServices.getService(UriGrantsManagerInternal.class); + public void onActivityManagerInternalAdded() { + synchronized (mGlobalLock) { + mAmInternal = LocalServices.getService(ActivityManagerInternal.class); + mUgmInternal = LocalServices.getService(UriGrantsManagerInternal.class); + } } int increaseConfigurationSeqLocked() { @@ -753,14 +759,18 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { return supervisor; } - void setWindowManager(WindowManagerService wm) { - mWindowManager = wm; - mLockTaskController.setWindowManager(wm); - mStackSupervisor.setWindowManager(wm); + public void setWindowManager(WindowManagerService wm) { + synchronized (mGlobalLock) { + mWindowManager = wm; + mLockTaskController.setWindowManager(wm); + mStackSupervisor.setWindowManager(wm); + } } - void setUsageStatsManager(UsageStatsManagerInternal usageStatsManager) { - mUsageStatsInternal = usageStatsManager; + public void setUsageStatsManager(UsageStatsManagerInternal usageStatsManager) { + synchronized (mGlobalLock) { + mUsageStatsInternal = usageStatsManager; + } } UserManagerService getUserManager() { @@ -2136,7 +2146,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } - boolean isControllerAMonkey() { + public boolean isControllerAMonkey() { synchronized (mGlobalLock) { return mController != null && mControllerIsAMonkey; } @@ -2895,7 +2905,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { }); } - void onScreenAwakeChanged(boolean isAwake) { + public void onScreenAwakeChanged(boolean isAwake) { mH.post(() -> { for (int i = mScreenObservers.size() - 1; i >= 0; i--) { mScreenObservers.get(i).onAwakeStateChanged(isAwake); @@ -4905,15 +4915,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } - boolean canShowErrorDialogs() { - return mShowDialogs && !mSleeping && !mShuttingDown - && !mKeyguardController.isKeyguardOrAodShowing(DEFAULT_DISPLAY) - && !hasUserRestriction(UserManager.DISALLOW_SYSTEM_ERROR_DIALOGS, - mAmInternal.getCurrentUserId()) - && !(UserManager.isDeviceInDemoMode(mContext) - && mAmInternal.getCurrentUser().isDemo()); - } - static long getInputDispatchingTimeoutLocked(ActivityRecord r) { if (r == null || !r.hasProcess()) { return KEY_DISPATCHING_TIMEOUT_MS; @@ -6791,5 +6792,17 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { false /* deferResume */); } } + + @Override + public boolean canShowErrorDialogs() { + synchronized (mGlobalLock) { + return mShowDialogs && !mSleeping && !mShuttingDown + && !mKeyguardController.isKeyguardOrAodShowing(DEFAULT_DISPLAY) + && !hasUserRestriction(UserManager.DISALLOW_SYSTEM_ERROR_DIALOGS, + mAmInternal.getCurrentUserId()) + && !(UserManager.isDeviceInDemoMode(mContext) + && mAmInternal.getCurrentUser().isDemo()); + } + } } } diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java index dee59cc4403d..44f69b1693e9 100644 --- a/services/core/java/com/android/server/am/AppErrors.java +++ b/services/core/java/com/android/server/am/AppErrors.java @@ -474,7 +474,7 @@ class AppErrors { mService.mProcessList.removeProcessLocked(r, false, true, "crash"); if (taskId != INVALID_TASK_ID) { try { - mService.mActivityTaskManager.startActivityFromRecents(taskId, + mService.startActivityFromRecents(taskId, ActivityOptions.makeBasic().toBundle()); } catch (IllegalArgumentException e) { // Hmm...that didn't work. Task should either be in recents or associated @@ -794,7 +794,7 @@ class AppErrors { mService.mUserController.getCurrentUserId()) != 0; final boolean crashSilenced = mAppsNotReportingCrashes != null && mAppsNotReportingCrashes.contains(proc.info.packageName); - if ((mService.mActivityTaskManager.canShowErrorDialogs() || showBackground) + if ((mService.mAtmInternal.canShowErrorDialogs() || showBackground) && !crashSilenced && (showFirstCrash || showFirstCrashDevOption || data.repeating)) { proc.crashDialog = dialogToShow = new AppErrorDialog(mContext, mService, data); @@ -847,7 +847,7 @@ class AppErrors { boolean showBackground = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0; - if (mService.mActivityTaskManager.canShowErrorDialogs() || showBackground) { + if (mService.mAtmInternal.canShowErrorDialogs() || showBackground) { dialogToShow = new AppNotRespondingDialog(mService, mContext, data); proc.anrDialog = dialogToShow; } else { diff --git a/services/core/java/com/android/server/am/MemoryStatUtil.java b/services/core/java/com/android/server/am/MemoryStatUtil.java index 85ee7e65ffe7..2c4b33864ea3 100644 --- a/services/core/java/com/android/server/am/MemoryStatUtil.java +++ b/services/core/java/com/android/server/am/MemoryStatUtil.java @@ -36,7 +36,7 @@ import java.util.regex.Pattern; /** * Static utility methods related to {@link MemoryStat}. */ -final class MemoryStatUtil { +public final class MemoryStatUtil { /** * Which native processes to create {@link MemoryStat} for. * @@ -114,7 +114,7 @@ final class MemoryStatUtil { * Returns null if no stats can be read. */ @Nullable - static MemoryStat readMemoryStatFromFilesystem(int uid, int pid) { + public static MemoryStat readMemoryStatFromFilesystem(int uid, int pid) { return hasMemcg() ? readMemoryStatFromMemcg(uid, pid) : readMemoryStatFromProcfs(pid); } @@ -266,7 +266,7 @@ final class MemoryStatUtil { return DEVICE_HAS_PER_APP_MEMCG; } - static final class MemoryStat { + public static final class MemoryStat { /** Number of page faults */ long pgfault; /** Number of major page faults */ diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index 805b979b4bb7..652d39b19a1d 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -1982,8 +1982,7 @@ public final class ProcessList { StatsLog.write(StatsLog.ISOLATED_UID_CHANGED, info.uid, uid, StatsLog.ISOLATED_UID_CHANGED__EVENT__CREATED); } - final ProcessRecord r = new ProcessRecord(mService, info, proc, uid, - mService.getGlobalConfiguration()); + final ProcessRecord r = new ProcessRecord(mService, info, proc, uid); if (!mService.mBooted && !mService.mBooting && userId == UserHandle.USER_SYSTEM diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java index 21259f4c98c2..683754cd9a35 100644 --- a/services/core/java/com/android/server/am/ProcessRecord.java +++ b/services/core/java/com/android/server/am/ProcessRecord.java @@ -535,7 +535,7 @@ final class ProcessRecord implements WindowProcessListener { } ProcessRecord(ActivityManagerService _service, ApplicationInfo _info, String _processName, - int _uid, Configuration config) { + int _uid) { mService = _service; info = _info; isolated = _info.uid != _uid; @@ -549,7 +549,7 @@ final class ProcessRecord implements WindowProcessListener { removed = false; lastStateTime = lastPssTime = nextPssTime = SystemClock.uptimeMillis(); mWindowProcessController = new WindowProcessController( - mService.mActivityTaskManager, info, processName, uid, userId, this, this, config); + mService.mActivityTaskManager, info, processName, uid, userId, this, this); pkgList.put(_info.packageName, new ProcessStats.ProcessStateHolder(_info.longVersionCode)); } @@ -1259,7 +1259,7 @@ final class ProcessRecord implements WindowProcessListener { synchronized (mService) { // PowerManager.reboot() can block for a long time, so ignore ANRs while shutting down. - if (mService.mActivityTaskManager.mShuttingDown) { + if (mService.mAtmInternal.isShuttingDown()) { Slog.i(TAG, "During shutdown skipping ANR: " + this + " " + annotation); return; } else if (isNotResponding()) { diff --git a/services/core/java/com/android/server/am/WindowProcessController.java b/services/core/java/com/android/server/am/WindowProcessController.java index 32d19aaa58c8..1dd8c52f8207 100644 --- a/services/core/java/com/android/server/am/WindowProcessController.java +++ b/services/core/java/com/android/server/am/WindowProcessController.java @@ -157,8 +157,7 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio private int mDisplayId; WindowProcessController(ActivityTaskManagerService atm, ApplicationInfo info, String name, - int uid, int userId, Object owner, WindowProcessListener listener, - Configuration config) { + int uid, int userId, Object owner, WindowProcessListener listener) { mInfo = info; mName = name; mUid = uid; @@ -168,8 +167,8 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio mAtm = atm; mLastReportedConfiguration = new Configuration(); mDisplayId = INVALID_DISPLAY; - if (config != null) { - onConfigurationChanged(config); + if (atm != null) { + onConfigurationChanged(atm.getGlobalConfiguration()); } } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java index d652d95bd304..b011da60b210 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java @@ -469,4 +469,5 @@ public abstract class ActivityTaskManagerInternal { public abstract void clearLockedTasks(String reason); public abstract void updateUserConfiguration(); + public abstract boolean canShowErrorDialogs(); } diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java index 349c0a37a4c1..060c55d41bea 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java @@ -260,7 +260,7 @@ public class ActivityManagerServiceTest { uidRec.hasInternetPermission = true; mAms.mActiveUids.put(uid, uidRec); - final ProcessRecord appRec = new ProcessRecord(mAms, new ApplicationInfo(), TAG, uid, null); + final ProcessRecord appRec = new ProcessRecord(mAms, new ApplicationInfo(), TAG, uid); appRec.thread = Mockito.mock(IApplicationThread.class); mAms.mProcessList.mLruProcesses.add(appRec); diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java index 9192d6b84fee..e1ebbcf8f653 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java @@ -83,7 +83,7 @@ public class ActivityStartControllerTests extends ActivityTestsBase { final WindowProcessController wpc = new WindowProcessController(mService, mService.mContext.getApplicationInfo(), "name", 12345, UserHandle.getUserId(12345), mock(Object.class), - mock(WindowProcessListener.class), null); + mock(WindowProcessListener.class)); wpc.setThread(mock(IApplicationThread.class)); mController.addPendingActivityLaunch( diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java index ba64b51c9e84..fb11a04ece50 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java @@ -211,7 +211,7 @@ public class ActivityStarterTests extends ActivityTestsBase { final WindowProcessController wpc = containsConditions(preconditions, PRECONDITION_NO_CALLER_APP) ? null : new WindowProcessController( - service, mock(ApplicationInfo.class),null, 0, -1, null, null, null); + service, mock(ApplicationInfo.class),null, 0, -1, null, null); doReturn(wpc).when(service).getProcessController(anyObject()); final Intent intent = new Intent(); diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java index 01d51e44146c..094241e98a8d 100644 --- a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java +++ b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java @@ -286,7 +286,7 @@ public class ActivityTestsBase { final WindowProcessController wpc = new WindowProcessController(mService, mService.mContext.getApplicationInfo(), "name", 12345, UserHandle.getUserId(12345), mock(Object.class), - mock(WindowProcessListener.class), null); + mock(WindowProcessListener.class)); wpc.setThread(mock(IApplicationThread.class)); activity.setProcess(wpc); return activity; @@ -536,11 +536,6 @@ public class ActivityTestsBase { mUgmInternal = mock(UriGrantsManagerInternal.class); } - @Override - Configuration getGlobalConfiguration() { - return mContext.getResources().getConfiguration(); - } - ActivityManagerInternal getLocalService() { if (mInternal == null) { mInternal = new LocalService(); diff --git a/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java b/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java index 06d41f1919c8..3a7a24d2e103 100644 --- a/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java +++ b/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java @@ -69,7 +69,7 @@ public class AppErrorDialogTest { @UiThreadTest public void testCreateWorks() throws Exception { AppErrorDialog.Data data = new AppErrorDialog.Data(); - data.proc = new ProcessRecord(null, mContext.getApplicationInfo(), "name", 12345, null); + data.proc = new ProcessRecord(null, mContext.getApplicationInfo(), "name", 12345); data.result = new AppErrorResult(); AppErrorDialog dialog = new AppErrorDialog(mContext, mService, data); |