Loading api/system-current.txt +21 −0 Original line number Diff line number Diff line Loading @@ -5241,6 +5241,7 @@ package android.os { } public class BatteryStatsManager { method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.os.connectivity.CellularBatteryStats getCellularBatteryStats(); method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.os.connectivity.WifiBatteryStats getWifiBatteryStats(); method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void noteFullWifiLockAcquiredFromSource(@NonNull android.os.WorkSource); method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void noteFullWifiLockReleasedFromSource(@NonNull android.os.WorkSource); Loading Loading @@ -5748,6 +5749,26 @@ package android.os { package android.os.connectivity { public final class CellularBatteryStats implements android.os.Parcelable { method public int describeContents(); method public long getEnergyConsumedMaMillis(); method public long getIdleTimeMillis(); method public long getKernelActiveTimeMillis(); method public long getLoggingDurationMillis(); method public long getMonitoredRailChargeConsumedMaMillis(); method public long getNumBytesRx(); method public long getNumBytesTx(); method public long getNumPacketsRx(); method public long getNumPacketsTx(); method public long getRxTimeMillis(); method public long getSleepTimeMillis(); method @NonNull public long[] getTimeInRatMicros(); method @NonNull public long[] getTimeInRxSignalStrengthLevelMicros(); method @NonNull public long[] getTxTimeMillis(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.os.connectivity.CellularBatteryStats> CREATOR; } public final class WifiBatteryStats implements android.os.Parcelable { method public int describeContents(); method public long getEnergyConsumedMaMillis(); Loading core/java/android/os/BatteryStatsManager.java +16 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.content.Context; import android.os.connectivity.CellularBatteryStats; import android.os.connectivity.WifiBatteryStats; import com.android.internal.app.IBatteryStats; Loading Loading @@ -157,6 +158,21 @@ public class BatteryStatsManager { } } /** * Retrieves all the cellular related battery stats. * * @return Instance of {@link CellularBatteryStats}. */ @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public @NonNull CellularBatteryStats getCellularBatteryStats() { try { return mBatteryStats.getCellularBatteryStats(); } catch (RemoteException e) { e.rethrowFromSystemServer(); return null; } } /** * Retrieves all the wifi related battery stats. * Loading core/java/android/os/connectivity/CellularBatteryStats.java +349 −223 Original line number Diff line number Diff line Loading @@ -15,39 +15,45 @@ */ package android.os.connectivity; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.BatteryStats; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Annotation.NetworkType; import android.telephony.ModemActivityInfo; import android.telephony.SignalStrength; import java.util.Arrays; import java.util.Objects; /** * API for Cellular power stats * * @hide */ @SystemApi public final class CellularBatteryStats implements Parcelable { private long mLoggingDurationMs; private long mKernelActiveTimeMs; private long mNumPacketsTx; private long mNumBytesTx; private long mNumPacketsRx; private long mNumBytesRx; private long mSleepTimeMs; private long mIdleTimeMs; private long mRxTimeMs; private long mEnergyConsumedMaMs; private long[] mTimeInRatMs; private long[] mTimeInRxSignalStrengthLevelMs; private long[] mTxTimeMs; private long mMonitoredRailChargeConsumedMaMs; public static final @android.annotation.NonNull Parcelable.Creator<CellularBatteryStats> CREATOR = new Parcelable.Creator<CellularBatteryStats>() { private long mLoggingDurationMs = 0; private long mKernelActiveTimeMs = 0; private long mNumPacketsTx = 0; private long mNumBytesTx = 0; private long mNumPacketsRx = 0; private long mNumBytesRx = 0; private long mSleepTimeMs = 0; private long mIdleTimeMs = 0; private long mRxTimeMs = 0; private long mEnergyConsumedMaMs = 0; private long[] mTimeInRatMs = new long[BatteryStats.NUM_DATA_CONNECTION_TYPES]; private long[] mTimeInRxSignalStrengthLevelMs = new long[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; private long[] mTxTimeMs = new long[ModemActivityInfo.TX_POWER_LEVELS]; private long mMonitoredRailChargeConsumedMaMs = 0; public static final @NonNull Parcelable.Creator<CellularBatteryStats> CREATOR = new Parcelable.Creator<CellularBatteryStats>() { public CellularBatteryStats createFromParcel(Parcel in) { return new CellularBatteryStats(in); } Loading @@ -57,11 +63,11 @@ public final class CellularBatteryStats implements Parcelable { } }; public CellularBatteryStats() { initialize(); } /** @hide **/ public CellularBatteryStats() {} public void writeToParcel(Parcel out, int flags) { @Override public void writeToParcel(@NonNull Parcel out, int flags) { out.writeLong(mLoggingDurationMs); out.writeLong(mKernelActiveTimeMs); out.writeLong(mNumPacketsTx); Loading @@ -78,7 +84,7 @@ public final class CellularBatteryStats implements Parcelable { out.writeLong(mMonitoredRailChargeConsumedMaMs); } public void readFromParcel(Parcel in) { private void readFromParcel(Parcel in) { mLoggingDurationMs = in.readLong(); mKernelActiveTimeMs = in.readLong(); mNumPacketsTx = in.readLong(); Loading @@ -95,161 +101,281 @@ public final class CellularBatteryStats implements Parcelable { mMonitoredRailChargeConsumedMaMs = in.readLong(); } public long getLoggingDurationMs() { @Override public boolean equals(@Nullable Object other) { if (!(other instanceof CellularBatteryStats)) return false; if (other == this) return true; CellularBatteryStats otherStats = (CellularBatteryStats) other; return this.mLoggingDurationMs == otherStats.mLoggingDurationMs && this.mKernelActiveTimeMs == otherStats.mKernelActiveTimeMs && this.mNumPacketsTx == otherStats.mNumPacketsTx && this.mNumBytesTx == otherStats.mNumBytesTx && this.mNumPacketsRx == otherStats.mNumPacketsRx && this.mNumBytesRx == otherStats.mNumBytesRx && this.mSleepTimeMs == otherStats.mSleepTimeMs && this.mIdleTimeMs == otherStats.mIdleTimeMs && this.mRxTimeMs == otherStats.mRxTimeMs && this.mEnergyConsumedMaMs == otherStats.mEnergyConsumedMaMs && Arrays.equals(this.mTimeInRatMs, otherStats.mTimeInRatMs) && Arrays.equals(this.mTimeInRxSignalStrengthLevelMs, otherStats.mTimeInRxSignalStrengthLevelMs) && Arrays.equals(this.mTxTimeMs, otherStats.mTxTimeMs) && this.mMonitoredRailChargeConsumedMaMs == otherStats.mMonitoredRailChargeConsumedMaMs; } @Override public int hashCode() { return Objects.hash(mLoggingDurationMs, mKernelActiveTimeMs, mNumPacketsTx, mNumBytesTx, mNumPacketsRx, mNumBytesRx, mSleepTimeMs, mIdleTimeMs, mRxTimeMs, mEnergyConsumedMaMs, Arrays.hashCode(mTimeInRatMs), Arrays.hashCode(mTimeInRxSignalStrengthLevelMs), Arrays.hashCode(mTxTimeMs), mMonitoredRailChargeConsumedMaMs); } /** * Returns the duration for which these cellular stats were collected. * * @return Duration of stats collection in milliseconds. */ public long getLoggingDurationMillis() { return mLoggingDurationMs; } public long getKernelActiveTimeMs() { /** * Returns the duration for which the kernel was active within * {@link #getLoggingDurationMillis()}. * * @return Duration of kernel active time in milliseconds. */ public long getKernelActiveTimeMillis() { return mKernelActiveTimeMs; } /** * Returns the number of packets transmitted over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of packets transmitted. */ public long getNumPacketsTx() { return mNumPacketsTx; } /** * Returns the number of packets received over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of packets received. */ public long getNumBytesTx() { return mNumBytesTx; } /** * Returns the number of bytes transmitted over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of bytes transmitted. */ public long getNumPacketsRx() { return mNumPacketsRx; } /** * Returns the number of bytes received over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of bytes received. */ public long getNumBytesRx() { return mNumBytesRx; } public long getSleepTimeMs() { /** * Returns the duration for which the device was sleeping within * {@link #getLoggingDurationMillis()}. * * @return Duration of sleep time in milliseconds. */ public long getSleepTimeMillis() { return mSleepTimeMs; } public long getIdleTimeMs() { /** * Returns the duration for which the device was idle within * {@link #getLoggingDurationMillis()}. * * @return Duration of idle time in milliseconds. */ public long getIdleTimeMillis() { return mIdleTimeMs; } public long getRxTimeMs() { /** * Returns the duration for which the device was receiving over cellular within * {@link #getLoggingDurationMillis()}. * * @return Duration of cellular reception time in milliseconds. */ public long getRxTimeMillis() { return mRxTimeMs; } public long getEnergyConsumedMaMs() { /** * Returns an estimation of energy consumed by cellular chip within * {@link #getLoggingDurationMillis()}. * * @return Energy consumed in milli-ampere milliseconds (mAmS). */ public long getEnergyConsumedMaMillis() { return mEnergyConsumedMaMs; } public long[] getTimeInRatMs() { /** * Returns the time in microseconds that the phone has been running with * the given data connection. * * @return Amount of time phone spends in various Radio Access Technologies in microseconds. * The index is {@link NetworkType}. */ @NonNull public long[] getTimeInRatMicros() { return mTimeInRatMs; } public long[] getTimeInRxSignalStrengthLevelMs() { /** * Returns the time in microseconds that the phone has been running with * the given signal strength. * * @return Amount of time phone spends in various cellular rx signal strength levels * in microseconds. The index is signal strength bin. */ @NonNull public long[] getTimeInRxSignalStrengthLevelMicros() { return mTimeInRxSignalStrengthLevelMs; } public long[] getTxTimeMs() { /** * Returns the duration for which the device was transmitting over cellular within * {@link #getLoggingDurationMillis()}. * * @return Duration of cellular transmission time in milliseconds. * Tx(transmit) power index below * <ul> * <li> index 0 = tx_power < 0dBm. </li> * <li> index 1 = 0dBm < tx_power < 5dBm. </li> * <li> index 2 = 5dBm < tx_power < 15dBm. </li> * <li> index 3 = 15dBm < tx_power < 20dBm. </li> * <li> index 4 = tx_power > 20dBm. </li> * </ul> */ @NonNull public long[] getTxTimeMillis() { return mTxTimeMs; } public long getMonitoredRailChargeConsumedMaMs() { /** * Returns the energy consumed by cellular chip within {@link #getLoggingDurationMillis()}. * * @return Energy consumed in milli-ampere milli-seconds (mAmS). */ public long getMonitoredRailChargeConsumedMaMillis() { return mMonitoredRailChargeConsumedMaMs; } public void setLoggingDurationMs(long t) { /** @hide **/ public void setLoggingDurationMillis(long t) { mLoggingDurationMs = t; return; } public void setKernelActiveTimeMs(long t) { /** @hide **/ public void setKernelActiveTimeMillis(long t) { mKernelActiveTimeMs = t; return; } /** @hide **/ public void setNumPacketsTx(long n) { mNumPacketsTx = n; return; } /** @hide **/ public void setNumBytesTx(long b) { mNumBytesTx = b; return; } /** @hide **/ public void setNumPacketsRx(long n) { mNumPacketsRx = n; return; } /** @hide **/ public void setNumBytesRx(long b) { mNumBytesRx = b; return; } public void setSleepTimeMs(long t) { /** @hide **/ public void setSleepTimeMillis(long t) { mSleepTimeMs = t; return; } public void setIdleTimeMs(long t) { /** @hide **/ public void setIdleTimeMillis(long t) { mIdleTimeMs = t; return; } public void setRxTimeMs(long t) { /** @hide **/ public void setRxTimeMillis(long t) { mRxTimeMs = t; return; } public void setEnergyConsumedMaMs(long e) { /** @hide **/ public void setEnergyConsumedMaMillis(long e) { mEnergyConsumedMaMs = e; return; } public void setTimeInRatMs(long[] t) { /** @hide **/ public void setTimeInRatMicros(@NonNull long[] t) { mTimeInRatMs = Arrays.copyOfRange(t, 0, Math.min(t.length, BatteryStats.NUM_DATA_CONNECTION_TYPES)); return; } public void setTimeInRxSignalStrengthLevelMs(long[] t) { /** @hide **/ public void setTimeInRxSignalStrengthLevelMicros(@NonNull long[] t) { mTimeInRxSignalStrengthLevelMs = Arrays.copyOfRange(t, 0, Math.min(t.length, SignalStrength.NUM_SIGNAL_STRENGTH_BINS)); return; } public void setTxTimeMs(long[] t) { /** @hide **/ public void setTxTimeMillis(@NonNull long[] t) { mTxTimeMs = Arrays.copyOfRange(t, 0, Math.min(t.length, ModemActivityInfo.TX_POWER_LEVELS)); return; } public void setMonitoredRailChargeConsumedMaMs(long monitoredRailEnergyConsumedMaMs) { /** @hide **/ public void setMonitoredRailChargeConsumedMaMillis(long monitoredRailEnergyConsumedMaMs) { mMonitoredRailChargeConsumedMaMs = monitoredRailEnergyConsumedMaMs; return; } @Override public int describeContents() { return 0; } private CellularBatteryStats(Parcel in) { initialize(); readFromParcel(in); } private void initialize() { mLoggingDurationMs = 0; mKernelActiveTimeMs = 0; mNumPacketsTx = 0; mNumBytesTx = 0; mNumPacketsRx = 0; mNumBytesRx = 0; mSleepTimeMs = 0; mIdleTimeMs = 0; mRxTimeMs = 0; mEnergyConsumedMaMs = 0; mTimeInRatMs = new long[BatteryStats.NUM_DATA_CONNECTION_TYPES]; Arrays.fill(mTimeInRatMs, 0); mTimeInRxSignalStrengthLevelMs = new long[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; Arrays.fill(mTimeInRxSignalStrengthLevelMs, 0); mTxTimeMs = new long[ModemActivityInfo.TX_POWER_LEVELS]; Arrays.fill(mTxTimeMs, 0); mMonitoredRailChargeConsumedMaMs = 0; return; } } core/java/com/android/internal/os/BatteryStatsImpl.java +10 −10 Original line number Diff line number Diff line Loading @@ -12618,20 +12618,20 @@ public class BatteryStatsImpl extends BatteryStats { txTimeMs[i] = counter.getTxTimeCounters()[i].getCountLocked(which); totalTxTimeMs += txTimeMs[i]; } s.setLoggingDurationMs(computeBatteryRealtime(rawRealTime, which) / 1000); s.setKernelActiveTimeMs(getMobileRadioActiveTime(rawRealTime, which) / 1000); s.setLoggingDurationMillis(computeBatteryRealtime(rawRealTime, which) / 1000); s.setKernelActiveTimeMillis(getMobileRadioActiveTime(rawRealTime, which) / 1000); s.setNumPacketsTx(getNetworkActivityPackets(NETWORK_MOBILE_TX_DATA, which)); s.setNumBytesTx(getNetworkActivityBytes(NETWORK_MOBILE_TX_DATA, which)); s.setNumPacketsRx(getNetworkActivityPackets(NETWORK_MOBILE_RX_DATA, which)); s.setNumBytesRx(getNetworkActivityBytes(NETWORK_MOBILE_RX_DATA, which)); s.setSleepTimeMs(sleepTimeMs); s.setIdleTimeMs(idleTimeMs); s.setRxTimeMs(rxTimeMs); s.setEnergyConsumedMaMs(energyConsumedMaMs); s.setTimeInRatMs(timeInRatMs); s.setTimeInRxSignalStrengthLevelMs(timeInRxSignalStrengthLevelMs); s.setTxTimeMs(txTimeMs); s.setMonitoredRailChargeConsumedMaMs(monitoredRailChargeConsumedMaMs); s.setSleepTimeMillis(sleepTimeMs); s.setIdleTimeMillis(idleTimeMs); s.setRxTimeMillis(rxTimeMs); s.setEnergyConsumedMaMillis(energyConsumedMaMs); s.setTimeInRatMicros(timeInRatMs); s.setTimeInRxSignalStrengthLevelMicros(timeInRxSignalStrengthLevelMs); s.setTxTimeMillis(txTimeMs); s.setMonitoredRailChargeConsumedMaMillis(monitoredRailChargeConsumedMaMs); return s; } Loading Loading
api/system-current.txt +21 −0 Original line number Diff line number Diff line Loading @@ -5241,6 +5241,7 @@ package android.os { } public class BatteryStatsManager { method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.os.connectivity.CellularBatteryStats getCellularBatteryStats(); method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.os.connectivity.WifiBatteryStats getWifiBatteryStats(); method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void noteFullWifiLockAcquiredFromSource(@NonNull android.os.WorkSource); method @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public void noteFullWifiLockReleasedFromSource(@NonNull android.os.WorkSource); Loading Loading @@ -5748,6 +5749,26 @@ package android.os { package android.os.connectivity { public final class CellularBatteryStats implements android.os.Parcelable { method public int describeContents(); method public long getEnergyConsumedMaMillis(); method public long getIdleTimeMillis(); method public long getKernelActiveTimeMillis(); method public long getLoggingDurationMillis(); method public long getMonitoredRailChargeConsumedMaMillis(); method public long getNumBytesRx(); method public long getNumBytesTx(); method public long getNumPacketsRx(); method public long getNumPacketsTx(); method public long getRxTimeMillis(); method public long getSleepTimeMillis(); method @NonNull public long[] getTimeInRatMicros(); method @NonNull public long[] getTimeInRxSignalStrengthLevelMicros(); method @NonNull public long[] getTxTimeMillis(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.os.connectivity.CellularBatteryStats> CREATOR; } public final class WifiBatteryStats implements android.os.Parcelable { method public int describeContents(); method public long getEnergyConsumedMaMillis(); Loading
core/java/android/os/BatteryStatsManager.java +16 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.content.Context; import android.os.connectivity.CellularBatteryStats; import android.os.connectivity.WifiBatteryStats; import com.android.internal.app.IBatteryStats; Loading Loading @@ -157,6 +158,21 @@ public class BatteryStatsManager { } } /** * Retrieves all the cellular related battery stats. * * @return Instance of {@link CellularBatteryStats}. */ @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public @NonNull CellularBatteryStats getCellularBatteryStats() { try { return mBatteryStats.getCellularBatteryStats(); } catch (RemoteException e) { e.rethrowFromSystemServer(); return null; } } /** * Retrieves all the wifi related battery stats. * Loading
core/java/android/os/connectivity/CellularBatteryStats.java +349 −223 Original line number Diff line number Diff line Loading @@ -15,39 +15,45 @@ */ package android.os.connectivity; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.BatteryStats; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Annotation.NetworkType; import android.telephony.ModemActivityInfo; import android.telephony.SignalStrength; import java.util.Arrays; import java.util.Objects; /** * API for Cellular power stats * * @hide */ @SystemApi public final class CellularBatteryStats implements Parcelable { private long mLoggingDurationMs; private long mKernelActiveTimeMs; private long mNumPacketsTx; private long mNumBytesTx; private long mNumPacketsRx; private long mNumBytesRx; private long mSleepTimeMs; private long mIdleTimeMs; private long mRxTimeMs; private long mEnergyConsumedMaMs; private long[] mTimeInRatMs; private long[] mTimeInRxSignalStrengthLevelMs; private long[] mTxTimeMs; private long mMonitoredRailChargeConsumedMaMs; public static final @android.annotation.NonNull Parcelable.Creator<CellularBatteryStats> CREATOR = new Parcelable.Creator<CellularBatteryStats>() { private long mLoggingDurationMs = 0; private long mKernelActiveTimeMs = 0; private long mNumPacketsTx = 0; private long mNumBytesTx = 0; private long mNumPacketsRx = 0; private long mNumBytesRx = 0; private long mSleepTimeMs = 0; private long mIdleTimeMs = 0; private long mRxTimeMs = 0; private long mEnergyConsumedMaMs = 0; private long[] mTimeInRatMs = new long[BatteryStats.NUM_DATA_CONNECTION_TYPES]; private long[] mTimeInRxSignalStrengthLevelMs = new long[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; private long[] mTxTimeMs = new long[ModemActivityInfo.TX_POWER_LEVELS]; private long mMonitoredRailChargeConsumedMaMs = 0; public static final @NonNull Parcelable.Creator<CellularBatteryStats> CREATOR = new Parcelable.Creator<CellularBatteryStats>() { public CellularBatteryStats createFromParcel(Parcel in) { return new CellularBatteryStats(in); } Loading @@ -57,11 +63,11 @@ public final class CellularBatteryStats implements Parcelable { } }; public CellularBatteryStats() { initialize(); } /** @hide **/ public CellularBatteryStats() {} public void writeToParcel(Parcel out, int flags) { @Override public void writeToParcel(@NonNull Parcel out, int flags) { out.writeLong(mLoggingDurationMs); out.writeLong(mKernelActiveTimeMs); out.writeLong(mNumPacketsTx); Loading @@ -78,7 +84,7 @@ public final class CellularBatteryStats implements Parcelable { out.writeLong(mMonitoredRailChargeConsumedMaMs); } public void readFromParcel(Parcel in) { private void readFromParcel(Parcel in) { mLoggingDurationMs = in.readLong(); mKernelActiveTimeMs = in.readLong(); mNumPacketsTx = in.readLong(); Loading @@ -95,161 +101,281 @@ public final class CellularBatteryStats implements Parcelable { mMonitoredRailChargeConsumedMaMs = in.readLong(); } public long getLoggingDurationMs() { @Override public boolean equals(@Nullable Object other) { if (!(other instanceof CellularBatteryStats)) return false; if (other == this) return true; CellularBatteryStats otherStats = (CellularBatteryStats) other; return this.mLoggingDurationMs == otherStats.mLoggingDurationMs && this.mKernelActiveTimeMs == otherStats.mKernelActiveTimeMs && this.mNumPacketsTx == otherStats.mNumPacketsTx && this.mNumBytesTx == otherStats.mNumBytesTx && this.mNumPacketsRx == otherStats.mNumPacketsRx && this.mNumBytesRx == otherStats.mNumBytesRx && this.mSleepTimeMs == otherStats.mSleepTimeMs && this.mIdleTimeMs == otherStats.mIdleTimeMs && this.mRxTimeMs == otherStats.mRxTimeMs && this.mEnergyConsumedMaMs == otherStats.mEnergyConsumedMaMs && Arrays.equals(this.mTimeInRatMs, otherStats.mTimeInRatMs) && Arrays.equals(this.mTimeInRxSignalStrengthLevelMs, otherStats.mTimeInRxSignalStrengthLevelMs) && Arrays.equals(this.mTxTimeMs, otherStats.mTxTimeMs) && this.mMonitoredRailChargeConsumedMaMs == otherStats.mMonitoredRailChargeConsumedMaMs; } @Override public int hashCode() { return Objects.hash(mLoggingDurationMs, mKernelActiveTimeMs, mNumPacketsTx, mNumBytesTx, mNumPacketsRx, mNumBytesRx, mSleepTimeMs, mIdleTimeMs, mRxTimeMs, mEnergyConsumedMaMs, Arrays.hashCode(mTimeInRatMs), Arrays.hashCode(mTimeInRxSignalStrengthLevelMs), Arrays.hashCode(mTxTimeMs), mMonitoredRailChargeConsumedMaMs); } /** * Returns the duration for which these cellular stats were collected. * * @return Duration of stats collection in milliseconds. */ public long getLoggingDurationMillis() { return mLoggingDurationMs; } public long getKernelActiveTimeMs() { /** * Returns the duration for which the kernel was active within * {@link #getLoggingDurationMillis()}. * * @return Duration of kernel active time in milliseconds. */ public long getKernelActiveTimeMillis() { return mKernelActiveTimeMs; } /** * Returns the number of packets transmitted over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of packets transmitted. */ public long getNumPacketsTx() { return mNumPacketsTx; } /** * Returns the number of packets received over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of packets received. */ public long getNumBytesTx() { return mNumBytesTx; } /** * Returns the number of bytes transmitted over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of bytes transmitted. */ public long getNumPacketsRx() { return mNumPacketsRx; } /** * Returns the number of bytes received over cellular within * {@link #getLoggingDurationMillis()}. * * @return Number of bytes received. */ public long getNumBytesRx() { return mNumBytesRx; } public long getSleepTimeMs() { /** * Returns the duration for which the device was sleeping within * {@link #getLoggingDurationMillis()}. * * @return Duration of sleep time in milliseconds. */ public long getSleepTimeMillis() { return mSleepTimeMs; } public long getIdleTimeMs() { /** * Returns the duration for which the device was idle within * {@link #getLoggingDurationMillis()}. * * @return Duration of idle time in milliseconds. */ public long getIdleTimeMillis() { return mIdleTimeMs; } public long getRxTimeMs() { /** * Returns the duration for which the device was receiving over cellular within * {@link #getLoggingDurationMillis()}. * * @return Duration of cellular reception time in milliseconds. */ public long getRxTimeMillis() { return mRxTimeMs; } public long getEnergyConsumedMaMs() { /** * Returns an estimation of energy consumed by cellular chip within * {@link #getLoggingDurationMillis()}. * * @return Energy consumed in milli-ampere milliseconds (mAmS). */ public long getEnergyConsumedMaMillis() { return mEnergyConsumedMaMs; } public long[] getTimeInRatMs() { /** * Returns the time in microseconds that the phone has been running with * the given data connection. * * @return Amount of time phone spends in various Radio Access Technologies in microseconds. * The index is {@link NetworkType}. */ @NonNull public long[] getTimeInRatMicros() { return mTimeInRatMs; } public long[] getTimeInRxSignalStrengthLevelMs() { /** * Returns the time in microseconds that the phone has been running with * the given signal strength. * * @return Amount of time phone spends in various cellular rx signal strength levels * in microseconds. The index is signal strength bin. */ @NonNull public long[] getTimeInRxSignalStrengthLevelMicros() { return mTimeInRxSignalStrengthLevelMs; } public long[] getTxTimeMs() { /** * Returns the duration for which the device was transmitting over cellular within * {@link #getLoggingDurationMillis()}. * * @return Duration of cellular transmission time in milliseconds. * Tx(transmit) power index below * <ul> * <li> index 0 = tx_power < 0dBm. </li> * <li> index 1 = 0dBm < tx_power < 5dBm. </li> * <li> index 2 = 5dBm < tx_power < 15dBm. </li> * <li> index 3 = 15dBm < tx_power < 20dBm. </li> * <li> index 4 = tx_power > 20dBm. </li> * </ul> */ @NonNull public long[] getTxTimeMillis() { return mTxTimeMs; } public long getMonitoredRailChargeConsumedMaMs() { /** * Returns the energy consumed by cellular chip within {@link #getLoggingDurationMillis()}. * * @return Energy consumed in milli-ampere milli-seconds (mAmS). */ public long getMonitoredRailChargeConsumedMaMillis() { return mMonitoredRailChargeConsumedMaMs; } public void setLoggingDurationMs(long t) { /** @hide **/ public void setLoggingDurationMillis(long t) { mLoggingDurationMs = t; return; } public void setKernelActiveTimeMs(long t) { /** @hide **/ public void setKernelActiveTimeMillis(long t) { mKernelActiveTimeMs = t; return; } /** @hide **/ public void setNumPacketsTx(long n) { mNumPacketsTx = n; return; } /** @hide **/ public void setNumBytesTx(long b) { mNumBytesTx = b; return; } /** @hide **/ public void setNumPacketsRx(long n) { mNumPacketsRx = n; return; } /** @hide **/ public void setNumBytesRx(long b) { mNumBytesRx = b; return; } public void setSleepTimeMs(long t) { /** @hide **/ public void setSleepTimeMillis(long t) { mSleepTimeMs = t; return; } public void setIdleTimeMs(long t) { /** @hide **/ public void setIdleTimeMillis(long t) { mIdleTimeMs = t; return; } public void setRxTimeMs(long t) { /** @hide **/ public void setRxTimeMillis(long t) { mRxTimeMs = t; return; } public void setEnergyConsumedMaMs(long e) { /** @hide **/ public void setEnergyConsumedMaMillis(long e) { mEnergyConsumedMaMs = e; return; } public void setTimeInRatMs(long[] t) { /** @hide **/ public void setTimeInRatMicros(@NonNull long[] t) { mTimeInRatMs = Arrays.copyOfRange(t, 0, Math.min(t.length, BatteryStats.NUM_DATA_CONNECTION_TYPES)); return; } public void setTimeInRxSignalStrengthLevelMs(long[] t) { /** @hide **/ public void setTimeInRxSignalStrengthLevelMicros(@NonNull long[] t) { mTimeInRxSignalStrengthLevelMs = Arrays.copyOfRange(t, 0, Math.min(t.length, SignalStrength.NUM_SIGNAL_STRENGTH_BINS)); return; } public void setTxTimeMs(long[] t) { /** @hide **/ public void setTxTimeMillis(@NonNull long[] t) { mTxTimeMs = Arrays.copyOfRange(t, 0, Math.min(t.length, ModemActivityInfo.TX_POWER_LEVELS)); return; } public void setMonitoredRailChargeConsumedMaMs(long monitoredRailEnergyConsumedMaMs) { /** @hide **/ public void setMonitoredRailChargeConsumedMaMillis(long monitoredRailEnergyConsumedMaMs) { mMonitoredRailChargeConsumedMaMs = monitoredRailEnergyConsumedMaMs; return; } @Override public int describeContents() { return 0; } private CellularBatteryStats(Parcel in) { initialize(); readFromParcel(in); } private void initialize() { mLoggingDurationMs = 0; mKernelActiveTimeMs = 0; mNumPacketsTx = 0; mNumBytesTx = 0; mNumPacketsRx = 0; mNumBytesRx = 0; mSleepTimeMs = 0; mIdleTimeMs = 0; mRxTimeMs = 0; mEnergyConsumedMaMs = 0; mTimeInRatMs = new long[BatteryStats.NUM_DATA_CONNECTION_TYPES]; Arrays.fill(mTimeInRatMs, 0); mTimeInRxSignalStrengthLevelMs = new long[SignalStrength.NUM_SIGNAL_STRENGTH_BINS]; Arrays.fill(mTimeInRxSignalStrengthLevelMs, 0); mTxTimeMs = new long[ModemActivityInfo.TX_POWER_LEVELS]; Arrays.fill(mTxTimeMs, 0); mMonitoredRailChargeConsumedMaMs = 0; return; } }
core/java/com/android/internal/os/BatteryStatsImpl.java +10 −10 Original line number Diff line number Diff line Loading @@ -12618,20 +12618,20 @@ public class BatteryStatsImpl extends BatteryStats { txTimeMs[i] = counter.getTxTimeCounters()[i].getCountLocked(which); totalTxTimeMs += txTimeMs[i]; } s.setLoggingDurationMs(computeBatteryRealtime(rawRealTime, which) / 1000); s.setKernelActiveTimeMs(getMobileRadioActiveTime(rawRealTime, which) / 1000); s.setLoggingDurationMillis(computeBatteryRealtime(rawRealTime, which) / 1000); s.setKernelActiveTimeMillis(getMobileRadioActiveTime(rawRealTime, which) / 1000); s.setNumPacketsTx(getNetworkActivityPackets(NETWORK_MOBILE_TX_DATA, which)); s.setNumBytesTx(getNetworkActivityBytes(NETWORK_MOBILE_TX_DATA, which)); s.setNumPacketsRx(getNetworkActivityPackets(NETWORK_MOBILE_RX_DATA, which)); s.setNumBytesRx(getNetworkActivityBytes(NETWORK_MOBILE_RX_DATA, which)); s.setSleepTimeMs(sleepTimeMs); s.setIdleTimeMs(idleTimeMs); s.setRxTimeMs(rxTimeMs); s.setEnergyConsumedMaMs(energyConsumedMaMs); s.setTimeInRatMs(timeInRatMs); s.setTimeInRxSignalStrengthLevelMs(timeInRxSignalStrengthLevelMs); s.setTxTimeMs(txTimeMs); s.setMonitoredRailChargeConsumedMaMs(monitoredRailChargeConsumedMaMs); s.setSleepTimeMillis(sleepTimeMs); s.setIdleTimeMillis(idleTimeMs); s.setRxTimeMillis(rxTimeMs); s.setEnergyConsumedMaMillis(energyConsumedMaMs); s.setTimeInRatMicros(timeInRatMs); s.setTimeInRxSignalStrengthLevelMicros(timeInRxSignalStrengthLevelMs); s.setTxTimeMillis(txTimeMs); s.setMonitoredRailChargeConsumedMaMillis(monitoredRailChargeConsumedMaMs); return s; } Loading