Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SurfaceView与自定义视图(从视图扩展)。SurfaceView速度较慢,为什么?_Android_Performance_Surfaceview_Android Custom View - Fatal编程技术网

Android SurfaceView与自定义视图(从视图扩展)。SurfaceView速度较慢,为什么?

Android SurfaceView与自定义视图(从视图扩展)。SurfaceView速度较慢,为什么?,android,performance,surfaceview,android-custom-view,Android,Performance,Surfaceview,Android Custom View,我用两种方法写了同一个程序 一个使用Surfaceview,另一个使用自定义视图。根据androidsdk开发指南,使用surface视图更好,因为您可以生成一个单独的线程来处理图形。Th SDK开发指南声称,使用带有invalidate调用的自定义视图只适用于较慢的动画和强度较低的图形 然而,在我的简单应用程序中,我可以清楚地看到,使用带有调用invalidate的自定义视图似乎渲染得更快 你们对此有何了解/想法 我的touchEvent代码与我的绘图代码完全相同。唯一的区别是,一个完全在UI

我用两种方法写了同一个程序

一个使用Surfaceview,另一个使用自定义视图。根据androidsdk开发指南,使用surface视图更好,因为您可以生成一个单独的线程来处理图形。Th SDK开发指南声称,使用带有invalidate调用的自定义视图只适用于较慢的动画和强度较低的图形

然而,在我的简单应用程序中,我可以清楚地看到,使用带有调用invalidate的自定义视图似乎渲染得更快

你们对此有何了解/想法


我的touchEvent代码与我的绘图代码完全相同。唯一的区别是,一个完全在UI线程中,另一个使用踏板来处理图形。

SurfaceView可以使用2个缓冲区进行绘图,自定义视图如何

另一件事:你提到过,文档说,
invalidate
在速度较慢/强度较低的动画上工作得很快。你的“简单应用”有多紧张?你应该试着做一个压力测试,并考虑到单线程如何处理你的触摸输入


我的游戏中有3个线程。一个用于游戏逻辑,一个用于绘图,然后是“普通”UI线程…

我的应用程序接受触摸输入,并在触摸屏上滑动时绘制一个圆圈,该圆圈跟随你的手指。我注意到该应用程序的surfaceview版本有点滞后。我想说的是,我的应用程序在处理UI输入和图形方面并不紧张。然后我定义了其他方面的紧张。要确定实际性能,应将触摸处理和图形分离到surfaceview的不同线程。然后你会得到真正的结果。也多画一个圈,因为强度更大。。。您在哪台设备上进行了测试?