Я выполнил свое профилирование, и, похоже, большая часть моего времени уходит на drawBitmap, который вызывается (с пониманием) для каждого кадра.
Я использую SurfaceView / обновляю подход к блокировке потока / холста, как показано в примере LunarLander.Но я изменил его (в соответствии с этим вопросом ), чтобы
- в самом первом кадре создать буфер растрового изображения и рисовать на нем
- рисовать каждыйв последующем кадре повторное использование этого растрового изображения (не все на моем экране изменяется)
- в конце каждого кадра рисует буфер один раз в целевой холст (на экран)
Traceview показал мнечто этот drawBitmap занимает 5 мс для каждого кадра на моем устройстве 800x480.Могу ли я получить что-то лучше, чем это, или это просто что-то «высеченное в камне», и мне просто нужно оптимизировать другие части кода для получения хороших кадров в секунду?