Add BinderProxy tracking code to SysUI.

Bug: 71353150
Test: runtest systemui
Change-Id: I48fbee833fb1c9e70c6efa8c0b232abbc340dce3
This commit is contained in:
Dan Sandler
2018-01-24 16:09:53 -05:00
parent 3351da1d33
commit dc2ddd7e3e
2 changed files with 20 additions and 1 deletions

View File

@@ -61,7 +61,7 @@ import java.util.Map;
*/
public class SystemUIApplication extends Application implements SysUiServiceProvider {
private static final String TAG = "SystemUIService";
public static final String TAG = "SystemUIService";
private static final boolean DEBUG = false;
/**

View File

@@ -20,11 +20,15 @@ import android.app.Service;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import android.os.Process;
import android.os.SystemProperties;
import android.util.Slog;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import com.android.internal.os.BinderInternal;
public class SystemUIService extends Service {
@Override
@@ -36,6 +40,21 @@ public class SystemUIService extends Service {
if (Build.IS_DEBUGGABLE && SystemProperties.getBoolean("debug.crash_sysui", false)) {
throw new RuntimeException();
}
if (Build.IS_DEBUGGABLE) {
// b/71353150 - looking for leaked binder proxies
BinderInternal.nSetBinderProxyCountEnabled(true);
BinderInternal.nSetBinderProxyCountWatermarks(1000,900);
BinderInternal.setBinderProxyCountCallback(
new BinderInternal.BinderProxyLimitListener() {
@Override
public void onLimitReached(int uid) {
Slog.w(SystemUIApplication.TAG,
"uid " + uid + " sent too many Binder proxies to uid "
+ Process.myUid());
}
}, Dependency.get(Dependency.MAIN_HANDLER));
}
}
@Override