diff options
author | Steve Kondik <shade@chemlab.org> | 2012-07-15 14:59:17 +0400 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.cyanogenmod.com> | 2012-07-15 14:59:17 +0400 |
commit | 98b41d00fb0c0b3ebcd88e0ba4d510aff393b184 (patch) | |
tree | 3089bb683b8465e3b6f69c738a16ed0111ddfb96 | |
parent | 4c348f881b2c5df09c7f4eff46519070841fcfaf (diff) | |
parent | d96dab724b2655864f4e1cc761b0573fb00726b4 (diff) | |
download | frameworks_base-98b41d00fb0c0b3ebcd88e0ba4d510aff393b184.zip frameworks_base-98b41d00fb0c0b3ebcd88e0ba4d510aff393b184.tar.gz frameworks_base-98b41d00fb0c0b3ebcd88e0ba4d510aff393b184.tar.bz2 |
Merge "Fix sluggish to launch an app" into ics
-rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 8 | ||||
-rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 24 |
2 files changed, 24 insertions, 8 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 3bed489..a274891 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -3004,7 +3004,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } - final void logAppTooSlow(ProcessRecord app, long startTime, String msg) { + final void logAppTooSlow(int pid, long startTime, String msg) { if (IS_USER_BUILD) { return; } @@ -3037,7 +3037,7 @@ public final class ActivityManagerService extends ActivityManagerNative sb.append(msg); FileOutputStream fos = new FileOutputStream(tracesFile); fos.write(sb.toString().getBytes()); - if (app == null) { + if (pid <= 0) { fos.write("\n*** No application process!".getBytes()); } fos.close(); @@ -3047,9 +3047,9 @@ public final class ActivityManagerService extends ActivityManagerNative return; } - if (app != null) { + if (pid > 0) { ArrayList<Integer> firstPids = new ArrayList<Integer>(); - firstPids.add(app.pid); + firstPids.add(pid); dumpStackTraces(tracesPath, firstPids, null, null); } diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 86d3a1a..d581d33 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -307,11 +307,18 @@ final class ActivityStack { // We don't at this point know if the activity is fullscreen, // so we need to be conservative and assume it isn't. Slog.w(TAG, "Activity pause timeout for " + r); + int pid = -1; + long pauseTime = 0; + String m = null; synchronized (mService) { if (r.app != null) { - mService.logAppTooSlow(r.app, r.pauseTime, - "pausing " + r); + pid = r.app.pid; } + pauseTime = r.pauseTime; + m = "pausing " + r; + } + if (pid > 0) { + mService.logAppTooSlow(pid, pauseTime, m); } activityPaused(r != null ? r.appToken : null, true); @@ -332,12 +339,21 @@ final class ActivityStack { } break; case LAUNCH_TICK_MSG: { ActivityRecord r = (ActivityRecord)msg.obj; + int pid = -1; + long launchTickTime = 0; + String m = null; synchronized (mService) { if (r.continueLaunchTickingLocked()) { - mService.logAppTooSlow(r.app, r.launchTickTime, - "launching " + r); + if (r.app != null) { + pid = r.app.pid; + } + launchTickTime = r.launchTickTime; + m = "launching " + r; } } + if (pid > 0) { + mService.logAppTooSlow(pid, launchTickTime, m); + } } break; case DESTROY_TIMEOUT_MSG: { ActivityRecord r = (ActivityRecord)msg.obj; |