diff options
| -rw-r--r-- | services/core/java/com/android/server/am/BatteryStatsService.java | 66 |
1 files changed, 46 insertions, 20 deletions
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index 1712d4887856..d3935d1cd757 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -149,9 +149,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub case MSG_WRITE_TO_DISK: updateExternalStatsSync("write", UPDATE_ALL); + Slog.d(TAG, "begin writeAsyncLocked"); synchronized (mStats) { mStats.writeAsyncLocked(); } + Slog.d(TAG, "end writeAsyncLocked"); break; } } @@ -191,19 +193,24 @@ public final class BatteryStatsService extends IBatteryStats.Stub @Override public String getPlatformLowPowerStats() { - mUtf8BufferStat.clear(); - mUtf16BufferStat.clear(); - mDecoderStat.reset(); - int bytesWritten = getPlatformLowPowerStats(mUtf8BufferStat); - if (bytesWritten < 0) { - return null; - } else if (bytesWritten == 0) { - return "Empty"; + Slog.d(TAG, "begin getPlatformLowPowerStats"); + try { + mUtf8BufferStat.clear(); + mUtf16BufferStat.clear(); + mDecoderStat.reset(); + int bytesWritten = getPlatformLowPowerStats(mUtf8BufferStat); + if (bytesWritten < 0) { + return null; + } else if (bytesWritten == 0) { + return "Empty"; + } + mUtf8BufferStat.limit(bytesWritten); + mDecoderStat.decode(mUtf8BufferStat, mUtf16BufferStat, true); + mUtf16BufferStat.flip(); + return mUtf16BufferStat.toString(); + } finally { + Slog.d(TAG, "end getPlatformLowPowerStats"); } - mUtf8BufferStat.limit(bytesWritten); - mDecoderStat.decode(mUtf8BufferStat, mUtf16BufferStat, true); - mUtf16BufferStat.flip(); - return mUtf16BufferStat.toString(); } BatteryStatsService(File systemDir, Handler handler) { @@ -551,9 +558,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub public void noteScreenState(int state) { enforceCallingPermission(); + Slog.d(TAG, "begin noteScreenState"); synchronized (mStats) { mStats.noteScreenStateLocked(state); } + Slog.d(TAG, "end noteScreenState"); } public void noteScreenBrightness(int brightness) { @@ -706,9 +715,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub public void noteStartCamera(int uid) { enforceCallingPermission(); + Slog.d(TAG, "begin noteStartCamera"); synchronized (mStats) { mStats.noteCameraOnLocked(uid); } + Slog.d(TAG, "end noteStartCamera"); } public void noteStopCamera(int uid) { @@ -1009,24 +1020,32 @@ public final class BatteryStatsService extends IBatteryStats.Stub mHandler.post(new Runnable() { @Override public void run() { - synchronized (mStats) { - final boolean onBattery = plugType == BatteryStatsImpl.BATTERY_PLUGGED_NONE; - if (mStats.isOnBattery() == onBattery) { - // The battery state has not changed, so we don't need to sync external - // stats immediately. - mStats.setBatteryStateLocked(status, health, plugType, level, temp, volt, - chargeUAh, chargeFullUAh); - return; + Slog.d(TAG, "begin setBatteryStateLocked"); + try { + synchronized (mStats) { + final boolean onBattery = plugType == BatteryStatsImpl.BATTERY_PLUGGED_NONE; + if (mStats.isOnBattery() == onBattery) { + // The battery state has not changed, so we don't need to sync external + // stats immediately. + mStats.setBatteryStateLocked(status, health, plugType, level, temp, + volt, + chargeUAh, chargeFullUAh); + return; + } } + } finally { + Slog.d(TAG, "end setBatteryStateLocked"); } // Sync external stats first as the battery has changed states. If we don't sync // immediately here, we may not collect the relevant data later. updateExternalStatsSync("battery-state", BatteryStatsImpl.ExternalStatsSync.UPDATE_ALL); + Slog.d(TAG, "begin setBatteryStateLocked"); synchronized (mStats) { mStats.setBatteryStateLocked(status, health, plugType, level, temp, volt, chargeUAh, chargeFullUAh); } + Slog.d(TAG, "end setBatteryStateLocked"); } }); } @@ -1326,19 +1345,23 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } } + Slog.d(TAG, "begin dumpCheckinLocked from UID " + Binder.getCallingUid()); synchronized (mStats) { mStats.dumpCheckinLocked(mContext, pw, apps, flags, historyStart); if (writeData) { mStats.writeAsyncLocked(); } } + Slog.d(TAG, "end dumpCheckinLocked"); } else { + Slog.d(TAG, "begin dumpLocked from UID " + Binder.getCallingUid()); synchronized (mStats) { mStats.dumpLocked(mContext, pw, flags, reqUid, historyStart); if (writeData) { mStats.writeAsyncLocked(); } } + Slog.d(TAG, "end dumpLocked"); } } @@ -1460,9 +1483,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub SynchronousResultReceiver bluetoothReceiver = null; SynchronousResultReceiver modemReceiver = null; + Slog.d(TAG, "begin updateExternalStatsSync reason=" + reason); synchronized (mExternalStatsLock) { if (mContext == null) { // Don't do any work yet. + Slog.d(TAG, "end updateExternalStatsSync"); return; } @@ -1559,6 +1584,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub } } } + Slog.d(TAG, "end updateExternalStatsSync"); } /** |