我已经完成了我的分析,看起来大部分时间都是在drawBitmap期间花费的,它在每一帧都被调用(理解)。如何在Android上优化Canvas绘图 - drawBitmap?
我使用SurfaceView /更新线程/画布锁定方法,如LunarLander示例中所演示的。但我已经(根据this question)改变了它作为
- 的第一帧上构建一个位图缓存和油漆到它
- 油漆每个后续帧重复使用位图(在我的屏幕变化不是一切)
- 在每个帧的结尾涂料缓冲器一旦进入目标画布(到屏幕)
Traceview我表明这个drawBitmap花费5毫秒为我的800x480设备上的每个帧。我能得到比这更好的东西,还是仅仅是'雕刻成石头'的东西,我只需要优化代码的其他部分,以达到每秒良好的帧数呢?
你可以跟踪每个帧的脏矩形,只更新?显然,如果你在左上角和右下角稍微改变一点,那对你来说无能为力。 – EboMike 2010-12-01 22:14:08
OpenGL可能会是您更好的选择。我在手机和平板电脑上运行了很多测试,drawBitmap()速度太慢,主要是在平板电脑上。但是,这里有一些选项适用于您:http://www.independent-software.com/android-speeding-up-canvas-drawbitmap/ – 2016-09-02 08:54:26