summaryrefslogtreecommitdiffstats
path: root/core/java/android/app/ActivityThread.java
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2013-07-18 10:58:01 -0700
committerMathieu Chartier <mathieuc@google.com>2013-11-25 17:03:40 -0800
commit1e37090caacc59c77c176db3329a4ad393e20013 (patch)
tree27f9658b9600b7219f84c6a8d004aaacbda3a461 /core/java/android/app/ActivityThread.java
parent9d4ac9703657142b190d3c256de7c3329e5a4b29 (diff)
downloadframeworks_base-1e37090caacc59c77c176db3329a4ad393e20013.zip
frameworks_base-1e37090caacc59c77c176db3329a4ad393e20013.tar.gz
frameworks_base-1e37090caacc59c77c176db3329a4ad393e20013.tar.bz2
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
Diffstat (limited to 'core/java/android/app/ActivityThread.java')
-rw-r--r--core/java/android/app/ActivityThread.java12
1 files changed, 10 insertions, 2 deletions
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": ""));