Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Modo de suspensión

Estados de energía del SoC

Los estados de energía del sistema en un chip (SoC) son: encendido, inactivo y suspendido. "Activado" es cuando el SoC está funcionando. "Inactivo" es un modo de potencia media en el que el SoC se alimenta pero no realiza ninguna tarea. “Suspender” es un modo de bajo consumo en el que el SoC no está encendido. El consumo de energía del dispositivo en este modo suele ser 100 veces menor que en el modo "Encendido".

Sensores que no despiertan

Los sensores sin activación son sensores que no impiden que el SoC entre en modo de suspensión y no activan el SoC para informar datos. En particular, los conductores no pueden mantener bloqueos de activación. Es responsabilidad de las aplicaciones mantener un bloqueo de activación parcial si desean recibir eventos de sensores que no se activan mientras la pantalla está apagada. Mientras el SoC está en modo de suspensión, los sensores deben continuar funcionando y generar eventos, que se colocan en un FIFO de hardware. (Consulte Agrupación en lotes para obtener más detalles). Los eventos de FIFO se envían a las aplicaciones cuando el SoC se activa. Si el FIFO es demasiado pequeño para almacenar todos los eventos, los eventos más antiguos se pierden; los datos más antiguos se eliminan para acomodar los datos más recientes. En el caso extremo de que no exista FIFO, se pierden todos los eventos generados mientras el SoC está en modo de suspensión. Una excepción es el último evento de cada sensor de cambio: el último eventodebe guardarse fuera del FIFO para que no se pierda.

Tan pronto como el SoC sale del modo de suspensión, se informan todos los eventos del FIFO y las operaciones se reanudan con normalidad.

Las aplicaciones que utilizan sensores que no se activan deben mantener un bloqueo de activación para garantizar que el sistema no se suspenda, cancelar el registro de los sensores cuando no los necesiten o esperar perder eventos mientras el SoC está en modo de suspensión.

Sensores de despertador

A diferencia de los sensores de no activación, los sensores de activación garantizan que sus datos se entreguen independientemente del estado del SoC. Mientras el SoC está despierto, los sensores de activación se comportan como sensores sin activación. Cuando el SoC está inactivo, los sensores de activación deben activar el SoC para entregar eventos. Deben dejar que el SoC pase al modo de suspensión, pero también deben activarlo cuando sea necesario informar de un evento. Es decir, el sensor debe activar el SoC y entregar los eventos antes de que haya transcurrido la latencia máxima de informes o se llene el FIFO del hardware. Consulte Procesamiento por lotes para obtener más detalles.

Para garantizar que las aplicaciones tengan tiempo para recibir el evento antes de que el SoC vuelva a dormir, el conductor debe mantener un "bloqueo de activación de tiempo de espera" durante 200 milisegundos cada vez que se informa un evento. Es decir, no se debe permitir que el SoC vuelva a dormir en los 200 milisegundos posteriores a una interrupción de activación. Este requisito desaparecerá en una futura versión de Android, y necesitamos este bloqueo de activación de tiempo de espera hasta entonces.

¿Cómo definir los sensores de despertador y no despertador?

Hasta KitKat, el tipo de sensor dictaba si un sensor era un sensor de activación o no activación: la mayoría eran sensores sin activación, con la excepción del sensor de proximidad y el detector de movimiento significativo .

Comenzando en L, si un sensor dado es un sensor de activación o no, se especifica mediante una bandera en la definición del sensor. La mayoría de los sensores se pueden definir por pares de variantes de activación y no activación del mismo sensor, en cuyo caso deben comportarse como dos sensores independientes, sin interactuar entre sí. Consulte Interacción para obtener más detalles.

A menos que se especifique lo contrario en la definición del tipo de sensor, se recomienda implementar un sensor de activación y un sensor de no activación para cada tipo de sensor enumerado en Tipos de sensor . En cada definición de tipo de sensor, vea qué sensor (despertador o no despertador) devolverá SensorManager.getDefaultSensor(sensorType) . Es el sensor que utilizarán la mayoría de aplicaciones.