日志与性能,安卓(SurfaceView)

5
我创建了一个游戏,在每次游戏循环的时候都会出现这个日志:

09-05 07:53:20.213 27150-27240/com.x.y I/SurfaceView: Locking canvas... stopped=false, win=android.view.SurfaceView$MyWindow@32beabb4 09-05 07:53:20.226 27150-27240/com.x.y I/SurfaceView: Returned canvas: android.view.Surface$CompatibleCanvas@34b823dd

如何阻止这个日志出现?我担心它会影响性能。
1个回答

1

解决方案

到目前为止,我找到的唯一解决方案是一个丑陋的hack:

private void disableSurfaceViewLogging() {
    try {
        Field field = SurfaceView.class.getDeclaredField("DEBUG");
        field.setAccessible(true);
        field.set(null, false);
        Log.i(TAG, "SurfaceView debug disabled");
    } catch (Exception e) {
        Log.e(TAG, "while trying to disable debug in SurfaceView", e);
    }
}

说明

SurfaceView有一个常量DEBUG,可以切换日志记录。不知何故它是true的(当你查看代码时,会发现它应该是false)。我找不到其他更“合适”的方法。

我依赖以下答案:


当目标API为33及以上时,对DEBUG的反射访问将抛出异常:( - undefined
要是能有一个“非黑客”解决方案就好了... - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接