He hecho mi perfil y parece que la mayor parte de mi tiempo lo paso en drawBitmap, que se llama (comprensiblemente) en cada fotograma.Cómo optimizar el dibujo de Lienzo - drawBitmap en Android?
Uso el enfoque SurfaceView/actualización de hilo/bloqueo de lona como se demostró en la muestra de LunarLander. Pero he cambiado que (según this question) como a
- en el primer cuadro construir un buffer de mapa de bits y pintar sobre ella
- pintar cada cuadro subsiguiente reutilización de ese mapa de bits (no todo en mis cambios de pantalla)
- al final de cada marco de la pintura de la memoria intermedia una vez en el lienzo de destino (en la pantalla)
Traceview me mostró que este drawBitmap toma 5 ms para cada cuadro en mi dispositivo de 800x480. ¿Puedo obtener algo mejor que eso o es solo algo que está 'tallado en la piedra' y solo tengo que optimizar otras partes del código para lograr buenos cuadros por segundo?
puede realizar un seguimiento del rectángulo sucio cada cuadro y sólo actualizar eso? Obviamente, eso no te ayudará mucho si cambias un poco en la esquina superior izquierda e inferior derecha. – EboMike
OpenGL probablemente sea una mejor opción para usted. He realizado muchas pruebas en teléfonos y tabletas y drawBitmap() es demasiado lento, principalmente en tabletas. Sin embargo, estas son algunas opciones para usted: http://www.independent-software.com/android-speeding-up-canvas-drawbitmap/ –