am eaeb663b: Track activity foreground CPU usage for battery stats.

Merge commit 'eaeb663bcd7a82b654954b42663232cbd7bef7e7'

* commit 'eaeb663bcd7a82b654954b42663232cbd7bef7e7':
  Track activity foreground CPU usage for battery stats.
This commit is contained in:
Amith Yamasani
2009-06-03 16:21:13 -07:00
committed by The Android Open Source Project
6 changed files with 123 additions and 16 deletions

View File

@@ -307,6 +307,13 @@ public abstract class BatteryStats implements Parcelable {
* @param which one of STATS_TOTAL, STATS_LAST, or STATS_CURRENT.
*/
public abstract int getStarts(int which);
/**
* Returns the cpu time spent in microseconds while the process was in the foreground.
* @param which one of STATS_TOTAL, STATS_LAST, STATS_CURRENT or STATS_UNPLUGGED
* @return foreground cpu time in microseconds
*/
public abstract long getForegroundTime(int which);
}
/**
@@ -364,7 +371,7 @@ public abstract class BatteryStats implements Parcelable {
public abstract int getStartCount();
/**
* Returns the time in milliseconds that the screen has been on while the device was
* Returns the time in microseconds that the screen has been on while the device was
* running on battery.
*
* {@hide}
@@ -384,7 +391,7 @@ public abstract class BatteryStats implements Parcelable {
public static final int NUM_SCREEN_BRIGHTNESS_BINS = 5;
/**
* Returns the time in milliseconds that the screen has been on with
* Returns the time in microseconds that the screen has been on with
* the given brightness
*
* {@hide}
@@ -395,7 +402,7 @@ public abstract class BatteryStats implements Parcelable {
public abstract int getInputEventCount(int which);
/**
* Returns the time in milliseconds that the phone has been on while the device was
* Returns the time in microseconds that the phone has been on while the device was
* running on battery.
*
* {@hide}
@@ -415,7 +422,7 @@ public abstract class BatteryStats implements Parcelable {
public static final int NUM_SIGNAL_STRENGTH_BINS = 5;
/**
* Returns the time in milliseconds that the phone has been running with
* Returns the time in microseconds that the phone has been running with
* the given signal strength.
*
* {@hide}
@@ -443,7 +450,7 @@ public abstract class BatteryStats implements Parcelable {
public static final int NUM_DATA_CONNECTION_TYPES = 5;
/**
* Returns the time in milliseconds that the phone has been running with
* Returns the time in microseconds that the phone has been running with
* the given data connection.
*
* {@hide}
@@ -460,7 +467,7 @@ public abstract class BatteryStats implements Parcelable {
public abstract int getPhoneDataConnectionCount(int dataType, int which);
/**
* Returns the time in milliseconds that wifi has been on while the device was
* Returns the time in microseconds that wifi has been on while the device was
* running on battery.
*
* {@hide}
@@ -468,7 +475,7 @@ public abstract class BatteryStats implements Parcelable {
public abstract long getWifiOnTime(long batteryRealtime, int which);
/**
* Returns the time in milliseconds that wifi has been on and the driver has
* Returns the time in microseconds that wifi has been on and the driver has
* been in the running state while the device was running on battery.
*
* {@hide}
@@ -476,7 +483,7 @@ public abstract class BatteryStats implements Parcelable {
public abstract long getWifiRunningTime(long batteryRealtime, int which);
/**
* Returns the time in milliseconds that bluetooth has been on while the device was
* Returns the time in microseconds that bluetooth has been on while the device was
* running on battery.
*
* {@hide}

View File

@@ -53,7 +53,7 @@ public final class BatteryStatsImpl extends BatteryStats {
private static final int MAGIC = 0xBA757475; // 'BATSTATS'
// Current on-disk Parcel version
private static final int VERSION = 37;
private static final int VERSION = 38;
private final File mFile;
private final File mBackupFile;
@@ -1342,11 +1342,13 @@ public final class BatteryStatsImpl extends BatteryStats {
public Map<String, ? extends BatteryStats.Uid.Pkg> getPackageStats() {
return mPackageStats;
}
@Override
public int getUid() {
return mUid;
}
@Override
public long getTcpBytesReceived(int which) {
if (which == STATS_LAST) {
return mLoadedTcpBytesReceived;
@@ -1365,7 +1367,8 @@ public final class BatteryStatsImpl extends BatteryStats {
return mCurrentTcpBytesReceived + (mStartedTcpBytesReceived >= 0
? (NetStat.getUidRxBytes(mUid) - mStartedTcpBytesReceived) : 0);
}
@Override
public long getTcpBytesSent(int which) {
if (which == STATS_LAST) {
return mLoadedTcpBytesSent;
@@ -1754,7 +1757,8 @@ public final class BatteryStatsImpl extends BatteryStats {
public Timer getSensorTime() {
return mTimer;
}
@Override
public int getHandle() {
return mHandle;
}
@@ -1779,6 +1783,11 @@ public final class BatteryStatsImpl extends BatteryStats {
*/
int mStarts;
/**
* Amount of time the process was running in the foreground.
*/
long mForegroundTime;
/**
* The amount of user time loaded from a previous save.
*/
@@ -1794,6 +1803,11 @@ public final class BatteryStatsImpl extends BatteryStats {
*/
int mLoadedStarts;
/**
* The amount of foreground time loaded from a previous save.
*/
long mLoadedForegroundTime;
/**
* The amount of user time loaded from the previous run.
*/
@@ -1809,6 +1823,11 @@ public final class BatteryStatsImpl extends BatteryStats {
*/
int mLastStarts;
/**
* The amount of foreground time loaded from the previous run
*/
long mLastForegroundTime;
/**
* The amount of user time when last unplugged.
*/
@@ -1824,6 +1843,11 @@ public final class BatteryStatsImpl extends BatteryStats {
*/
int mUnpluggedStarts;
/**
* The amount of foreground time since unplugged.
*/
long mUnpluggedForegroundTime;
Proc() {
mUnpluggables.add(this);
}
@@ -1832,6 +1856,7 @@ public final class BatteryStatsImpl extends BatteryStats {
mUnpluggedUserTime = mUserTime;
mUnpluggedSystemTime = mSystemTime;
mUnpluggedStarts = mStarts;
mUnpluggedForegroundTime = mForegroundTime;
}
public void plug(long batteryUptime, long batteryRealtime) {
@@ -1843,30 +1868,38 @@ public final class BatteryStatsImpl extends BatteryStats {
out.writeLong(mUserTime);
out.writeLong(mSystemTime);
out.writeLong(mForegroundTime);
out.writeInt(mStarts);
out.writeLong(mLoadedUserTime);
out.writeLong(mLoadedSystemTime);
out.writeLong(mLoadedForegroundTime);
out.writeInt(mLoadedStarts);
out.writeLong(mLastUserTime);
out.writeLong(mLastSystemTime);
out.writeLong(mLastForegroundTime);
out.writeInt(mLastStarts);
out.writeLong(mUnpluggedUserTime);
out.writeLong(mUnpluggedSystemTime);
out.writeLong(mUnpluggedForegroundTime);
out.writeInt(mUnpluggedStarts);
}
void readFromParcelLocked(Parcel in) {
mUserTime = in.readLong();
mSystemTime = in.readLong();
mForegroundTime = in.readLong();
mStarts = in.readInt();
mLoadedUserTime = in.readLong();
mLoadedSystemTime = in.readLong();
mLoadedForegroundTime = in.readLong();
mLoadedStarts = in.readInt();
mLastUserTime = in.readLong();
mLastSystemTime = in.readLong();
mLastForegroundTime = in.readLong();
mLastStarts = in.readInt();
mUnpluggedUserTime = in.readLong();
mUnpluggedSystemTime = in.readLong();
mUnpluggedForegroundTime = in.readLong();
mUnpluggedStarts = in.readInt();
}
@@ -1879,6 +1912,10 @@ public final class BatteryStatsImpl extends BatteryStats {
mSystemTime += stime;
}
public void addForegroundTimeLocked(long ttime) {
mForegroundTime += ttime;
}
public void incStartsLocked() {
mStarts++;
}
@@ -1915,6 +1952,22 @@ public final class BatteryStatsImpl extends BatteryStats {
return val;
}
@Override
public long getForegroundTime(int which) {
long val;
if (which == STATS_LAST) {
val = mLastForegroundTime;
} else {
val = mForegroundTime;
if (which == STATS_CURRENT) {
val -= mLoadedForegroundTime;
} else if (which == STATS_UNPLUGGED) {
val -= mUnpluggedForegroundTime;
}
}
return val;
}
@Override
public int getStarts(int which) {
int val;