Google se compromete a promover la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Modo de suspensión

SoC estados de energía

Los estados de alimentación del sistema en un chip (SoC) son: encendido, inactivo y suspendido. "Encendido" es cuando el SoC se está ejecutando. "Inactivo" es un modo de potencia media donde el SoC funciona pero no realiza ninguna tarea. "Suspender" es un modo de baja potencia donde el SoC no está alimentado. El consumo de energía del dispositivo en este modo suele ser 100 veces menor que en el modo "Encendido".

Sensores sin despertador

Los sensores sin activación son sensores que no evitan que el SoC entre en modo de suspensión y no lo despiertan 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 son de activación 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 Lotes para obtener más detalles). Los eventos en el FIFO se entregan a las aplicaciones cuando se activa el SoC. 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 últimos datos. En el caso extremo donde el FIFO no existe, todos los eventos generados mientras el SoC está en modo de suspensión se pierden. Una excepción es el último evento de cada sensor de cambio: el último evento debe guardarse fuera del FIFO para que no se pueda perder.

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

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

Sensores de despertador

En oposición a los sensores que no son de activación, los sensores de activación aseguran que sus datos se entreguen independientemente del estado del SoC. Mientras el SoC está despierto, los sensores de activación se comportan como sensores que no son de activación. Cuando el SoC está dormido, los sensores de activación deben activarlo para entregar eventos. Todavía deben dejar que el SoC entre en modo de suspensión, pero también deben despertarlo cuando sea necesario informar 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 que el FIFO de hardware se llene. Ver Lotes para más detalles.

Para garantizar que las aplicaciones tengan tiempo para recibir el evento antes de que el SoC vuelva a dormir, el controlador 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 después de 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 activación y no activación?

Hasta KitKat, si un sensor era un despertador o un sensor sin despertador estaba dictado por el tipo de sensor: la mayoría eran sensores sin despertador, 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 un indicador en la definición del sensor. La mayoría de los sensores se pueden definir mediante 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í. Ver Interacción para 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 sensores . En cada definición de tipo de sensor, vea qué sensor (despertador o no) será devuelto por SensorManager.getDefaultSensor(sensorType) . Es el sensor que usarán la mayoría de las aplicaciones.