2012-02-09 14 views
8

Estoy haciendo un juego 2D para Android, y recientemente he estado buscando la optimización.Uso de la batería, ¿qué esperar?

Miré el uso de la batería en Configuración y descubrí que después de dejar mi juego en primer plano (con la pantalla encendida) durante poco más de una hora, había drenado el 11% de la batería (Motorola Xoom Honeycomb).

¿Es esto algo que los usuarios deberían esperar de un juego en su teléfono/tableta?

un poco de información:

  • Mi juego utiliza OpenGL-ES para la representación (continua render) Lógica

  • se ejecuta en un hilo separado para el rendimiento.

  • Utilicé getWindow(). AddFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); pensaron que era necesario ya que el juego requiere un poco de tiempo de reflexión por parte del usuario.

  • partículas simples

Por lo tanto, es ese tipo de consumo de batería normal para un juego?

¿Y qué pasos puedo seguir para reducir el consumo de la batería?

+0

Si puede programar pequeños 'Thread.wait (timeout)' en sus diversos hilos, eliminará el impuesto sobre la CPU y, por lo tanto, será mejor para la batería. es decir, si actualizó la pantalla recientemente, puede esperar, por ejemplo, al menos 20 ms (50 Hz) antes de actualizar nuevamente. –

+0

@BicycleDude es una buena idea. Todavía necesitaría unos buenos 30 fps durante ciertas partes del juego, pero eso suena bien. – Jack

+0

@BicycleDude es Thread.sleep una cosa similar? – Jack

Respuesta

0

Dejar la pantalla solo (sin que se ejecute el juego) generará un uso de batería similar.

Mi consejo para usted sería Configurar la pantalla en Dim cuando haya una pausa en su juego, o si el usuario no ha tocado la pantalla en X cantidad de tiempo, como oponerse a dejarla encendida con todo el brillo.

Usted puede hacer esto mediante el ajuste de screenBrightness/buttonBrightness,

La gama de estos campos es 0-> 1

se puede ver el contexto de la configuración de Respuesta de esta here

+0

pero ¿el uso de la batería de la pantalla no tiene su propia sección en el gráfico? (que usó el 43% de la batería según mis estadísticas) – Jack

+0

¡sí! Lo hace. Esto aún contribuiría al uso total de la batería. Aparte de esto y lo que BicycleDude ha sugerido, sugiero leer este artículo: http://developer.android.com/training/monitoring-device-state/index.html –

+0

Una cosa a tener en cuenta es que oscurecer la pantalla no 't funciona bien/en absoluto si el usuario tiene el brillo establecido en "Automático" (nunca he logrado que funcione, aunque no es una prioridad en este momento) – Basic

0

de Justin es bueno, pero no olvides algunos conceptos básicos de la vieja escuela.

Tener el programa ocupado esperando también agotará la batería. Debes usar la CPU para avanzar en el juego, pero no hay necesidad de tenerlo ocupado esperando. Asegúrese de poner su proceso a dormir durante el tiempo estimado hasta la próxima iteración del ciclo de procesamiento del juego.

Cuestiones relacionadas