【问题标题】:SurfaceView vs Custom View (extended from View). SurfaceView is slower, Why?SurfaceView 与自定义视图(从视图扩展)。 SurfaceView 比较慢,为什么?
【发布时间】:2010-08-20 03:13:10
【问题描述】:

我用两种方式编写了同一个程序。

一个使用 Surfaceview,另一个使用自定义视图。根据 android SDK 开发指南,使用表面视图更好,因为您可以生成一个单独的线程来处理图形。 SDK 开发指南声称,使用带有无效调用的自定义视图仅适用于较慢的动画、较不密集的图形。

但是,在我的简单应用程序中,我可以清楚地看到,使用自定义视图调用无效似乎更快。

你们对此有什么了解/想法?

我的touchEvent代码一模一样,我的绘图代码一模一样。唯一不同的是,一个是全部在UI线程中,一个是使用tread来处理绘图。

【问题讨论】:

    标签: android performance surfaceview android-custom-view


    【解决方案1】:

    SurfaceView 可以在 2 个缓冲区上进行绘图,您的自定义视图怎么样?

    另一件事:您提到文档说invalidate 在较慢的动画/不太强烈的图形上工作得很快。你的“简单应用”有多激烈?您应该尝试进行压力测试并考虑单线程如何处理您的触摸输入。

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

    【讨论】:

    • 我的应用程序接受触摸输入,并在您在触摸屏上四处滑动时绘制一个跟随您手指的圆圈。我注意到该应用程序的表面视图版本有更多的滞后。我想说,我的应用在处理 UI 输入和图形方面并不紧张。
    • 然后我定义强烈的否则。要确定真正的性能,您应该将触摸处理和图形分别分配给表面视图的不同线程。然后你会得到真正的结果。还要画一个以上的圆圈,因为强度更大……您在哪个设备上进行了测试?
    猜你喜欢
    • 2014-07-16
    • 2011-10-07
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2011-06-27
    • 2012-12-14
    相关资源
    最近更新 更多