Para mejorar la duración de batería, Android puede afectar el estado del dispositivo supervisar el uso y la activación del dispositivo. La plataforma puede pasar al estado Suspender para detener la ejecución de actividades mientras el dispositivo no está en uso.
Acerca de Descanso
Descanso prolonga la duración de la batería aplazando la CPU y la actividad de red cuando un dispositivo no se usa durante largos períodos.
Los dispositivos inactivos en Descanso entran periódicamente en un período de mantenimiento, durante el cual las apps pueden completar el trabajo pendiente (sincronizaciones, trabajos, etc.). Descanso luego se reanuda se suspende durante un período prolongado, seguido de otro período de mantenimiento. El continua la secuencia de suspensión/mantenimiento Descanso, aumentando la duración de de inactividad cada vez hasta que se alcance un período de suspensión de algunas horas. Para nada veces, un dispositivo en modo Descanso permanece al tanto del movimiento e inmediatamente sale del modo Descanso si se detecta movimiento.
Android 7.0 y las versiones posteriores extienden el modo Descanso para activar un conjunto más liviano de optimizaciones Cada vez que un usuario apaga la pantalla del dispositivo, incluso si continúa moverse, lo que permite una mayor duración de la batería.
Por lo general, los fabricantes de dispositivos configuran los servicios críticos del sistema para que sean exenta de Descanso. Además, los usuarios pueden excluir determinadas apps del modo Descanso con el Menú de configuración Sin embargo, la exención de apps puede provocar que se agote la batería del dispositivo. De forma predeterminada, Descanso está inhabilitado en AOSP. para detalles sobre cómo habilitar el modo Descanso, consulta Cómo integrar el modo Descanso.
Requisitos del modo Descanso
La compatibilidad con Descanso requiere que el dispositivo tenga un servicio de mensajería en la nube, como Firebase Cloud Messaging (FCM). Los eventos de activadores externos, como mensajes en la nube, puede activar temporalmente las apps para que funcionen mientras el dispositivo permanece en el modo Descanso.
La compatibilidad completa con el modo Descanso también requiere significativo detector de movimiento (SMD) en el dispositivo. Sin embargo, el modo ligero Descanso en Android 7.0 y las versiones posteriores no requieren un SMD. Si el dispositivo tiene habilitada la función Descanso, haz lo siguiente: que:
- Tiene un SMD; se realizan optimizaciones de Descanso total (incluidas las optimizaciones).
- No tiene un SMD, solo se realizan las optimizaciones ligeras de Descanso.
Ciclo de vida de Descanso
El modo Descanso comienza cuando la plataforma detecta que el dispositivo está inactivo y finaliza cuando ocurren una o más actividades de criterios de salida.
La plataforma detecta que un dispositivo está inactivo en los siguientes casos:
- El dispositivo está fijo (con SMD).
- La pantalla del dispositivo estará apagada durante cierta cantidad de tiempo.
El modo Descanso no funciona cuando un dispositivo con batería está conectado a un cargador.
Durante Descanso
La plataforma intenta mantener el sistema en estado de suspensión, periódicamente, reanudar las operaciones normales durante un período de mantenimiento y, luego, devolver el dispositivo se duerme por períodos más largos. Durante el sueño, ocurre lo siguiente restricciones activas:
- Las apps no tienen acceso a la red.
- Se ignoraron los bloqueos de activación de apps.
- Las alarmas se posponen. Excluye las alarmas y las alarmas establecidas con
setAndAllowWhileIdle()
(limitado a 1 vez cada 15 minutos por aplicación mientras que en Descanso). Esta exención está destinada a apps (como Calendario) que deben mostrar notificaciones con recordatorios de eventos. - No se realizan búsquedas de Wi-Fi.
SyncAdapter
sincronizaciones yJobScheduler
trabajos diferidos hasta el próximo período de mantenimiento.- Las apps que reciben mensajes SMS y MMS se incluyen en una lista blanca temporal para que para que puedan completar el procesamiento.
Salir
La plataforma hace que el dispositivo salga del modo Descanso cuando detecta lo siguiente:
- Interacción del usuario con el dispositivo
- Movimiento del dispositivo
- Se enciende la pantalla del dispositivo
- Alarma de alarma inminente
Las notificaciones no provocan la salida del dispositivo de la función Descanso.
Android 7.0 y versiones posteriores extienden el modo Descanso al habilitar un modo de suspensión ligero cuando la pantalla está apagada, antes de que el dispositivo quede inactivo.
Figura 1: Modos Descanso para dispositivos fijos y no fijos
Acción | Descanso | Descanso ligero |
---|---|---|
Activador | Pantalla apagada, con batería, apagada | Pantalla apagada, con batería (desenchufada) |
Tiempos | Aumentar los períodos de forma sucesiva con el mantenimiento | Períodos de N minutos repetidos con períodos de mantenimiento |
Restricciones | Sin acceso a la red, bloqueo de activación ni búsqueda de Wi-Fi o GPS. alarmas y trabajos y sincronizaciones diferido | Sin acceso a la red. trabajos y sincronizaciones aplazadas, excepto durante los períodos de mantenimiento |
Comportamiento | Solo se recibieron mensajes de notificación push de prioridad alta | Todos los mensajes en tiempo real (mensajes instantáneos, llamadas, etc.) recibidos un mensaje de notificación push de alta prioridad habilita el acceso temporal a la red |
Salir | Movimiento, pantalla encendida o alarma de despertador | Pantalla encendida |
Interacción con App Standby
- El tiempo que pasas en el modo Descanso no se incluye en el modo App Standby.
- Cuando el dispositivo está en Descanso, las apps inactivas pueden realizar una acción normal las operaciones al menos una vez al día.
Cómo integrar el modo Descanso
Cuando está habilitada la función Descanso, los dispositivos que admiten
SENSOR_TYPE_SIGNIFICANT_MOTION
realizar optimizaciones completas de Descanso (incluidas las optimizaciones ligeras)
los dispositivos sin SMD solo realizan optimizaciones ligeras de Descanso. En Android
selecciona automáticamente las optimizaciones de Descanso y los proveedores
configuración no es necesaria.
Para habilitar el modo Descanso en un dispositivo, haz lo siguiente:
- Confirma que el dispositivo tenga instalado un servicio de mensajería en la nube.
- En el archivo de configuración de superposición de dispositivos
Se estableció
overlay/frameworks/base/core/res/res/values/config.xml
Deconfig_enableAutoPowerModes
atrue
: En AOSP, este parámetro se establece en<bool name="config_enableAutoPowerModes">true</bool>
false
(Descanso inhabilitado) de forma predeterminada.
- Confirma que las apps y los servicios precargados cumplan con lo siguiente:
- Usa el
de ahorro de energía
lineamientos de optimización. Para obtener más información, consulta Pruebas y
optimizar apps.
OR
- Están exentas de las funciones Descanso y App Standby. Para obtener más información, consulta Exención de apps.
- Usa el
de ahorro de energía
lineamientos de optimización. Para obtener más información, consulta Pruebas y
optimizar apps.
- Confirma que los servicios necesarios estén exentos de la función Descanso.
Sugerencias
- Si es posible, usa FCM para downstream mensajería.
- Si los usuarios deben ver una notificación de inmediato, utiliza una FCM alta prioridad.
- Proporciona suficiente información mensaje de red (para evitar un acceso de red posterior innecesario).
- Establece alarmas críticas con
setAndAllowWhileIdle()
ysetExactAndAllowWhileIdle()
Prueba y optimiza apps
Prueba todas las apps (en especial, las precargadas) en el modo Descanso. Para obtener más información, consulta Pruebas con los modos Descanso y App Standby.