Merge "Merge "Cleanup of Cellular/Wifi aggregate statistics" into oc-mr1-dev am: eb98edfb83" into oc-mr1-dev-plus-aosp

This commit is contained in:
Android Build Merger (Role)
2017-10-13 00:36:50 +00:00
committed by Android (Google) Code Review

View File

@@ -3054,12 +3054,26 @@ public abstract class BatteryStats implements Parcelable {
final long idleTimeMs = counter.getIdleTimeCounter().getCountLocked(which); final long idleTimeMs = counter.getIdleTimeCounter().getCountLocked(which);
final long rxTimeMs = counter.getRxTimeCounter().getCountLocked(which); final long rxTimeMs = counter.getRxTimeCounter().getCountLocked(which);
final long powerDrainMaMs = counter.getPowerCounter().getCountLocked(which); final long powerDrainMaMs = counter.getPowerCounter().getCountLocked(which);
// Battery real time
final long totalControllerActivityTimeMs
= computeBatteryRealtime(SystemClock.elapsedRealtime() * 1000, which) / 1000;
long totalTxTimeMs = 0; long totalTxTimeMs = 0;
for (LongCounter txState : counter.getTxTimeCounters()) { for (LongCounter txState : counter.getTxTimeCounters()) {
totalTxTimeMs += txState.getCountLocked(which); totalTxTimeMs += txState.getCountLocked(which);
} }
final long sleepTimeMs
= totalControllerActivityTimeMs - (idleTimeMs + rxTimeMs + totalTxTimeMs);
final long totalTimeMs = idleTimeMs + rxTimeMs + totalTxTimeMs; sb.setLength(0);
sb.append(prefix);
sb.append(" ");
sb.append(controllerName);
sb.append(" Sleep time: ");
formatTimeMs(sb, sleepTimeMs);
sb.append("(");
sb.append(formatRatioLocked(sleepTimeMs, totalControllerActivityTimeMs));
sb.append(")");
pw.println(sb.toString());
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
@@ -3068,7 +3082,7 @@ public abstract class BatteryStats implements Parcelable {
sb.append(" Idle time: "); sb.append(" Idle time: ");
formatTimeMs(sb, idleTimeMs); formatTimeMs(sb, idleTimeMs);
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(idleTimeMs, totalTimeMs)); sb.append(formatRatioLocked(idleTimeMs, totalControllerActivityTimeMs));
sb.append(")"); sb.append(")");
pw.println(sb.toString()); pw.println(sb.toString());
@@ -3079,7 +3093,7 @@ public abstract class BatteryStats implements Parcelable {
sb.append(" Rx time: "); sb.append(" Rx time: ");
formatTimeMs(sb, rxTimeMs); formatTimeMs(sb, rxTimeMs);
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(rxTimeMs, totalTimeMs)); sb.append(formatRatioLocked(rxTimeMs, totalControllerActivityTimeMs));
sb.append(")"); sb.append(")");
pw.println(sb.toString()); pw.println(sb.toString());
@@ -3088,38 +3102,57 @@ public abstract class BatteryStats implements Parcelable {
sb.append(" "); sb.append(" ");
sb.append(controllerName); sb.append(controllerName);
sb.append(" Tx time: "); sb.append(" Tx time: ");
formatTimeMs(sb, totalTxTimeMs);
sb.append("(");
sb.append(formatRatioLocked(totalTxTimeMs, totalTimeMs));
sb.append(")");
pw.println(sb.toString());
final int numTxLvls = counter.getTxTimeCounters().length; String [] powerLevel;
switch(controllerName) {
case "Cellular":
powerLevel = new String[] {
" less than 0dBm: ",
" 0dBm to 8dBm: ",
" 8dBm to 15dBm: ",
" 15dBm to 20dBm: ",
" above 20dBm: "};
break;
default:
powerLevel = new String[] {"[0]", "[1]", "[2]", "[3]", "[4]"};
break;
}
final int numTxLvls = Math.min(counter.getTxTimeCounters().length, powerLevel.length);
if (numTxLvls > 1) { if (numTxLvls > 1) {
pw.println(sb.toString());
for (int lvl = 0; lvl < numTxLvls; lvl++) { for (int lvl = 0; lvl < numTxLvls; lvl++) {
final long txLvlTimeMs = counter.getTxTimeCounters()[lvl].getCountLocked(which); final long txLvlTimeMs = counter.getTxTimeCounters()[lvl].getCountLocked(which);
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" ["); sb.append(" ");
sb.append(lvl); sb.append(powerLevel[lvl]);
sb.append("] "); sb.append(" ");
formatTimeMs(sb, txLvlTimeMs); formatTimeMs(sb, txLvlTimeMs);
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(txLvlTimeMs, totalTxTimeMs)); sb.append(formatRatioLocked(txLvlTimeMs, totalControllerActivityTimeMs));
sb.append(")"); sb.append(")");
pw.println(sb.toString()); pw.println(sb.toString());
} }
} else {
final long txLvlTimeMs = counter.getTxTimeCounters()[0].getCountLocked(which);
formatTimeMs(sb, txLvlTimeMs);
sb.append("(");
sb.append(formatRatioLocked(txLvlTimeMs, totalControllerActivityTimeMs));
sb.append(")");
pw.println(sb.toString());
} }
if (powerDrainMaMs > 0) {
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" "); sb.append(" ");
sb.append(controllerName); sb.append(controllerName);
sb.append(" Power drain: ").append( sb.append(" Battery drain: ").append(
BatteryStatsHelper.makemAh(powerDrainMaMs / (double) (1000*60*60))); BatteryStatsHelper.makemAh(powerDrainMaMs / (double) (1000*60*60)));
sb.append("mAh"); sb.append("mAh");
pw.println(sb.toString()); pw.println(sb.toString());
} }
}
/** /**
* Temporary for settings. * Temporary for settings.
@@ -4186,44 +4219,43 @@ public abstract class BatteryStats implements Parcelable {
pw.println(sb.toString()); pw.println(sb.toString());
} }
pw.println("");
pw.print(prefix); pw.print(prefix);
pw.print(" Mobile total received: "); pw.print(formatBytesLocked(mobileRxTotalBytes));
pw.print(", sent: "); pw.print(formatBytesLocked(mobileTxTotalBytes));
pw.print(" (packets received "); pw.print(mobileRxTotalPackets);
pw.print(", sent "); pw.print(mobileTxTotalPackets); pw.println(")");
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Phone signal levels:"); sb.append(" CONNECTIVITY POWER SUMMARY START");
didOne = false; pw.println(sb.toString());
for (int i=0; i<SignalStrength.NUM_SIGNAL_STRENGTH_BINS; i++) {
final long time = getPhoneSignalStrengthTime(i, rawRealtime, which); pw.print(prefix);
if (time == 0) { sb.setLength(0);
continue;
}
sb.append("\n ");
sb.append(prefix); sb.append(prefix);
didOne = true; sb.append(" Logging duration for connectivity statistics: ");
sb.append(SignalStrength.SIGNAL_STRENGTH_NAMES[i]); formatTimeMs(sb, whichBatteryRealtime / 1000);
sb.append(" ");
formatTimeMs(sb, time/1000);
sb.append("(");
sb.append(formatRatioLocked(time, whichBatteryRealtime));
sb.append(") ");
sb.append(getPhoneSignalStrengthCount(i, which));
sb.append("x");
}
if (!didOne) sb.append(" (no activity)");
pw.println(sb.toString()); pw.println(sb.toString());
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Signal scanning time: "); sb.append(" Cellular Statistics:");
formatTimeMsNoSpace(sb, getPhoneSignalScanningTime(rawRealtime, which) / 1000);
pw.println(sb.toString()); pw.println(sb.toString());
pw.print(prefix);
sb.setLength(0);
sb.append(prefix);
sb.append(" Cellular kernel active time: ");
final long mobileActiveTime = getMobileRadioActiveTime(rawRealtime, which);
formatTimeMs(sb, mobileActiveTime / 1000);
sb.append("("); sb.append(formatRatioLocked(mobileActiveTime, whichBatteryRealtime));
sb.append(")");
pw.println(sb.toString());
pw.print(" Cellular data received: "); pw.println(formatBytesLocked(mobileRxTotalBytes));
pw.print(" Cellular data sent: "); pw.println(formatBytesLocked(mobileTxTotalBytes));
pw.print(" Cellular packets received: "); pw.println(mobileRxTotalPackets);
pw.print(" Cellular packets sent: "); pw.println(mobileTxTotalPackets);
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Radio types:"); sb.append(" Cellular Radio Access Technology:");
didOne = false; didOne = false;
for (int i=0; i<NUM_DATA_CONNECTION_TYPES; i++) { for (int i=0; i<NUM_DATA_CONNECTION_TYPES; i++) {
final long time = getPhoneDataConnectionTime(i, rawRealtime, which); final long time = getPhoneDataConnectionTime(i, rawRealtime, which);
@@ -4239,63 +4271,54 @@ public abstract class BatteryStats implements Parcelable {
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(time, whichBatteryRealtime)); sb.append(formatRatioLocked(time, whichBatteryRealtime));
sb.append(") "); sb.append(") ");
sb.append(getPhoneDataConnectionCount(i, which));
sb.append("x");
} }
if (!didOne) sb.append(" (no activity)"); if (!didOne) sb.append(" (no activity)");
pw.println(sb.toString()); pw.println(sb.toString());
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Mobile radio active time: "); sb.append(" Cellular Rx signal strength (RSRP):");
final long mobileActiveTime = getMobileRadioActiveTime(rawRealtime, which); final String[] cellularRxSignalStrengthDescription = new String[]{
formatTimeMs(sb, mobileActiveTime / 1000); "very poor (less than -128dBm): ",
sb.append("("); sb.append(formatRatioLocked(mobileActiveTime, whichBatteryRealtime)); "poor (-128dBm to -118dBm): ",
sb.append(") "); sb.append(getMobileRadioActiveCount(which)); "moderate (-118dBm to -108dBm): ",
sb.append("x"); "good (-108dBm to -98dBm): ",
pw.println(sb.toString()); "great (greater than -98dBm): "};
didOne = false;
final long mobileActiveUnknownTime = getMobileRadioActiveUnknownTime(which); final int numCellularRxBins = Math.min(SignalStrength.NUM_SIGNAL_STRENGTH_BINS,
if (mobileActiveUnknownTime != 0) { cellularRxSignalStrengthDescription.length);
sb.setLength(0); for (int i=0; i<numCellularRxBins; i++) {
sb.append(prefix); final long time = getPhoneSignalStrengthTime(i, rawRealtime, which);
sb.append(" Mobile radio active unknown time: "); if (time == 0) {
formatTimeMs(sb, mobileActiveUnknownTime / 1000); continue;
sb.append("(");
sb.append(formatRatioLocked(mobileActiveUnknownTime, whichBatteryRealtime));
sb.append(") "); sb.append(getMobileRadioActiveUnknownCount(which));
sb.append("x");
pw.println(sb.toString());
} }
sb.append("\n ");
final long mobileActiveAdjustedTime = getMobileRadioActiveAdjustedTime(which);
if (mobileActiveAdjustedTime != 0) {
sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Mobile radio active adjusted time: "); didOne = true;
formatTimeMs(sb, mobileActiveAdjustedTime / 1000); sb.append(cellularRxSignalStrengthDescription[i]);
sb.append(" ");
formatTimeMs(sb, time/1000);
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(mobileActiveAdjustedTime, whichBatteryRealtime)); sb.append(formatRatioLocked(time, whichBatteryRealtime));
sb.append(")"); sb.append(") ");
pw.println(sb.toString());
} }
if (!didOne) sb.append(" (no activity)");
pw.println(sb.toString());
printControllerActivity(pw, sb, prefix, "Radio", getModemControllerActivity(), which); printControllerActivity(pw, sb, prefix, "Cellular",
getModemControllerActivity(), which);
pw.print(prefix); pw.print(prefix);
pw.print(" Wi-Fi total received: "); pw.print(formatBytesLocked(wifiRxTotalBytes));
pw.print(", sent: "); pw.print(formatBytesLocked(wifiTxTotalBytes));
pw.print(" (packets received "); pw.print(wifiRxTotalPackets);
pw.print(", sent "); pw.print(wifiTxTotalPackets); pw.println(")");
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Wifi on: "); formatTimeMs(sb, wifiOnTime / 1000); sb.append(" Wifi Statistics:");
sb.append("("); sb.append(formatRatioLocked(wifiOnTime, whichBatteryRealtime));
sb.append("), Wifi running: "); formatTimeMs(sb, wifiRunningTime / 1000);
sb.append("("); sb.append(formatRatioLocked(wifiRunningTime, whichBatteryRealtime));
sb.append(")");
pw.println(sb.toString()); pw.println(sb.toString());
pw.print(" Wifi data received: "); pw.println(formatBytesLocked(wifiRxTotalBytes));
pw.print(" Wifi data sent: "); pw.println(formatBytesLocked(wifiTxTotalBytes));
pw.print(" Wifi packets received: "); pw.println(wifiRxTotalPackets);
pw.print(" Wifi packets sent: "); pw.println(wifiTxTotalPackets);
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Wifi states:"); sb.append(" Wifi states:");
@@ -4313,8 +4336,6 @@ public abstract class BatteryStats implements Parcelable {
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(time, whichBatteryRealtime)); sb.append(formatRatioLocked(time, whichBatteryRealtime));
sb.append(") "); sb.append(") ");
sb.append(getWifiStateCount(i, which));
sb.append("x");
} }
if (!didOne) sb.append(" (no activity)"); if (!didOne) sb.append(" (no activity)");
pw.println(sb.toString()); pw.println(sb.toString());
@@ -4336,17 +4357,23 @@ public abstract class BatteryStats implements Parcelable {
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(time, whichBatteryRealtime)); sb.append(formatRatioLocked(time, whichBatteryRealtime));
sb.append(") "); sb.append(") ");
sb.append(getWifiSupplStateCount(i, which));
sb.append("x");
} }
if (!didOne) sb.append(" (no activity)"); if (!didOne) sb.append(" (no activity)");
pw.println(sb.toString()); pw.println(sb.toString());
sb.setLength(0); sb.setLength(0);
sb.append(prefix); sb.append(prefix);
sb.append(" Wifi signal levels:"); sb.append(" Wifi Rx signal strength (RSSI):");
final String[] wifiRxSignalStrengthDescription = new String[]{
"very poor (less than -88.75dBm): ",
"poor (-88.75 to -77.5dBm): ",
"moderate (-77.5dBm to -66.25dBm): ",
"good (-66.25dBm to -55dBm): ",
"great (greater than -55dBm): "};
didOne = false; didOne = false;
for (int i=0; i<NUM_WIFI_SIGNAL_STRENGTH_BINS; i++) { final int numWifiRxBins = Math.min(NUM_WIFI_SIGNAL_STRENGTH_BINS,
wifiRxSignalStrengthDescription.length);
for (int i=0; i<numWifiRxBins; i++) {
final long time = getWifiSignalStrengthTime(i, rawRealtime, which); final long time = getWifiSignalStrengthTime(i, rawRealtime, which);
if (time == 0) { if (time == 0) {
continue; continue;
@@ -4354,21 +4381,25 @@ public abstract class BatteryStats implements Parcelable {
sb.append("\n "); sb.append("\n ");
sb.append(prefix); sb.append(prefix);
didOne = true; didOne = true;
sb.append("level("); sb.append(" ");
sb.append(i); sb.append(wifiRxSignalStrengthDescription[i]);
sb.append(") ");
formatTimeMs(sb, time/1000); formatTimeMs(sb, time/1000);
sb.append("("); sb.append("(");
sb.append(formatRatioLocked(time, whichBatteryRealtime)); sb.append(formatRatioLocked(time, whichBatteryRealtime));
sb.append(") "); sb.append(") ");
sb.append(getWifiSignalStrengthCount(i, which));
sb.append("x");
} }
if (!didOne) sb.append(" (no activity)"); if (!didOne) sb.append(" (no activity)");
pw.println(sb.toString()); pw.println(sb.toString());
printControllerActivity(pw, sb, prefix, "WiFi", getWifiControllerActivity(), which); printControllerActivity(pw, sb, prefix, "WiFi", getWifiControllerActivity(), which);
pw.print(prefix);
sb.setLength(0);
sb.append(prefix);
sb.append(" CONNECTIVITY POWER SUMMARY END");
pw.println(sb.toString());
pw.println("");
pw.print(prefix); pw.print(prefix);
pw.print(" Bluetooth total received: "); pw.print(formatBytesLocked(btRxTotalBytes)); pw.print(" Bluetooth total received: "); pw.print(formatBytesLocked(btRxTotalBytes));
pw.print(", sent: "); pw.println(formatBytesLocked(btTxTotalBytes)); pw.print(", sent: "); pw.println(formatBytesLocked(btTxTotalBytes));