From cabb147ce57bdcbb6baa08686415ce03f97028d7 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 29 Sep 2009 17:38:08 -0700 Subject: [PATCH] Improve running services info. Change-Id: I797c76f322b9be7f25a1b695b0332b45bc7e9d4c --- res/values/strings.xml | 4 +- src/com/android/settings/RunningServices.java | 88 ++++++++++++++++++- 2 files changed, 88 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index feeb3f08120..0596837aa5c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1478,9 +1478,9 @@ found in the list of installed applications. %1$s: touch to manage - Avail: %2$s (%1$d procs) + Avail: %2$s+%3$s in %1$d - Other: %2$s (%1$d procs) + Other: %2$s in %1$d Process: %1$s diff --git a/src/com/android/settings/RunningServices.java b/src/com/android/settings/RunningServices.java index b7e2a50a295..6c11ea0ce37 100644 --- a/src/com/android/settings/RunningServices.java +++ b/src/com/android/settings/RunningServices.java @@ -41,6 +41,7 @@ import android.os.Handler; import android.os.Message; import android.os.RemoteException; import android.os.SystemClock; +import android.os.SystemProperties; import android.text.format.DateUtils; import android.text.format.Formatter; import android.util.AttributeSet; @@ -55,6 +56,7 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; +import java.io.FileInputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; @@ -74,6 +76,11 @@ public class RunningServices extends ListActivity static final long TIME_UPDATE_DELAY = 1000; static final long CONTENTS_UPDATE_DELAY = 2000; + // Memory pages are 4K. + static final long PAGE_SIZE = 4*1024; + + long SECONDARY_SERVER_MEM; + final HashMap mActiveItems = new HashMap(); ActivityManager mAm; @@ -93,9 +100,12 @@ public class RunningServices extends ListActivity int mLastNumForegroundProcesses = -1; long mLastBackgroundProcessMemory = -1; long mLastForegroundProcessMemory = -1; + long mLastAvailMemory = -1; Dialog mCurDialog; + byte[] mBuffer = new byte[1024]; + class ActiveItem { View mRootView; BaseItem mItem; @@ -744,6 +754,63 @@ public class RunningServices extends ListActivity } }; + private boolean matchText(byte[] buffer, int index, String text) { + int N = text.length(); + if ((index+N) >= buffer.length) { + return false; + } + for (int i=0; i= '0' && buffer[index] <= '9') { + int start = index; + index++; + while (index < buffer.length && buffer[index] >= '0' + && buffer[index] <= '9') { + index++; + } + String str = new String(buffer, 0, start, index-start); + return ((long)Integer.parseInt(str)) * 1024; + } + index++; + } + return 0; + } + + private long readAvailMem() { + try { + long memFree = 0; + long memCached = 0; + FileInputStream is = new FileInputStream("/proc/meminfo"); + int len = is.read(mBuffer); + is.close(); + final int BUFLEN = mBuffer.length; + for (int i=0; i