diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-06-04 12:29:00 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-06-06 14:35:34 -0700 |
commit | 7a1c3fce478122b9f03464117dc94d44f7c1995e (patch) | |
tree | e7496e9b8041c361eb9201d139e05f9c00975796 /services/java/com/android/server/NetworkManagementService.java | |
parent | 34bff87b32a10f6267e76a7de0b287eb6a4633f9 (diff) |
Accumulate network statistics based on deltas.
Network stats are now read out of the kernel in one sweep, instead of
reading per-UID. We now accumulate the delta traffic between each
stats snapshot using the well-tested SamplingCounter pattern.
Since Wi-Fi and mobile traffic have different costs, track each
separately. Avoids counting misc interfaces like loopback and
ethernet under total.
Bug: 5543387
Change-Id: I642004dc530113c27ef79f2abbae51d8af30117f
Diffstat (limited to 'services/java/com/android/server/NetworkManagementService.java')
-rw-r--r-- | services/java/com/android/server/NetworkManagementService.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/java/com/android/server/NetworkManagementService.java index 0d266c27bdc7..a78d68b6c163 100644 --- a/services/java/com/android/server/NetworkManagementService.java +++ b/services/java/com/android/server/NetworkManagementService.java @@ -50,12 +50,14 @@ import android.os.INetworkManagementService; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; +import android.os.ServiceManager; import android.os.SystemClock; import android.os.SystemProperties; import android.util.Log; import android.util.Slog; import android.util.SparseBooleanArray; +import com.android.internal.app.IBatteryStats; import com.android.internal.net.NetworkStatsFactory; import com.android.internal.util.Preconditions; import com.android.server.NativeDaemonConnector.Command; @@ -343,6 +345,14 @@ public class NetworkManagementService extends INetworkManagementService.Stub SystemProperties.set(PROP_QTAGUID_ENABLED, mBandwidthControlEnabled ? "1" : "0"); + if (mBandwidthControlEnabled) { + try { + IBatteryStats.Stub.asInterface(ServiceManager.getService("batteryinfo")) + .noteNetworkStatsEnabled(); + } catch (RemoteException e) { + } + } + // push any existing quota or UID rules synchronized (mQuotaLock) { int size = mActiveQuotas.size(); |