Loading core/java/android/os/BatteryStats.java +72 −38 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.telephony.SignalStrength; import android.text.format.DateFormat; import android.util.Printer; import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import android.util.TimeUtils; import com.android.internal.os.BatterySipper; Loading Loading @@ -601,6 +600,7 @@ public abstract class BatteryStats implements Parcelable { public int states; public static final int STATE2_VIDEO_ON_FLAG = 1<<0; public static final int STATE2_LOW_POWER_FLAG = 1<<1; public int states2; // The wake lock that was acquired at this point. Loading @@ -622,8 +622,11 @@ public abstract class BatteryStats implements Parcelable { public static final int EVENT_TOP = 0x0003; // Event is about an application package that is at the top of the screen. public static final int EVENT_SYNC = 0x0004; // Events for all additional wake locks aquired/release within a wake block. // These are not generated by default. public static final int EVENT_WAKE_LOCK = 0x0005; // Number of event types. public static final int EVENT_COUNT = 0x0005; public static final int EVENT_COUNT = 0x0006; // Mask to extract out only the type part of the event. public static final int EVENT_TYPE_MASK = ~(EVENT_FLAG_START|EVENT_FLAG_FINISH); Loading @@ -635,6 +638,8 @@ public abstract class BatteryStats implements Parcelable { public static final int EVENT_TOP_FINISH = EVENT_TOP | EVENT_FLAG_FINISH; public static final int EVENT_SYNC_START = EVENT_SYNC | EVENT_FLAG_START; public static final int EVENT_SYNC_FINISH = EVENT_SYNC | EVENT_FLAG_FINISH; public static final int EVENT_WAKE_LOCK_START = EVENT_WAKE_LOCK | EVENT_FLAG_START; public static final int EVENT_WAKE_LOCK_FINISH = EVENT_WAKE_LOCK | EVENT_FLAG_FINISH; // For CMD_EVENT. public int eventCode; Loading Loading @@ -887,6 +892,11 @@ public abstract class BatteryStats implements Parcelable { return true; } public void removeEvents(int code) { int idx = code&HistoryItem.EVENT_TYPE_MASK; mActiveEvents[idx] = null; } public HashMap<String, SparseIntArray> getStateForEvent(int code) { return mActiveEvents[code]; } Loading Loading @@ -996,6 +1006,21 @@ public abstract class BatteryStats implements Parcelable { public abstract long getScreenBrightnessTime(int brightnessBin, long elapsedRealtimeUs, int which); /** * Returns the time in microseconds that low power mode has been enabled while the device was * running on battery. * * {@hide} */ public abstract long getLowPowerModeEnabledTime(long elapsedRealtimeUs, int which); /** * Returns the number of times that low power mode was enabled. * * {@hide} */ public abstract int getLowPowerModeEnabledCount(int which); /** * Returns the time in microseconds that the phone has been on while the device was * running on battery. Loading Loading @@ -1157,14 +1182,15 @@ public abstract class BatteryStats implements Parcelable { public static final BitDescription[] HISTORY_STATE2_DESCRIPTIONS = new BitDescription[] { new BitDescription(HistoryItem.STATE2_VIDEO_ON_FLAG, "video", "v"), new BitDescription(HistoryItem.STATE2_LOW_POWER_FLAG, "low_power", "lp"), }; public static final String[] HISTORY_EVENT_NAMES = new String[] { "null", "proc", "fg", "top", "sync" "null", "proc", "fg", "top", "sync", "wake_lock_in" }; public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] { "Enl", "Epr", "Efg", "Etp", "Esy" "Enl", "Epr", "Efg", "Etp", "Esy", "Ewl" }; /** Loading Loading @@ -1630,6 +1656,7 @@ public abstract class BatteryStats implements Parcelable { final long totalUptime = computeUptime(rawUptime, which); final long screenOnTime = getScreenOnTime(rawRealtime, which); final long interactiveTime = getInteractiveTime(rawRealtime, which); final long lowPowerModeEnabledTime = getLowPowerModeEnabledTime(rawRealtime, which); final long phoneOnTime = getPhoneOnTime(rawRealtime, which); final long wifiOnTime = getWifiOnTime(rawRealtime, which); final long wifiRunningTime = getGlobalWifiRunningTime(rawRealtime, which); Loading Loading @@ -1699,7 +1726,8 @@ public abstract class BatteryStats implements Parcelable { mobileRxTotalBytes, mobileTxTotalBytes, wifiRxTotalBytes, wifiTxTotalBytes, fullWakeLockTimeTotal, partialWakeLockTimeTotal, 0 /*legacy input event count*/, getMobileRadioActiveTime(rawRealtime, which), getMobileRadioActiveAdjustedTime(which), interactiveTime / 1000); getMobileRadioActiveAdjustedTime(which), interactiveTime / 1000, lowPowerModeEnabledTime / 1000); // Dump screen brightness stats Object[] args = new Object[NUM_SCREEN_BRIGHTNESS_BINS]; Loading Loading @@ -2092,32 +2120,20 @@ public abstract class BatteryStats implements Parcelable { final long screenOnTime = getScreenOnTime(rawRealtime, which); final long interactiveTime = getInteractiveTime(rawRealtime, which); final long lowPowerModeEnabledTime = getLowPowerModeEnabledTime(rawRealtime, which); final long phoneOnTime = getPhoneOnTime(rawRealtime, which); final long wifiRunningTime = getGlobalWifiRunningTime(rawRealtime, which); final long wifiOnTime = getWifiOnTime(rawRealtime, which); final long bluetoothOnTime = getBluetoothOnTime(rawRealtime, which); sb.setLength(0); sb.append(prefix); sb.append(" Interactive: "); formatTimeMs(sb, interactiveTime / 1000); sb.append("("); sb.append(formatRatioLocked(interactiveTime, whichBatteryRealtime)); sb.append(")"); pw.println(sb.toString()); sb.setLength(0); sb.append(prefix); sb.append(" Screen on: "); formatTimeMs(sb, screenOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(screenOnTime, whichBatteryRealtime)); sb.append(") "); sb.append(getScreenOnCount(which)); sb.append("x, Active phone call: "); formatTimeMs(sb, phoneOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(phoneOnTime, whichBatteryRealtime)); sb.append("x, Interactive: "); formatTimeMs(sb, interactiveTime / 1000); sb.append("("); sb.append(formatRatioLocked(interactiveTime, whichBatteryRealtime)); sb.append(")"); pw.println(sb.toString()); if (phoneOnTime != 0) { sb.setLength(0); sb.append(prefix); sb.append(" Active phone call: "); formatTimeMs(sb, phoneOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(phoneOnTime, whichBatteryRealtime)); sb.append(") "); sb.append(getPhoneOnCount(which)); } sb.setLength(0); sb.append(prefix); sb.append(" Screen brightnesses:"); Loading @@ -2139,6 +2155,23 @@ public abstract class BatteryStats implements Parcelable { } if (!didOne) sb.append(" (no activity)"); pw.println(sb.toString()); if (lowPowerModeEnabledTime != 0) { sb.setLength(0); sb.append(prefix); sb.append(" Low power mode enabled: "); formatTimeMs(sb, lowPowerModeEnabledTime / 1000); sb.append("("); sb.append(formatRatioLocked(lowPowerModeEnabledTime, whichBatteryRealtime)); sb.append(")"); pw.println(sb.toString()); } if (phoneOnTime != 0) { sb.setLength(0); sb.append(prefix); sb.append(" Active phone call: "); formatTimeMs(sb, phoneOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(phoneOnTime, whichBatteryRealtime)); sb.append(") "); sb.append(getPhoneOnCount(which)); } // Calculate wakelock times across all uids. long fullWakeLockTimeTotalMicros = 0; Loading Loading @@ -3004,6 +3037,8 @@ public abstract class BatteryStats implements Parcelable { pw.print(rec.numReadInts); pw.print(") "); } else { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); if (lastTime < 0) { pw.print(rec.time - baseTime); } else { Loading Loading @@ -3190,6 +3225,7 @@ public abstract class BatteryStats implements Parcelable { } pw.println(); oldState = rec.states; oldState2 = rec.states2; } } } Loading Loading @@ -3266,21 +3302,25 @@ public abstract class BatteryStats implements Parcelable { if (rec.cmd == HistoryItem.CMD_CURRENT_TIME || rec.cmd == HistoryItem.CMD_RESET) { printed = true; hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.cmd = HistoryItem.CMD_UPDATE; } else if (rec.currentTime != 0) { printed = true; byte cmd = rec.cmd; rec.cmd = HistoryItem.CMD_CURRENT_TIME; if (checkin) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); } hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.cmd = cmd; } if (tracker != null) { int oldCode = rec.eventCode; HistoryTag oldTag = rec.eventTag; if (rec.cmd != HistoryItem.CMD_UPDATE) { hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.cmd = HistoryItem.CMD_UPDATE; } int oldEventCode = rec.eventCode; HistoryTag oldEventTag = rec.eventTag; rec.eventTag = new HistoryTag(); for (int i=0; i<HistoryItem.EVENT_COUNT; i++) { HashMap<String, SparseIntArray> active Loading @@ -3296,24 +3336,18 @@ public abstract class BatteryStats implements Parcelable { rec.eventTag.string = ent.getKey(); rec.eventTag.uid = uids.keyAt(j); rec.eventTag.poolIdx = uids.valueAt(j); if (checkin) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); } hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.wakeReasonTag = null; rec.wakelockTag = null; } } } rec.eventCode = oldCode; rec.eventTag = oldTag; rec.eventCode = oldEventCode; rec.eventTag = oldEventTag; tracker = null; } } if (checkin) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); } hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); } else if (rec.eventCode != HistoryItem.EVENT_NONE) { Loading core/java/android/os/PowerManagerInternal.java +8 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,14 @@ public abstract class PowerManagerInternal { */ public abstract void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis); public abstract boolean getLowPowerModeEnabled(); public interface LowPowerModeListener { public void onLowPowerModeChanged(boolean enabled); } public abstract void registerLowPowerModeObserver(LowPowerModeListener listener); // TODO: Remove this and retrieve as a local service instead. public abstract void setPolicy(WindowManagerPolicy policy); } core/java/com/android/internal/app/IBatteryStats.aidl +5 −4 Original line number Diff line number Diff line Loading @@ -46,14 +46,15 @@ interface IBatteryStats { void noteStartWakelock(int uid, int pid, String name, String historyName, int type, boolean unimportantForLogging); void noteStopWakelock(int uid, int pid, String name, int type); void noteStopWakelock(int uid, int pid, String name, String historyName, int type); void noteStartWakelockFromSource(in WorkSource ws, int pid, String name, String historyName, int type, boolean unimportantForLogging); void noteChangeWakelockFromSource(in WorkSource ws, int pid, String name, int type, in WorkSource newWs, int newPid, String newName, void noteChangeWakelockFromSource(in WorkSource ws, int pid, String name, String histyoryName, int type, in WorkSource newWs, int newPid, String newName, String newHistoryName, int newType, boolean newUnimportantForLogging); void noteStopWakelockFromSource(in WorkSource ws, int pid, String name, int type); void noteStopWakelockFromSource(in WorkSource ws, int pid, String name, String historyName, int type); void noteVibratorOn(int uid, long durationMillis); void noteVibratorOff(int uid); Loading core/java/com/android/internal/os/BatteryStatsImpl.java +94 −31 File changed.Preview size limit exceeded, changes collapsed. Show changes core/jni/android_util_Binder.cpp +32 −0 Original line number Diff line number Diff line Loading @@ -697,6 +697,38 @@ void signalExceptionForError(JNIEnv* env, jobject obj, status_t err, jniThrowException(env, "java/lang/RuntimeException", "Not allowed to write file descriptors here"); break; case -EBADF: jniThrowException(env, "java/lang/RuntimeException", "Bad file descriptor"); break; case -ENFILE: jniThrowException(env, "java/lang/RuntimeException", "File table overflow"); break; case -EMFILE: jniThrowException(env, "java/lang/RuntimeException", "Too many open files"); break; case -EFBIG: jniThrowException(env, "java/lang/RuntimeException", "File too large"); break; case -ENOSPC: jniThrowException(env, "java/lang/RuntimeException", "No space left on device"); break; case -ESPIPE: jniThrowException(env, "java/lang/RuntimeException", "Illegal seek"); break; case -EROFS: jniThrowException(env, "java/lang/RuntimeException", "Read-only file system"); break; case -EMLINK: jniThrowException(env, "java/lang/RuntimeException", "Too many links"); break; default: ALOGE("Unknown binder error code. 0x%" PRIx32, err); String8 msg; Loading Loading
core/java/android/os/BatteryStats.java +72 −38 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.telephony.SignalStrength; import android.text.format.DateFormat; import android.util.Printer; import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import android.util.TimeUtils; import com.android.internal.os.BatterySipper; Loading Loading @@ -601,6 +600,7 @@ public abstract class BatteryStats implements Parcelable { public int states; public static final int STATE2_VIDEO_ON_FLAG = 1<<0; public static final int STATE2_LOW_POWER_FLAG = 1<<1; public int states2; // The wake lock that was acquired at this point. Loading @@ -622,8 +622,11 @@ public abstract class BatteryStats implements Parcelable { public static final int EVENT_TOP = 0x0003; // Event is about an application package that is at the top of the screen. public static final int EVENT_SYNC = 0x0004; // Events for all additional wake locks aquired/release within a wake block. // These are not generated by default. public static final int EVENT_WAKE_LOCK = 0x0005; // Number of event types. public static final int EVENT_COUNT = 0x0005; public static final int EVENT_COUNT = 0x0006; // Mask to extract out only the type part of the event. public static final int EVENT_TYPE_MASK = ~(EVENT_FLAG_START|EVENT_FLAG_FINISH); Loading @@ -635,6 +638,8 @@ public abstract class BatteryStats implements Parcelable { public static final int EVENT_TOP_FINISH = EVENT_TOP | EVENT_FLAG_FINISH; public static final int EVENT_SYNC_START = EVENT_SYNC | EVENT_FLAG_START; public static final int EVENT_SYNC_FINISH = EVENT_SYNC | EVENT_FLAG_FINISH; public static final int EVENT_WAKE_LOCK_START = EVENT_WAKE_LOCK | EVENT_FLAG_START; public static final int EVENT_WAKE_LOCK_FINISH = EVENT_WAKE_LOCK | EVENT_FLAG_FINISH; // For CMD_EVENT. public int eventCode; Loading Loading @@ -887,6 +892,11 @@ public abstract class BatteryStats implements Parcelable { return true; } public void removeEvents(int code) { int idx = code&HistoryItem.EVENT_TYPE_MASK; mActiveEvents[idx] = null; } public HashMap<String, SparseIntArray> getStateForEvent(int code) { return mActiveEvents[code]; } Loading Loading @@ -996,6 +1006,21 @@ public abstract class BatteryStats implements Parcelable { public abstract long getScreenBrightnessTime(int brightnessBin, long elapsedRealtimeUs, int which); /** * Returns the time in microseconds that low power mode has been enabled while the device was * running on battery. * * {@hide} */ public abstract long getLowPowerModeEnabledTime(long elapsedRealtimeUs, int which); /** * Returns the number of times that low power mode was enabled. * * {@hide} */ public abstract int getLowPowerModeEnabledCount(int which); /** * Returns the time in microseconds that the phone has been on while the device was * running on battery. Loading Loading @@ -1157,14 +1182,15 @@ public abstract class BatteryStats implements Parcelable { public static final BitDescription[] HISTORY_STATE2_DESCRIPTIONS = new BitDescription[] { new BitDescription(HistoryItem.STATE2_VIDEO_ON_FLAG, "video", "v"), new BitDescription(HistoryItem.STATE2_LOW_POWER_FLAG, "low_power", "lp"), }; public static final String[] HISTORY_EVENT_NAMES = new String[] { "null", "proc", "fg", "top", "sync" "null", "proc", "fg", "top", "sync", "wake_lock_in" }; public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] { "Enl", "Epr", "Efg", "Etp", "Esy" "Enl", "Epr", "Efg", "Etp", "Esy", "Ewl" }; /** Loading Loading @@ -1630,6 +1656,7 @@ public abstract class BatteryStats implements Parcelable { final long totalUptime = computeUptime(rawUptime, which); final long screenOnTime = getScreenOnTime(rawRealtime, which); final long interactiveTime = getInteractiveTime(rawRealtime, which); final long lowPowerModeEnabledTime = getLowPowerModeEnabledTime(rawRealtime, which); final long phoneOnTime = getPhoneOnTime(rawRealtime, which); final long wifiOnTime = getWifiOnTime(rawRealtime, which); final long wifiRunningTime = getGlobalWifiRunningTime(rawRealtime, which); Loading Loading @@ -1699,7 +1726,8 @@ public abstract class BatteryStats implements Parcelable { mobileRxTotalBytes, mobileTxTotalBytes, wifiRxTotalBytes, wifiTxTotalBytes, fullWakeLockTimeTotal, partialWakeLockTimeTotal, 0 /*legacy input event count*/, getMobileRadioActiveTime(rawRealtime, which), getMobileRadioActiveAdjustedTime(which), interactiveTime / 1000); getMobileRadioActiveAdjustedTime(which), interactiveTime / 1000, lowPowerModeEnabledTime / 1000); // Dump screen brightness stats Object[] args = new Object[NUM_SCREEN_BRIGHTNESS_BINS]; Loading Loading @@ -2092,32 +2120,20 @@ public abstract class BatteryStats implements Parcelable { final long screenOnTime = getScreenOnTime(rawRealtime, which); final long interactiveTime = getInteractiveTime(rawRealtime, which); final long lowPowerModeEnabledTime = getLowPowerModeEnabledTime(rawRealtime, which); final long phoneOnTime = getPhoneOnTime(rawRealtime, which); final long wifiRunningTime = getGlobalWifiRunningTime(rawRealtime, which); final long wifiOnTime = getWifiOnTime(rawRealtime, which); final long bluetoothOnTime = getBluetoothOnTime(rawRealtime, which); sb.setLength(0); sb.append(prefix); sb.append(" Interactive: "); formatTimeMs(sb, interactiveTime / 1000); sb.append("("); sb.append(formatRatioLocked(interactiveTime, whichBatteryRealtime)); sb.append(")"); pw.println(sb.toString()); sb.setLength(0); sb.append(prefix); sb.append(" Screen on: "); formatTimeMs(sb, screenOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(screenOnTime, whichBatteryRealtime)); sb.append(") "); sb.append(getScreenOnCount(which)); sb.append("x, Active phone call: "); formatTimeMs(sb, phoneOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(phoneOnTime, whichBatteryRealtime)); sb.append("x, Interactive: "); formatTimeMs(sb, interactiveTime / 1000); sb.append("("); sb.append(formatRatioLocked(interactiveTime, whichBatteryRealtime)); sb.append(")"); pw.println(sb.toString()); if (phoneOnTime != 0) { sb.setLength(0); sb.append(prefix); sb.append(" Active phone call: "); formatTimeMs(sb, phoneOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(phoneOnTime, whichBatteryRealtime)); sb.append(") "); sb.append(getPhoneOnCount(which)); } sb.setLength(0); sb.append(prefix); sb.append(" Screen brightnesses:"); Loading @@ -2139,6 +2155,23 @@ public abstract class BatteryStats implements Parcelable { } if (!didOne) sb.append(" (no activity)"); pw.println(sb.toString()); if (lowPowerModeEnabledTime != 0) { sb.setLength(0); sb.append(prefix); sb.append(" Low power mode enabled: "); formatTimeMs(sb, lowPowerModeEnabledTime / 1000); sb.append("("); sb.append(formatRatioLocked(lowPowerModeEnabledTime, whichBatteryRealtime)); sb.append(")"); pw.println(sb.toString()); } if (phoneOnTime != 0) { sb.setLength(0); sb.append(prefix); sb.append(" Active phone call: "); formatTimeMs(sb, phoneOnTime / 1000); sb.append("("); sb.append(formatRatioLocked(phoneOnTime, whichBatteryRealtime)); sb.append(") "); sb.append(getPhoneOnCount(which)); } // Calculate wakelock times across all uids. long fullWakeLockTimeTotalMicros = 0; Loading Loading @@ -3004,6 +3037,8 @@ public abstract class BatteryStats implements Parcelable { pw.print(rec.numReadInts); pw.print(") "); } else { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); if (lastTime < 0) { pw.print(rec.time - baseTime); } else { Loading Loading @@ -3190,6 +3225,7 @@ public abstract class BatteryStats implements Parcelable { } pw.println(); oldState = rec.states; oldState2 = rec.states2; } } } Loading Loading @@ -3266,21 +3302,25 @@ public abstract class BatteryStats implements Parcelable { if (rec.cmd == HistoryItem.CMD_CURRENT_TIME || rec.cmd == HistoryItem.CMD_RESET) { printed = true; hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.cmd = HistoryItem.CMD_UPDATE; } else if (rec.currentTime != 0) { printed = true; byte cmd = rec.cmd; rec.cmd = HistoryItem.CMD_CURRENT_TIME; if (checkin) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); } hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.cmd = cmd; } if (tracker != null) { int oldCode = rec.eventCode; HistoryTag oldTag = rec.eventTag; if (rec.cmd != HistoryItem.CMD_UPDATE) { hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.cmd = HistoryItem.CMD_UPDATE; } int oldEventCode = rec.eventCode; HistoryTag oldEventTag = rec.eventTag; rec.eventTag = new HistoryTag(); for (int i=0; i<HistoryItem.EVENT_COUNT; i++) { HashMap<String, SparseIntArray> active Loading @@ -3296,24 +3336,18 @@ public abstract class BatteryStats implements Parcelable { rec.eventTag.string = ent.getKey(); rec.eventTag.uid = uids.keyAt(j); rec.eventTag.poolIdx = uids.valueAt(j); if (checkin) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); } hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); rec.wakeReasonTag = null; rec.wakelockTag = null; } } } rec.eventCode = oldCode; rec.eventTag = oldTag; rec.eventCode = oldEventCode; rec.eventTag = oldEventTag; tracker = null; } } if (checkin) { pw.print(BATTERY_STATS_CHECKIN_VERSION); pw.print(','); pw.print(HISTORY_DATA); pw.print(','); } hprinter.printNextItem(pw, rec, baseTime, checkin, (flags&DUMP_VERBOSE) != 0); } else if (rec.eventCode != HistoryItem.EVENT_NONE) { Loading
core/java/android/os/PowerManagerInternal.java +8 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,14 @@ public abstract class PowerManagerInternal { */ public abstract void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis); public abstract boolean getLowPowerModeEnabled(); public interface LowPowerModeListener { public void onLowPowerModeChanged(boolean enabled); } public abstract void registerLowPowerModeObserver(LowPowerModeListener listener); // TODO: Remove this and retrieve as a local service instead. public abstract void setPolicy(WindowManagerPolicy policy); }
core/java/com/android/internal/app/IBatteryStats.aidl +5 −4 Original line number Diff line number Diff line Loading @@ -46,14 +46,15 @@ interface IBatteryStats { void noteStartWakelock(int uid, int pid, String name, String historyName, int type, boolean unimportantForLogging); void noteStopWakelock(int uid, int pid, String name, int type); void noteStopWakelock(int uid, int pid, String name, String historyName, int type); void noteStartWakelockFromSource(in WorkSource ws, int pid, String name, String historyName, int type, boolean unimportantForLogging); void noteChangeWakelockFromSource(in WorkSource ws, int pid, String name, int type, in WorkSource newWs, int newPid, String newName, void noteChangeWakelockFromSource(in WorkSource ws, int pid, String name, String histyoryName, int type, in WorkSource newWs, int newPid, String newName, String newHistoryName, int newType, boolean newUnimportantForLogging); void noteStopWakelockFromSource(in WorkSource ws, int pid, String name, int type); void noteStopWakelockFromSource(in WorkSource ws, int pid, String name, String historyName, int type); void noteVibratorOn(int uid, long durationMillis); void noteVibratorOff(int uid); Loading
core/java/com/android/internal/os/BatteryStatsImpl.java +94 −31 File changed.Preview size limit exceeded, changes collapsed. Show changes
core/jni/android_util_Binder.cpp +32 −0 Original line number Diff line number Diff line Loading @@ -697,6 +697,38 @@ void signalExceptionForError(JNIEnv* env, jobject obj, status_t err, jniThrowException(env, "java/lang/RuntimeException", "Not allowed to write file descriptors here"); break; case -EBADF: jniThrowException(env, "java/lang/RuntimeException", "Bad file descriptor"); break; case -ENFILE: jniThrowException(env, "java/lang/RuntimeException", "File table overflow"); break; case -EMFILE: jniThrowException(env, "java/lang/RuntimeException", "Too many open files"); break; case -EFBIG: jniThrowException(env, "java/lang/RuntimeException", "File too large"); break; case -ENOSPC: jniThrowException(env, "java/lang/RuntimeException", "No space left on device"); break; case -ESPIPE: jniThrowException(env, "java/lang/RuntimeException", "Illegal seek"); break; case -EROFS: jniThrowException(env, "java/lang/RuntimeException", "Read-only file system"); break; case -EMLINK: jniThrowException(env, "java/lang/RuntimeException", "Too many links"); break; default: ALOGE("Unknown binder error code. 0x%" PRIx32, err); String8 msg; Loading