diff options
author | Jeff Brown <jeffbrown@google.com> | 2014-04-07 19:45:27 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2014-04-08 20:51:07 -0700 |
commit | 13014b5fe5967b3c7e232ffaf81581ed178e6df6 (patch) | |
tree | 4771e759f79cdffe26ac7480983ea2e1f0988082 /services/core | |
parent | ad9ef191f50767d8d5b6f0fbd4b59bb1400dcd25 (diff) | |
download | frameworks_base-13014b5fe5967b3c7e232ffaf81581ed178e6df6.zip frameworks_base-13014b5fe5967b3c7e232ffaf81581ed178e6df6.tar.gz frameworks_base-13014b5fe5967b3c7e232ffaf81581ed178e6df6.tar.bz2 |
Move certain internal activity manager methods to new class.
This is a little bit of refactoring in preparation for changing how
the power manager notifies system components about changes in power
state.
Deleted the startRunning method since it is no longer useful.
Bug: 13133142
Change-Id: I7f845c61ecc7ee890154ed0cbd90795de609b7ea
Diffstat (limited to 'services/core')
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 64 | ||||
-rw-r--r-- | services/core/java/com/android/server/power/Notifier.java | 18 |
2 files changed, 28 insertions, 54 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 6c3f528..98cbe7d 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -24,7 +24,6 @@ import static com.android.internal.util.XmlUtils.writeLongAttribute; import static com.android.server.Watchdog.NATIVE_STACKS_OF_INTEREST; import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT; import static org.xmlpull.v1.XmlPullParser.START_TAG; - import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID; import android.app.AppOpsManager; @@ -33,6 +32,7 @@ import android.app.IActivityContainerCallback; import android.appwidget.AppWidgetManager; import android.graphics.Rect; import android.util.ArrayMap; + import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.IAppOpsService; @@ -49,6 +49,7 @@ import com.android.internal.util.Preconditions; import com.android.server.AppOpsService; import com.android.server.AttributeCache; import com.android.server.IntentResolver; +import com.android.server.LocalServices; import com.android.server.ServiceThread; import com.android.server.SystemService; import com.android.server.Watchdog; @@ -61,7 +62,6 @@ import com.google.android.collect.Lists; import com.google.android.collect.Maps; import dalvik.system.Zygote; - import libcore.io.IoUtils; import org.xmlpull.v1.XmlPullParser; @@ -72,6 +72,7 @@ import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManager.RunningTaskInfo; import android.app.ActivityManager.StackInfo; +import android.app.ActivityManagerInternal; import android.app.ActivityManagerNative; import android.app.ActivityOptions; import android.app.ActivityThread; @@ -798,9 +799,8 @@ public final class ActivityManagerService extends ActivityManagerNative /** * Used to control how we initialize the service. */ - boolean mStartRunning = false; ComponentName mTopComponent; - String mTopAction; + String mTopAction = Intent.ACTION_MAIN; String mTopData; boolean mProcessesReady = false; boolean mSystemReady = false; @@ -1985,7 +1985,8 @@ public final class ActivityManagerService extends ActivityManagerNative mBatteryStatsService.publish(mContext); mUsageStatsService.publish(mContext); mAppOpsService.publish(mContext); - startRunning(null, null, null, null); + + LocalServices.addService(ActivityManagerInternal.class, new LocalService()); } @Override @@ -8164,13 +8165,7 @@ public final class ActivityManagerService extends ActivityManagerNative return mSleeping || mShuttingDown; } - public void goingToSleep() { - if (checkCallingPermission(android.Manifest.permission.DEVICE_POWER) - != PackageManager.PERMISSION_GRANTED) { - throw new SecurityException("Requires permission " - + android.Manifest.permission.DEVICE_POWER); - } - + void goingToSleep() { synchronized(this) { mWentToSleep = true; updateEventDispatchingLocked(); @@ -8245,13 +8240,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } - public void wakingUp() { - if (checkCallingPermission(android.Manifest.permission.DEVICE_POWER) - != PackageManager.PERMISSION_GRANTED) { - throw new SecurityException("Requires permission " - + android.Manifest.permission.DEVICE_POWER); - } - + void wakingUp() { synchronized(this) { mWentToSleep = false; updateEventDispatchingLocked(); @@ -8971,25 +8960,6 @@ public final class ActivityManagerService extends ActivityManagerNative } } - public final void startRunning(String pkg, String cls, String action, - String data) { - synchronized(this) { - if (mStartRunning) { - return; - } - mStartRunning = true; - mTopComponent = pkg != null && cls != null - ? new ComponentName(pkg, cls) : null; - mTopAction = action != null ? action : Intent.ACTION_MAIN; - mTopData = data; - if (!mSystemReady) { - return; - } - } - - systemReady(null); - } - private void retrieveSettings() { final ContentResolver resolver = mContext.getContentResolver(); String debugApp = Settings.Global.getString( @@ -9202,9 +9172,6 @@ public final class ActivityManagerService extends ActivityManagerNative mAppOpsService.systemReady(); mSystemReady = true; - if (!mStartRunning) { - return; - } } ArrayList<ProcessRecord> procsToKill = null; @@ -10884,8 +10851,7 @@ public final class ActivityManagerService extends ActivityManagerNative } if (dumpAll) { pw.println(" Total persistent processes: " + numPers); - pw.println(" mStartRunning=" + mStartRunning - + " mProcessesReady=" + mProcessesReady + pw.println(" mProcessesReady=" + mProcessesReady + " mSystemReady=" + mSystemReady); pw.println(" mBooting=" + mBooting + " mBooted=" + mBooted @@ -16529,4 +16495,16 @@ public final class ActivityManagerService extends ActivityManagerNative info.applicationInfo = getAppInfoForUser(info.applicationInfo, userId); return info; } + + private final class LocalService extends ActivityManagerInternal { + @Override + public void goingToSleep() { + ActivityManagerService.this.goingToSleep(); + } + + @Override + public void wakingUp() { + ActivityManagerService.this.wakingUp(); + } + } } diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java index c5a71ec..19d53cb 100644 --- a/services/core/java/com/android/server/power/Notifier.java +++ b/services/core/java/com/android/server/power/Notifier.java @@ -16,10 +16,13 @@ package com.android.server.power; +import android.app.ActivityManagerInternal; import android.app.AppOpsManager; + import com.android.internal.app.IAppOpsService; import com.android.internal.app.IBatteryStats; import com.android.server.EventLogTags; +import com.android.server.LocalServices; import android.app.ActivityManagerNative; import android.content.BroadcastReceiver; @@ -81,6 +84,7 @@ final class Notifier { private final SuspendBlocker mSuspendBlocker; private final ScreenOnBlocker mScreenOnBlocker; private final WindowManagerPolicy mPolicy; + private final ActivityManagerInternal mActivityManagerInternal; private final NotifierHandler mHandler; private final Intent mScreenOnIntent; @@ -115,6 +119,7 @@ final class Notifier { mSuspendBlocker = suspendBlocker; mScreenOnBlocker = screenOnBlocker; mPolicy = policy; + mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class); mHandler = new NotifierHandler(looper); mScreenOnIntent = new Intent(Intent.ACTION_SCREEN_ON); @@ -379,12 +384,7 @@ final class Notifier { EventLog.writeEvent(EventLogTags.POWER_SCREEN_STATE, 1, 0, 0, 0); mPolicy.screenTurningOn(mScreenOnListener); - - try { - ActivityManagerNative.getDefault().wakingUp(); - } catch (RemoteException e) { - // ignore it - } + mActivityManagerInternal.wakingUp(); if (ActivityManagerNative.isSystemReady()) { mContext.sendOrderedBroadcastAsUser(mScreenOnIntent, UserHandle.ALL, null, @@ -435,11 +435,7 @@ final class Notifier { EventLog.writeEvent(EventLogTags.POWER_SCREEN_STATE, 0, why, 0, 0); mPolicy.screenTurnedOff(why); - try { - ActivityManagerNative.getDefault().goingToSleep(); - } catch (RemoteException e) { - // ignore it. - } + mActivityManagerInternal.goingToSleep(); if (ActivityManagerNative.isSystemReady()) { mContext.sendOrderedBroadcastAsUser(mScreenOffIntent, UserHandle.ALL, null, |