HealthStats
public class HealthStats
extends Object
java.lang.Object | |
↳ | android.os.health.HealthStats |
A HealthStats object contains system health data about an application.
Data Types
Each of the keys references data in one of five data types:
A measurement metric contains a single long
value. That value may be a count, a time, or some other type of value. The unit for a measurement (COUNT, MS, etc) will always be in the name of the constant for the key to retrieve it. For example, the UidHealthStats.MEASUREMENT_WIFI_TX_MS
value is the number of milliseconds (ms) that were spent transmitting on wifi by an application. The UidHealthStats.MEASUREMENT_MOBILE_RX_PACKETS
measurement is the number of packets received on behalf of an application. The UidHealthStats.MEASUREMENT_TOUCH_USER_ACTIVITY_COUNT
measurement is the number of times the user touched the screen, causing the screen to stay awake.
A timer metric contains an int
count and a long
time, measured in milliseconds. Timers track how many times a resource was used, and the total duration for that usage. For example, the UidHealthStats.TIMER_FLASHLIGHT
timer tracks how many times the application turned on the flashlight, and for how many milliseconds total it kept it on.
A measurement map metric is a mapping of String
names to Long
values. The names typically are application provided names. For example, the PackageHealthStats.MEASUREMENTS_WAKEUP_ALARMS_COUNT
measurement map is a mapping of the tag provided to the AlarmManager
when the alarm is scheduled.
A timer map metric is a mapping of String
names to TimerStat
objects. The names are typically application provided names. For example, the UidHealthStats.TIMERS_WAKELOCKS_PARTIAL
is a mapping of tag provided to the PowerManager
when the wakelock is created to the number of times and for how long each wakelock was active.
Lastly, a health stats metric is a mapping of String
names to a recursive HealthStats
object containing more detailed information. For example, the UidHealthStats.STATS_PACKAGES
metric is a mapping of the package names for each of the APKs sharing a uid to the information recorded for that apk. The returned HealthStats objects will each be associated with a different set of constants. For the HealthStats returned for UidHealthStats.STATS_PACKAGES, the keys come from the PackageHealthStats
class.
The keys that are available are subject to change, depending on what a particular device or software version is capable of recording. Applications must handle the absence of data without crashing.
Summary
Public methods | |
---|---|
String | getDataType() Get a name representing the contents of this object. |
long | getMeasurement(int key) Get the measurement for the given key. |
int | getMeasurementKeyAt(int index) Get the key for the measurement at the given index. |
int | getMeasurementKeyCount() Get the number of measurement values in this object. |
Map<String, Long> | getMeasurements(int key) Get the measurements map for the given key. |
int | getMeasurementsKeyAt(int index) Get the key for the measurement map at the given index. |
int | getMeasurementsKeyCount() Get the number of measurement map values in this object. |
Map<String, HealthStats> | getStats(int key) Get the HealthStats map for the given key. |
int | getStatsKeyAt(int index) Get the key for the timer at the given index. |
int | getStatsKeyCount() Get the number of HealthStat map values in this object. |
TimerStat | getTimer(int key) Return a TimerStat object for the given key. |
int | getTimerCount(int key) Get the count for the timer for the given key. |
int | getTimerKeyAt(int index) Get the key for the timer at the given index. |
int | getTimerKeyCount() Get the number of timer values in this object. |
long | getTimerTime(int key) Get the time for the timer for the given key, in milliseconds. |
Map<String, TimerStat> | getTimers(int key) Get the TimerStat map for the given key. |
int | getTimersKeyAt(int index) Get the key for the timer map at the given index. |
int | getTimersKeyCount() Get the number of timer map values in this object. |
boolean | hasMeasurement(int key) Return whether this object contains a measurement for the supplied key. |
boolean | hasMeasurements(int key) Return whether this object contains a measurements map for the supplied key. |
boolean | hasStats(int key) Return whether this object contains a HealthStats map for the supplied key. |
boolean | hasTimer(int key) Return whether this object contains a TimerStat for the supplied key. |
boolean | hasTimers(int key) Return whether this object contains a timers map for the supplied key. |
Inherited methods | |
---|---|
Public methods
getDataType
public String getDataType ()
Get a name representing the contents of this object.
Returns | |
---|---|
String |
getMeasurement
public long getMeasurement (int key)
Get the measurement for the given key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
long |
Throws | |
---|---|
IndexOutOfBoundsException | When the key is not present in this object. |
getMeasurementKeyAt
public int getMeasurementKeyAt (int index)
Get the key for the measurement at the given index. Index must be between 0 and the result of getMeasurementKeyCount()
.
Parameters | |
---|---|
index | int |
Returns | |
---|---|
int |
See also:
getMeasurementKeyCount
public int getMeasurementKeyCount ()
Get the number of measurement values in this object. Can be used to iterate through the available measurements.
Returns | |
---|---|
int |
See also:
getMeasurements
public Map<String, Long> getMeasurements (int key)
Get the measurements map for the given key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
Map<String, Long> |
Throws | |
---|---|
IndexOutOfBoundsException | When the key is not present in this object. |
getMeasurementsKeyAt
public int getMeasurementsKeyAt (int index)
Get the key for the measurement map at the given index. Index must be between 0 and the result of getMeasurementsKeyCount()
.
Parameters | |
---|---|
index | int |
Returns | |
---|---|
int |
See also:
getMeasurementsKeyCount
public int getMeasurementsKeyCount ()
Get the number of measurement map values in this object. Can be used to iterate through the available measurement maps.
Returns | |
---|---|
int |
See also:
getStats
public Map<String, HealthStats> getStats (int key)
Get the HealthStats map for the given key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
Map<String, HealthStats> |
Throws | |
---|---|
IndexOutOfBoundsException | When the key is not present in this object. |
getStatsKeyAt
public int getStatsKeyAt (int index)
Get the key for the timer at the given index. Index must be between 0 and the result of getStatsKeyCount()
.
Parameters | |
---|---|
index | int |
Returns | |
---|---|
int |
See also:
getStatsKeyCount
public int getStatsKeyCount ()
Get the number of HealthStat map values in this object. Can be used to iterate through the available measurements.
Returns | |
---|---|
int |
See also:
getTimer
public TimerStat getTimer (int key)
Return a TimerStat object for the given key. This will allocate a new TimerStat
object, which may be wasteful. Instead, use getTimerCount(int)
and getTimerTime(int)
.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
TimerStat |
Throws | |
---|---|
IndexOutOfBoundsException | When the key is not present in this object. |
getTimerCount
public int getTimerCount (int key)
Get the count for the timer for the given key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
int |
Throws | |
---|---|
IndexOutOfBoundsException | When the key is not present in this object. |
getTimerKeyAt
public int getTimerKeyAt (int index)
Get the key for the timer at the given index. Index must be between 0 and the result of getTimerKeyCount()
.
Parameters | |
---|---|
index | int |
Returns | |
---|---|
int |
See also:
getTimerKeyCount
public int getTimerKeyCount ()
Get the number of timer values in this object. Can be used to iterate through the available timers.
Returns | |
---|---|
int |
See also:
getTimerTime
public long getTimerTime (int key)
Get the time for the timer for the given key, in milliseconds.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
long |
Throws | |
---|---|
IndexOutOfBoundsException | When the key is not present in this object. |
getTimers
public Map<String, TimerStat> getTimers (int key)
Get the TimerStat map for the given key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
Map<String, TimerStat> |
Throws | |
---|---|
IndexOutOfBoundsException | When the key is not present in this object. |
getTimersKeyAt
public int getTimersKeyAt (int index)
Get the key for the timer map at the given index. Index must be between 0 and the result of getTimersKeyCount()
.
Parameters | |
---|---|
index | int |
Returns | |
---|---|
int |
See also:
getTimersKeyCount
public int getTimersKeyCount ()
Get the number of timer map values in this object. Can be used to iterate through the available timer maps.
Returns | |
---|---|
int |
See also:
hasMeasurement
public boolean hasMeasurement (int key)
Return whether this object contains a measurement for the supplied key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
boolean |
hasMeasurements
public boolean hasMeasurements (int key)
Return whether this object contains a measurements map for the supplied key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
boolean |
hasStats
public boolean hasStats (int key)
Return whether this object contains a HealthStats map for the supplied key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
boolean |
hasTimer
public boolean hasTimer (int key)
Return whether this object contains a TimerStat for the supplied key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
boolean |
hasTimers
public boolean hasTimers (int key)
Return whether this object contains a timers map for the supplied key.
Parameters | |
---|---|
key | int |
Returns | |
---|---|
boolean |