我已經完成了我的分析,看起來大部分時間都是在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