¿Qué significan CPU total, CPU en primer plano y Mantener despierto?

He estado observando el uso de la batería en mi dispositivo Android (HTC One), principalmente para ver si puedo agotarla durante un día completo de trabajo, y encontré los detalles de uso de la aplicación en la configuración de Energía.

Obtengo un porcentaje de la batería utilizada por la aplicación, el total de la CPU, el primer plano de la CPU y me mantengo despierto. No estoy seguro de lo que significan, aunque puedo adivinar, pero me pregunto más sobre cómo funcionan.

Por ejemplo, usé el navegador Chrome mucho durante el día (el dispositivo estuvo encendido durante aproximadamente 14 horas, con un 30 % de batería restante) y noté que el uso de la batería para la aplicación era del 54 %. Debajo de los detalles de uso (vea la imagen a continuación), el total de CPU fue de 29m 31s; El primer plano de la CPU fue 14m 43s; y Mantener despierto fue de 30 años.

Captura de pantalla
Captura de pantalla (haga clic en la imagen para una variante más grande)

¿Cómo pueden estos números ser relativamente bajos cuando sé que he usado Chrome durante más de media hora y lo tuve como la aplicación principal ejecutándose durante mucho más de 15 m, lo que supone que mis ideas sobre el uso total de la CPU y en primer plano son lo que Creo que lo son.

En esencia, ¿qué significan esos tres números en términos de uso de la aplicación/batería y qué me dice?

Respuestas (2)

Lo primero que debe recordar es que cuando se ejecuta una aplicación, en realidad no realiza cálculos durante todo el tiempo que se ejecuta: la mayor parte del tiempo está inactiva, esperando que lleguen datos a través de la red, o mientras los está mirando. en la pantalla. Solo las aplicaciones y los juegos muy mal escritos mantienen la CPU activa todo el tiempo que se ejecutan: esto agota la batería muy rápidamente y hace que su teléfono se caliente bastante.

Entonces, incluso si Chrome ha estado en la pantalla durante 30 minutos, no debería haber usado 30 minutos de tiempo de CPU. Si es completamente estático en ese momento y no está interactuando con él, ¡es posible que no haya usado ningún tiempo de CPU en absoluto! Pero en el otro extremo, incluso si estuviera desplazándose continuamente por una página, no usaría 30 minutos de tiempo de CPU: la pantalla se actualiza cada 1/60 de segundo, y cada vez solo tiene que ejecutarse durante el tiempo suficiente para funcionar. cuál debería ser el siguiente cuadro.

primer plano de la CPU

Teniendo esto en cuenta, el primer plano de la CPU es cuánto tiempo se ha estado ejecutando la aplicación en la CPU mientras una actividad de la aplicación estaba en primer plano. (También podría incluir cuando un servicio de la aplicación estaba en primer plano: es decir, mostrando una notificación "en curso"). No es una figura muy útil por sí sola.

Total de CPU

Estoy seguro de que ya sabe que las aplicaciones pueden ejecutar servicios y receptores de transmisión en segundo plano, así como actividades en primer plano. (Para obtener más información sobre esto, consulte ¿Cuál es la diferencia entre un servicio y un receptor de transmisión? ) El total de CPU incluye todo este uso de CPU. Si es mucho más que el primer plano de la CPU , puede sospechar que la aplicación está haciendo mucho trabajo en segundo plano y, por lo tanto, podría consumir mucha batería. Cuánto es "mucho" depende de la aplicación. Una aplicación que sigue ejecutándose para comprobar algún servicio remoto utilizará más CPU en segundo plano que un juego de sudoku.

Mantenerse despierto

Cuando la pantalla de su teléfono está apagada, comienza a pensar en tomar una siesta rápida. Entra en un modo de bajo consumo llamado suspensión en el que la CPU se apaga casi por completo hasta que se necesita. Debido a que esto puede interrumpir las actividades en segundo plano de las aplicaciones, una aplicación puede usar un bloqueo de activación para evitar que el dispositivo entre en modo de suspensión hasta que finalice. (También hay otro tipo de bloqueo de activación, que evita que la pantalla se apague automáticamente. Un reproductor de video podría usar ese tipo de bloqueo de activación). Una aplicación también puede usar una alarma para activar el dispositivo y realizar algunas tareas en segundo plano.

Mantener despierto mide la cantidad de tiempo que esta aplicación ha utilizado bloqueos de activación o alarmas para mantener el dispositivo despierto cuando, de lo contrario, habría estado dormido. En cierto modo, este es potencialmente el mayor consumo de batería. Dormir usa mucha menos energía que permanecer despierto, por lo que si una aplicación mantiene un bloqueo de activación durante mucho tiempo, mantiene su dispositivo en un modo de alta potencia todo ese tiempo, incluso si la aplicación no está haciendo ningún trabajo útil.

Si ve una aplicación cuyo tiempo de activación dura más de unos pocos segundos, debe informar un error al desarrollador de la aplicación y podría considerar desinstalarla. 30 segundos en el transcurso de un día completo es razonable para una aplicación que funciona en segundo plano, pero la mayoría de las aplicaciones mostrarán menos de un segundo aquí.

A continuación se muestra la explicación de los números que tiene en cuestión.

  • CPU total = Tiempo total de uso de la CPU de su aplicación (CPU total = CPU en primer plano + CPU en segundo plano) En su caso, el navegador Chrome usó la CPU durante un tiempo total de 29 minutos y 31 segundos.

  • Primer plano de la CPU = uso de la CPU mientras la aplicación está en primer plano (visible en la pantalla y enfocada) En su caso, el navegador Chrome usó la CPU durante un tiempo total de 14 minutos y 43 segundos cuando estuvo visible y enfocada en la pantalla

  • Mantener despierto = El tiempo que su aplicación impidió que el dispositivo se suspendiera (evitó que el teléfono apagara la pantalla)

Además, algunos dispositivos también tienen el siguiente elemento.

  • Fondo de CPU = uso de CPU mientras la aplicación se ejecuta en segundo plano (tiene un proceso en segundo plano, un widget, etc.)

Entonces, como puede ver, el tiempo real que la aplicación usó su CPU es menor que el tiempo que usó la aplicación.