Add BinderProxy tracking code to SysUI.
Bug: 71353150 Test: runtest systemui Change-Id: I48fbee833fb1c9e70c6efa8c0b232abbc340dce3
This commit is contained in:
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user