Как оптимизировать рисование холста - drawBitmap на Android?

Я выполнил профилирование, и мне кажется, что большую часть времени я трачу на drawBitmap, который вызывается (понятно) для каждого кадра.

Я использую подход SurfaceView / обновление потоков / холста, как показано в примере LunarLander. Но я' мы изменили его (согласно этот вопрос ) относительно

  • в самом первом кадре создаем буфер растрового изображения и рисуем на нем
  • рисуем каждый последующий кадр, повторно используя это битовое изображение (не все на моем экране изменяется )
  • в конце каждого кадра рисуйте буфер один раз в целевой холст (на экран)

Traceview показал мне, что этот drawBitmap занимает 5 мс для каждого кадра на моем устройстве 800x480. Могу ли я получить что-нибудь лучше, или это просто что-то «высеченное в камне», и мне просто нужно оптимизировать другие части кода, чтобы добиться хороших кадров в секунду?

6
задан Community 23 May 2017 в 12:22
поделиться