1 votos

Estado de apagado del teléfono Android y proceso de arranque - ¿Consume Android energía cuando está apagado?

Tengo curiosidad por conocer el estado de "apagado" y el proceso de arranque posterior en detalle. He encontrado algunos buenos artículos sobre este tema como este: http://www.lieberbiber.de/2015/07/05/mediatek-details-little-kernel/ pero aún no me queda del todo claro cuál es el proceso exacto.

Sé que la secuencia básica de arranque es:

  • ROM de arranque
  • Precargador
  • Pequeño núcleo (LK)
  • Y luego puede dividirse en ir a:
    • Modo de descarga (en el caso de un dispositivo Samsung, por ejemplo)
    • Modo Fastboot o
    • Recuperación o
    • Arranque normal (inicio del propio arranque de Android)

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 a nivel de software? Como dice el artículo enlazado arriba, el pequeño kernel está haciendo la animación de carga, o selecciona la siguiente imagen de arranque al pulsar las teclas (recovery, fastboot, normal boot, etc).

Así que mi pregunta es: cuando el teléfono está apagado y pulsamos el botón de encendido ¿es el hardware que inicia el arranque realmente desde cero (desde la rom de arranque) o en este momento el teléfono ya ha terminado de procesar la rom de arranque, el precargador y cargar el pequeño kernel también que está viendo los eventos de pulsación de teclas?

No me queda claro porque también revisé el código fuente del pequeño kernel y hay algunas rutinas de ckecking de teclado por ejemplo para entrar al modo de recuperación.

Gracias de antemano.

¡Salud!

0voto

EuphCat Puntos 1

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?

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.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X