Aclaración
Estás preguntando cosas diferentes en cada parte del post. En el título se pregunta " ¿Consume Android energía cuando está apagado? " pero en la última parte del post se pregunta " que está viendo los eventos de la prensa clave? ", con algunas preguntas diferentes en medio, lo que añade más distracciones y confusiones a los posibles contestadores...
De todos modos, supongo que todo se reduce a: " Una vez que un teléfono Android se apaga, ¿qué lo despierta para iniciar un proceso en cada situación adecuada? ".
Fondos
Para responder a esto, tendré que llevarte a un nivel aún más bajo de un dispositivo electrónico: hardware
.
Puedes argumentar,
"¡¿De qué estás hablando?! ¡Un hardware no es nada cuando no hay un software! Algo tiene que estar ahí vigilando la entrada del botón y simplemente estoy preguntando qué podría ser" .
Tengan paciencia, por favor. Bueno, llega pronto.
"¡Pero...!"
Créeme. Además, es posible que necesites recordar ahora la definición de "software" y "hardware", ya que estamos a punto de sumergirnos en un nivel tan bajo.
Me pregunto si alguna vez has jugado con un Arduino
, esas pequeñas placas que consiguen entradas de botones clicks y ponen salidas de LEDs llamativos. El chip que funciona como cerebro en uno de estos dispositivos* se llama "MCU", o "microcontrolador". Un ordenador -incluidos los dispositivos Android- está equipado con algunos de ellos. Todos los chips de firmware/ROM, los chips de BIOS o cualquier circuito integrado programable son probablemente otro microcontrolador.
Respuesta simple
Estas MCU son bastante sencillas en comparación con las CPU, pero más robustas y eficientes energéticamente. Por esta razón, las MCU se utilizan a menudo para ayudar a las CPUs a configurar las cosas. ¿Cómo funcionan? Esencialmente, se comportan de acuerdo con la programación de un firmware dentro de la ROM.
"Ja, así que es simplemente la ROM de arranque, ¿no? Podrías haberlo dicho". Bueno, tendrás que saber un poco más para entender mejor para obtener una respuesta para cada una de tus oh-muchas preguntas.
Explicación más profunda
Las palabras clave son interrupt
y sleep mode
(la terminología de este último puede variar).
(Incorrecto) Ejemplo
El firmware podría codificarse de manera que el chip estuviera constantemente mirando las entradas externas. Sin embargo, esta no es la forma ideal. El chip tendrá que recuperar el estado de un botón, comparar si es on
o off
, y luego cuenta hasta 50ms más o menos para simplemente esperar. Ahora vuelve a recuperar el estado, y así sucesivamente. El estado de apagado podría durar horas, días, o incluso años - todo el tiempo sin que el pobre chip supiera si el momento de volver a brillar llegaría alguna vez...
Lo siento, eso fue un poco perturbador. Pero la crisis existencial no es el único problema, si eso ayuda. Incluso si el chip funcionara activamente, ¡cada mirada cuesta también un recurso valioso!
Interrumpir
Interrupt
funciona al revés. Es más bien como dar una notificación a la parte computacional principal. Una MCU con esta capacidad, esencialmente todas las modernas, están preparadas con un procedimiento en el que pueden alejar y olvidar lo que estaban haciendo antes, ejecutar una función específica para responder a la señal de interrupción, y luego volver a la tarea que estaban haciendo antes. De esta manera, una MCU no tiene que calcular activamente y repetidamente un conjunto de recuperación y comparación. En el caso de un dispositivo Android típico, se podría asignar una interrupción para [power applied/removed on the charger pin]
, [power applied/removed on the charger pin]
y [power button pressed]
.
Modo de reposo
Puede preguntar,
"Vale, entonces... ahora que el MCU no tiene que cargar con eso, ¿podría dormir felizmente?"
¡AH! No.
...pues sí. El MCU podría dormir ahí.
En realidad lo que quiero comentar aquí es que, no me cites pero, lo que sorben cuando duermen debe ser comparable a la autodescarga de una batería. En este punto, hay tan poco software involucrado aquí que yo diría que los que se ejecutan en este punto son todos puramente implementado en el hardware - pero eso es sólo mi opinión y no me considero lo suficientemente experto para conseguir que necesariamente convencido.
Cierre
Así que, básicamente, cuando en el estado de apagado, la Boot ROM es apenas corriendo que el consumo de batería es minúsculo. Cuando se despierta, todo lo que tiene que hacer es llamar a Preloader
y/o para contar LK
sobre lo que pasó. No estoy seguro de los detalles más profundos; no tengo ni idea, pero estoy dispuesto a decir que debe ser dependiente de la aplicación.
Despeje de dudas
Supongo que en este punto, su pregunta principal debería ser respondida.
A continuación, las respuestas a sus otras preguntas.
En Android consumen energía cuando están apagados?
No .
No es ninguna parte del sistema operativo Android ("Arranque normal", has dicho) la que consume energía.
¿Android? consumir energía cuando se apaga?
Sí pero apenas.
Tenga en cuenta que podría haber un consumo de energía adicional para hacer funcionar otras partes, especialmente el módulo RTC (Reloj en Tiempo Real).
Pero, ¿el teléfono está realmente apagado cuando lo apagamos y la batería está insertada? Sé que Android está realmente apagado pero ¿el teléfono está completamente apagado en cuanto al nivel de software?
No pero casi.
cuando el teléfono está apagado y pulsamos el botón de encendido ¿es el hardware el que inicia el arranque realmente desde cero (desde la rom de arranque) o en ese momento el teléfono ya ha terminado de procesar la rom de arranque, el preloader y cargar el pequeño kernel también que está viendo los eventos de pulsación de teclas?
Más como antiguo .
Excepto que la ROM de arranque está constantemente en funcionamiento, pero a duras penas.
Espero que ahora tengas una mejor idea de cómo funciona todo.
*Nota: La mayoría de las placas Arduino tienen dos MCUs, una en el centro y otra para controlar la interfaz USB.