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 |