summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/net/NetworkPolicyManagerService.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2011-08-10 17:53:27 -0700
committerJeff Sharkey <jsharkey@android.com>2011-08-15 17:30:25 -0700
commitb5d55e302d2253e4bfb233ea705caf258cdc4cb9 (patch)
tree7acd6751833ddeae0a6dbc97c8608cd986643018 /services/java/com/android/server/net/NetworkPolicyManagerService.java
parent11f4a48c54f3006778c874662ff04a4d9d157f25 (diff)
downloadframeworks_base-b5d55e302d2253e4bfb233ea705caf258cdc4cb9.zip
frameworks_base-b5d55e302d2253e4bfb233ea705caf258cdc4cb9.tar.gz
frameworks_base-b5d55e302d2253e4bfb233ea705caf258cdc4cb9.tar.bz2
Foreground/background network stats using sets.
Teach NetworkStats about "counter sets" coming from kernel, and use them to track usage in foreground/background. Add AID_NET_BW_ACCT to system_server so it can control counter sets. Move to composite key of NetworkIdentitySet, UID, set, and tag when recording historical usage. Persisting still clusters by identity, since that is heaviest object. Request async stats poll during systemReady() to bootstrap later delta calculations. Reset kernel counters when UID removed. Update various tests. Bug: 5105592, 5146067 Change-Id: Idabec9e3ffcaf212879821515602ecde0a03de8c
Diffstat (limited to 'services/java/com/android/server/net/NetworkPolicyManagerService.java')
-rw-r--r--services/java/com/android/server/net/NetworkPolicyManagerService.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/java/com/android/server/net/NetworkPolicyManagerService.java
index a075255..9c3d166 100644
--- a/services/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1313,6 +1313,13 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
// dispatch changed rule to existing listeners
mHandler.obtainMessage(MSG_RULES_CHANGED, uid, uidRules).sendToTarget();
+
+ try {
+ // adjust stats accounting based on foreground status
+ mNetworkStats.setUidForeground(uid, uidForeground);
+ } catch (RemoteException e) {
+ Slog.w(TAG, "problem dispatching foreground change");
+ }
}
private Handler.Callback mHandlerCallback = new Handler.Callback() {