Loading core/java/android/os/BatteryStats.java +48 −5 Original line number Diff line number Diff line Loading @@ -1214,7 +1214,7 @@ public abstract class BatteryStats implements Parcelable { pw.print(','); pw.print(arg); } pw.print('\n'); pw.println(); } /** Loading Loading @@ -1407,7 +1407,11 @@ public abstract class BatteryStats implements Parcelable { // Only log if we had at lease one wakelock... if (sb.length() > 0) { dumpLine(pw, uid, category, WAKELOCK_DATA, ent.getKey(), sb.toString()); String name = ent.getKey(); if (name.indexOf(',') >= 0) { name = name.replace(',', '_'); } dumpLine(pw, uid, category, WAKELOCK_DATA, name, sb.toString()); } } } Loading Loading @@ -2274,6 +2278,30 @@ public abstract class BatteryStats implements Parcelable { } oldState = rec.states; } public void printNextItemCheckin(PrintWriter pw, HistoryItem rec, long now) { pw.print(rec.time-now); pw.print(","); if (rec.cmd == HistoryItem.CMD_START) { pw.print("start"); } else if (rec.cmd == HistoryItem.CMD_OVERFLOW) { pw.print("overflow"); } else { pw.print(rec.batteryLevel); pw.print(","); pw.print(rec.states); pw.print(","); pw.print(rec.batteryStatus); pw.print(","); pw.print(rec.batteryHealth); pw.print(","); pw.print(rec.batteryPlugType); pw.print(","); pw.print((int)rec.batteryTemperature); pw.print(","); pw.print((int)rec.batteryVoltage); } } } /** Loading Loading @@ -2351,6 +2379,21 @@ public abstract class BatteryStats implements Parcelable { PrintWriter pw, List<ApplicationInfo> apps, boolean isUnpluggedOnly) { prepareForDumpLocked(); long now = getHistoryBaseTime() + SystemClock.elapsedRealtime(); final HistoryItem rec = new HistoryItem(); if (startIteratingHistoryLocked()) { HistoryPrinter hprinter = new HistoryPrinter(); while (getNextHistoryLocked(rec)) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(0); pw.print(','); pw.print("h"); pw.print(','); hprinter.printNextItemCheckin(pw, rec, now); pw.println(); } finishIteratingHistoryLocked(); } if (apps != null) { SparseArray<ArrayList<String>> uids = new SparseArray<ArrayList<String>>(); for (int i=0; i<apps.size(); i++) { Loading core/java/android/os/Process.java +2 −0 Original line number Diff line number Diff line Loading @@ -976,6 +976,8 @@ public class Process { /** @hide */ public static final int PROC_PARENS = 0x200; /** @hide */ public static final int PROC_QUOTES = 0x400; /** @hide */ public static final int PROC_OUT_STRING = 0x1000; /** @hide */ public static final int PROC_OUT_LONG = 0x2000; Loading core/java/com/android/internal/os/BatteryStatsImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -302,7 +302,8 @@ public final class BatteryStatsImpl extends BatteryStats { private static int sKernelWakelockUpdateVersion = 0; private static final int[] PROC_WAKELOCKS_FORMAT = new int[] { Process.PROC_TAB_TERM|Process.PROC_OUT_STRING, // 0: name Process.PROC_TAB_TERM|Process.PROC_OUT_STRING| // 0: name Process.PROC_QUOTES, Process.PROC_TAB_TERM|Process.PROC_OUT_LONG, // 1: count Process.PROC_TAB_TERM, Process.PROC_TAB_TERM, Loading core/jni/android_util_Process.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -678,6 +678,7 @@ enum { PROC_SPACE_TERM = ' ', PROC_COMBINE = 0x100, PROC_PARENS = 0x200, PROC_QUOTES = 0x400, PROC_OUT_STRING = 0x1000, PROC_OUT_LONG = 0x2000, PROC_OUT_FLOAT = 0x4000, Loading Loading @@ -719,9 +720,15 @@ jboolean android_os_Process_parseProcLineArray(JNIEnv* env, jobject clazz, jboolean res = JNI_TRUE; for (jsize fi=0; fi<NF; fi++) { const jint mode = formatData[fi]; jint mode = formatData[fi]; if ((mode&PROC_PARENS) != 0) { i++; } else if ((mode&PROC_QUOTES != 0)) { if (buffer[i] == '"') { i++; } else { mode &= ~PROC_QUOTES; } } const char term = (char)(mode&PROC_TERM_MASK); const jsize start = i; Loading @@ -737,6 +744,12 @@ jboolean android_os_Process_parseProcLineArray(JNIEnv* env, jobject clazz, } end = i; i++; } else if ((mode&PROC_QUOTES) != 0) { while (buffer[i] != '"' && i < endIndex) { i++; } end = i; i++; } while (buffer[i] != term && i < endIndex) { i++; Loading services/java/com/android/server/am/ActivityManagerService.java +4 −0 Original line number Diff line number Diff line Loading @@ -10933,6 +10933,10 @@ public final class ActivityManagerService extends ActivityManagerNative r.processName, myTotalPss, 0); procMems.add(pssItem); synchronized (this) { r.baseProcessTracker.addPss(myTotalPss); } nativePss += mi.nativePss; dalvikPss += mi.dalvikPss; otherPss += mi.otherPss; Loading Loading
core/java/android/os/BatteryStats.java +48 −5 Original line number Diff line number Diff line Loading @@ -1214,7 +1214,7 @@ public abstract class BatteryStats implements Parcelable { pw.print(','); pw.print(arg); } pw.print('\n'); pw.println(); } /** Loading Loading @@ -1407,7 +1407,11 @@ public abstract class BatteryStats implements Parcelable { // Only log if we had at lease one wakelock... if (sb.length() > 0) { dumpLine(pw, uid, category, WAKELOCK_DATA, ent.getKey(), sb.toString()); String name = ent.getKey(); if (name.indexOf(',') >= 0) { name = name.replace(',', '_'); } dumpLine(pw, uid, category, WAKELOCK_DATA, name, sb.toString()); } } } Loading Loading @@ -2274,6 +2278,30 @@ public abstract class BatteryStats implements Parcelable { } oldState = rec.states; } public void printNextItemCheckin(PrintWriter pw, HistoryItem rec, long now) { pw.print(rec.time-now); pw.print(","); if (rec.cmd == HistoryItem.CMD_START) { pw.print("start"); } else if (rec.cmd == HistoryItem.CMD_OVERFLOW) { pw.print("overflow"); } else { pw.print(rec.batteryLevel); pw.print(","); pw.print(rec.states); pw.print(","); pw.print(rec.batteryStatus); pw.print(","); pw.print(rec.batteryHealth); pw.print(","); pw.print(rec.batteryPlugType); pw.print(","); pw.print((int)rec.batteryTemperature); pw.print(","); pw.print((int)rec.batteryVoltage); } } } /** Loading Loading @@ -2351,6 +2379,21 @@ public abstract class BatteryStats implements Parcelable { PrintWriter pw, List<ApplicationInfo> apps, boolean isUnpluggedOnly) { prepareForDumpLocked(); long now = getHistoryBaseTime() + SystemClock.elapsedRealtime(); final HistoryItem rec = new HistoryItem(); if (startIteratingHistoryLocked()) { HistoryPrinter hprinter = new HistoryPrinter(); while (getNextHistoryLocked(rec)) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(0); pw.print(','); pw.print("h"); pw.print(','); hprinter.printNextItemCheckin(pw, rec, now); pw.println(); } finishIteratingHistoryLocked(); } if (apps != null) { SparseArray<ArrayList<String>> uids = new SparseArray<ArrayList<String>>(); for (int i=0; i<apps.size(); i++) { Loading
core/java/android/os/Process.java +2 −0 Original line number Diff line number Diff line Loading @@ -976,6 +976,8 @@ public class Process { /** @hide */ public static final int PROC_PARENS = 0x200; /** @hide */ public static final int PROC_QUOTES = 0x400; /** @hide */ public static final int PROC_OUT_STRING = 0x1000; /** @hide */ public static final int PROC_OUT_LONG = 0x2000; Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -302,7 +302,8 @@ public final class BatteryStatsImpl extends BatteryStats { private static int sKernelWakelockUpdateVersion = 0; private static final int[] PROC_WAKELOCKS_FORMAT = new int[] { Process.PROC_TAB_TERM|Process.PROC_OUT_STRING, // 0: name Process.PROC_TAB_TERM|Process.PROC_OUT_STRING| // 0: name Process.PROC_QUOTES, Process.PROC_TAB_TERM|Process.PROC_OUT_LONG, // 1: count Process.PROC_TAB_TERM, Process.PROC_TAB_TERM, Loading
core/jni/android_util_Process.cpp +14 −1 Original line number Diff line number Diff line Loading @@ -678,6 +678,7 @@ enum { PROC_SPACE_TERM = ' ', PROC_COMBINE = 0x100, PROC_PARENS = 0x200, PROC_QUOTES = 0x400, PROC_OUT_STRING = 0x1000, PROC_OUT_LONG = 0x2000, PROC_OUT_FLOAT = 0x4000, Loading Loading @@ -719,9 +720,15 @@ jboolean android_os_Process_parseProcLineArray(JNIEnv* env, jobject clazz, jboolean res = JNI_TRUE; for (jsize fi=0; fi<NF; fi++) { const jint mode = formatData[fi]; jint mode = formatData[fi]; if ((mode&PROC_PARENS) != 0) { i++; } else if ((mode&PROC_QUOTES != 0)) { if (buffer[i] == '"') { i++; } else { mode &= ~PROC_QUOTES; } } const char term = (char)(mode&PROC_TERM_MASK); const jsize start = i; Loading @@ -737,6 +744,12 @@ jboolean android_os_Process_parseProcLineArray(JNIEnv* env, jobject clazz, } end = i; i++; } else if ((mode&PROC_QUOTES) != 0) { while (buffer[i] != '"' && i < endIndex) { i++; } end = i; i++; } while (buffer[i] != term && i < endIndex) { i++; Loading
services/java/com/android/server/am/ActivityManagerService.java +4 −0 Original line number Diff line number Diff line Loading @@ -10933,6 +10933,10 @@ public final class ActivityManagerService extends ActivityManagerNative r.processName, myTotalPss, 0); procMems.add(pssItem); synchronized (this) { r.baseProcessTracker.addPss(myTotalPss); } nativePss += mi.nativePss; dalvikPss += mi.dalvikPss; otherPss += mi.otherPss; Loading