summaryrefslogtreecommitdiffstats
path: root/core/java/android/os
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2009-08-21 13:11:37 -0700
committerAmith Yamasani <yamasani@google.com>2009-09-20 16:03:50 -0700
commite43530ab571e901f94361078c7c1f970a0bd27f2 (patch)
tree2a2c528dab1a81064c63bbc1adbe77ba39eb66ac /core/java/android/os
parenteb8aad7b2a99d3332a2fa6d8778356d634c47127 (diff)
downloadframeworks_base-e43530ab571e901f94361078c7c1f970a0bd27f2.zip
frameworks_base-e43530ab571e901f94361078c7c1f970a0bd27f2.tar.gz
frameworks_base-e43530ab571e901f94361078c7c1f970a0bd27f2.tar.bz2
Track CPU speed stepping to get more accurate CPU cost per app.
More CPU speed stepping happening with newer devices, so we need to qualify CPU time with the CPU speed, since power consumption varies greatly by speed. Apps that peg the CPU should get a higher penaltly. Also, fix for 2062930: NPE at VolumePreference.onKey()
Diffstat (limited to 'core/java/android/os')
-rw-r--r--core/java/android/os/BatteryStats.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index e203fd5..a49a27a0 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -314,6 +314,15 @@ public abstract class BatteryStats implements Parcelable {
* @return foreground cpu time in microseconds
*/
public abstract long getForegroundTime(int which);
+
+ /**
+ * Returns the approximate cpu time spent in microseconds, at a certain CPU speed.
+ * @param speedStep the index of the CPU speed. This is not the actual speed of the
+ * CPU.
+ * @param which one of STATS_TOTAL, STATS_LAST, STATS_CURRENT or STATS_UNPLUGGED
+ * @see BatteryStats#getCpuSpeedSteps()
+ */
+ public abstract long getTimeAtCpuSpeedStep(int speedStep, int which);
}
/**
@@ -573,6 +582,9 @@ public abstract class BatteryStats implements Parcelable {
public abstract Map<String, ? extends Timer> getKernelWakelockStats();
+ /** Returns the number of different speeds that the CPU can run at */
+ public abstract int getCpuSpeedSteps();
+
private final static void formatTimeRaw(StringBuilder out, long seconds) {
long days = seconds / (60 * 60 * 24);
if (days != 0) {