Control de la frecuencia de actualización de la pantalla en el dispositivo Android

Todavía no soy un desarrollador, solo estoy tratando de averiguar si una aplicación para Android puede hacer lo que necesito ..

Lo que necesito:

Simple aplicación que muestra un cuadro completo de un solo color en la pantalla a una cierta intensidad a una frecuencia fija! Lo necesito para un propósito de sincronización con una resolución tan alta como sea posible (lograda cambiando una intensidad en un patrón conocido con una frecuencia fija lo más alta posible).

Qué preguntas tengo:

  1. ¿Un dispositivo android funciona con una frecuencia fija de la exhibición o hay alguna manera de fijarla a una frecuencia fija de diga 60fps?

  2. Si la frecuencia fija se puede lograr, hay una interrupción vsync o algo similar que me permite cambiar la intensidad en la pantalla en el momento adecuado.

  3. Si las dos cosas anteriores se pueden lograr, ¿qué enfoque debo tomar. Estoy pensando que necesito mirar OpenGL ES y quizá NDK …. ¿Podría alguien por favor señalarme en la dirección correcta ….

Esperaría que la tasa de actualización se fije en hardware o nivel de controlador de pantalla. Hay una API para averiguar lo que es , pero dudo que pueda establecerlo.

Escribí un juego que implementó un framerate fijo de 40fps. La técnica básica era dibujar todo a un buffer fuera de la pantalla … algo que sucede automáticamente con GL pero que tiene que hacerse a mano si se usa Canvas.

Cuando el trabajo costoso y de longitud variable de dibujar su escena fuera de la pantalla se completa, puede bloquear su hilo de renderizado (o hacer otro trabajo) hasta que sea el momento de procesar. Hacer esto asegurará que cada cuadro se muestre a intervalos regulares. Esto le da un buen movimiento sin problemas con la bonificación de que no está quemando la batería por dibujar demasiado (algo que una gran cantidad de aplicaciones basadas en GL hacen porque usan RENDERMODE_CONTINUOUSLY sin ninguna buena razón).

Mathias,

Por lo tanto, si desea sincronizar con la pantalla en android, simplemente deje que android le diga cuando la vista necesita ser dibujado – que es lo más básico que se hace en android. Obtendrá una clase de la clase View de Android. Anulará el método View classes onDraw () que Android llamará cada vez que la vista necesita ser actualizada.

Si desea asegurarse de que cada trama que muestra es de un tiempo predeterminado, entonces probablemente desee configurar un nuevo subproceso. En el nuevo hilo introduciremos un bucle de temporización – comenzará capturando el System.nanoTime () (mil millonésima de una segunda resolución) en una variable, luego bucle hasta que se alcance su longitud de trama deseada, luego actualizamos una variable booleana estática global. Este booleano estático global se puede comprobar en su método onDraw () para determinar cuándo es el momento de cambiar la intensidad.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.