Applications running in the background are responsible for a significant amount of battery usage on a typical android device. There are several things that applications can do in order to reduce their impact. For example, by using
JobScheduler, an application does not need to independently monitor whether the network is available, whether the device is plugged in, etc. In addition to being simpler to use, the application's services are only started when the required conditions have been met. But even when using the appropriate helper APIs, applications still can reduce their footprint. This package provides more insight into what is going on behind the scenes when an application is running.
Application data is tracked by which user id (uid) is using particular resources. A snapshot of an application's measurements can be taken with the
SystemHealth.takeMyUidSnapshot() method. The
HealthStats object returned contains the statistics.
In order to be returned efficiently, the
HealthStats class uses a set of int keys to identify the data returned. The
ServiceHealthStats classes provide those constants. Each
HealthStats object will be associated with exactly one of those classes. The object returned from
SystemHealth.takeMyUidSnapshot() will be using the
UidHealthStats keys, as it contains all of the data available for that uid.
|HealthStats||A HealthStats object contains system health data about an application.|
|PackageHealthStats|| Keys for
|PidHealthStats|| Keys for
|ProcessHealthStats|| Keys for
|ServiceHealthStats|| Keys for
|SystemHealthManager||Provides access to data about how various system resources are used by applications.|
|TimerStat||A TimerStat object stores a count and a time.|
|UidHealthStats|| Keys for