【发布时间】:2010-12-01 22:08:56
【问题描述】:
我已经完成了我的分析,似乎我的大部分时间都花在了 drawBitmap 上,它在每一帧上都被(理解地)调用。
我使用 SurfaceView/更新线程/画布锁定方法,如 LunarLander 示例中所示。但是我已经将它(根据this question)更改为
- 在第一帧构造位图缓冲区并在其上绘制
- 重复使用该位图绘制每个后续帧(不是我屏幕上的所有内容都发生变化)
- 在每一帧结束时,将缓冲区绘制一次到目标 Canvas(到屏幕上)
Traceview 向我展示了这个 drawBitmap 在我的 800x480 设备上的每一帧需要 5 毫秒。我能得到比这更好的吗,或者它只是“刻在石头上”的东西,我只需要优化代码的其他部分以达到每秒好的帧数?
【问题讨论】:
-
你能跟踪每一帧的脏矩形并只更新它吗?显然,如果你在左上角和右下角稍微改变一下,这对你没有多大帮助。