日志和性能,Android (SurfaceView)

Chr*_*s W 5 performance android surfaceview

我创建了一个游戏,游戏循环的每个滴答声都会发生此日志

09-05 07:53:20.213 27150-27240/com.xy I/SurfaceView: 锁定画布...stopped=false, win=android.view.SurfaceView$MyWindow@32beabb4 09-05 07:53:20.226 27150-27240 /com.xy I/SurfaceView:返回的画布:android.view.Surface$CompatibleCanvas@34b823dd

如何防止这个日志出现呢?我担心它会影响性能。

小智 1

解决方案

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

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

解释

SurfaceView 有一个常量 DEBUG,用于切换日志记录。不知怎的,这是真的(当你查看代码时,会发现它应该是假的)。我找不到任何其他更“合适”的方法。

我依赖以下答案: