From 1e37090caacc59c77c176db3329a4ad393e20013 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Thu, 18 Jul 2013 10:58:01 -0700 Subject: Update Dalvik process state through VMRuntime. We now update Dalvik's process state through VMRuntime when the process state changes in ActivityThread. This is used to determine when to do trimming and will be used to determine when to do compaction in the near future. Bug: 8981901 Change-Id: I5eea272ba4ec2d1ed789b058d6457cb3c1fcf777 --- core/java/android/app/ActivityThread.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'core/java/android/app/ActivityThread.java') diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index df63ab3..23dc6dd 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -117,6 +117,7 @@ import libcore.io.EventLogger; import libcore.io.IoUtils; import dalvik.system.CloseGuard; +import dalvik.system.VMRuntime; final class RemoteServiceException extends AndroidRuntimeException { public RemoteServiceException(String msg) { @@ -1269,8 +1270,15 @@ public final class ActivityThread { synchronized (this) { if (mLastProcessState != processState) { mLastProcessState = processState; - - // Update Dalvik state here based on ActivityManager.PROCESS_STATE_* constants. + // Update Dalvik state based on ActivityManager.PROCESS_STATE_* constants. + final int DALVIK_PROCESS_STATE_JANK_PERCEPTIBLE = 0; + final int DALVIK_PROCESS_STATE_JANK_IMPERCEPTIBLE = 1; + int dalvikProcessState = DALVIK_PROCESS_STATE_JANK_IMPERCEPTIBLE; + // TODO: Tune this since things like gmail sync are important background but not jank perceptible. + if (processState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND) { + dalvikProcessState = DALVIK_PROCESS_STATE_JANK_PERCEPTIBLE; + } + VMRuntime.getRuntime().updateProcessState(dalvikProcessState); if (false) { Slog.i(TAG, "******************* PROCESS STATE CHANGED TO: " + processState + (fromIpc ? " (from ipc": "")); -- cgit v1.1