Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a3c07e2 authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Register NPMS$UidObserver to listen for only necessary procstate changes.

Right now, NPMS listens for all the procstate changes. This will slows
down processing of procstate changes which actually matter and also
fills up the netpolicy history pretty quick.

Bug: 112485285
Test: cts-tradefed run singleCommand cts-dev -m CtsHostsideNetworkTests -t \
      com.android.cts.net.HostsideRestrictBackgroundNetworkTests
Test: atest services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java

Change-Id: Iaaef8ea4ee16f5b69cafc1e7e5908c6ff6fe1ed3
parent 76f4a956
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -11941,7 +11941,9 @@ public class ActivityManagerService extends IActivityManager.Stub
                        printed = true;
                    }
                    pw.print("    "); UserHandle.formatUid(pw, reg.uid);
                    pw.print(" "); pw.print(reg.pkg); pw.print(":");
                    pw.print(" "); pw.print(reg.pkg);
                    final IUidObserver observer = mUidObservers.getRegisteredCallbackItem(i);
                    pw.print(" "); pw.print(observer.getClass().getTypeName()); pw.print(":");
                    if ((reg.which&ActivityManager.UID_OBSERVER_IDLE) != 0) {
                        pw.print(" IDLE");
                    }
+1 −1
Original line number Diff line number Diff line
@@ -796,7 +796,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
            try {
                mActivityManager.registerUidObserver(mUidObserver,
                        ActivityManager.UID_OBSERVER_PROCSTATE|ActivityManager.UID_OBSERVER_GONE,
                        ActivityManager.PROCESS_STATE_UNKNOWN, null);
                        NetworkPolicyManager.FOREGROUND_THRESHOLD_STATE, "android");
                mNetworkManager.registerObserver(mAlertObserver);
            } catch (RemoteException e) {
                // ignored; both services live in system_server
+2 −1
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkInfo.DetailedState;
import android.net.NetworkPolicy;
import android.net.NetworkPolicyManager;
import android.net.NetworkState;
import android.net.NetworkStats;
import android.net.NetworkStatsHistory;
@@ -365,7 +366,7 @@ public class NetworkPolicyManagerServiceTest {
                return null;
            }
        }).when(mActivityManager).registerUidObserver(any(), anyInt(),
                eq(ActivityManager.PROCESS_STATE_UNKNOWN), isNull(String.class));
                eq(NetworkPolicyManager.FOREGROUND_THRESHOLD_STATE), isNull(String.class));

        mFutureIntent = newRestrictBackgroundChangedFuture();
        mService = new NetworkPolicyManagerService(mServiceContext, mActivityManager,