Collect per-uid mobile radio usage.

We now compute radio active time per application, by distributing
the active time across all applications each time the radio goes
down, weighting it by the number of packets transferred.

Per-app radio power use is now computed using this radio active
time.

This also gives us a new metric "ms per packet", which give an
idea of how effectively an application is using the radio.  This
is collected and reported as a new set of stats in the human-
readable checkin.  (It can be computed from the raw checkin data).

Also improve sync reporting to include the sync source as used
in wake locks, not just the component name.

Change-Id: I0b0185fadd1e47ae749090ed36728ab78ac24c5e
This commit is contained in:
Dianne Hackborn
2014-02-26 12:35:32 -08:00
parent fe6e53b48c
commit 4cba7916fa

View File

@@ -506,6 +506,17 @@ public class NetworkStats implements Parcelable {
return entry; return entry;
} }
/**
* Fast path for battery stats.
*/
public long getTotalPackets() {
long total = 0;
for (int i = size-1; i >= 0; i--) {
total += rxPackets[i] + txPackets[i];
}
return total;
}
/** /**
* Subtract the given {@link NetworkStats}, effectively leaving the delta * Subtract the given {@link NetworkStats}, effectively leaving the delta
* between two snapshots in time. Assumes that statistics rows collect over * between two snapshots in time. Assumes that statistics rows collect over