android - 日志和性能,Android (SurfaceView)

标签 android performance surfaceview

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

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

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

最佳答案

解决方案

到目前为止我找到的唯一解决方案是一个丑陋的 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,它可以切换日志记录。不知何故它是真的(当你查看 code 时你会发现它应该是假的)。我找不到任何其他更“合适”的方法。

我依赖于以下答案:

关于android - 日志和性能,Android (SurfaceView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39333225/

相关文章:

android - TextView 链接文字不可见

java - Appium 版本 >= 1.5.0 中名称定位器策略的替换

linux - perf stat 中针对上下文切换显示的单位的含义是什么?

android - "The surface has been released"错误

android - 开始录制后相机变暗

android - 位图不完全适合android中的矩形

android - 使用带有任何图片的 map View ?

Android:如何在 Android 应用程序中显示谷歌地图?

c++ - 哪个更好地检查 std::string 中是否存在字符?查找还是 find_first_of?

c++ - 位操作取代 IF 语句并提高性能