Para melhorar a duração da bateria, o Android pode afetar o estado do dispositivo ao monitorar o uso do dispositivo e o estado de despertar. A plataforma pode entrar em um estado de suspensão para interromper a execução de atividades enquanto o dispositivo não está sendo usado.
Sobre o recurso Soneca
O recurso "Soneca" aumenta a duração da bateria adiando a CPU em segundo plano do app e a atividade da rede quando um dispositivo não é usado por longos períodos.
Os dispositivos inativos entram periodicamente em uma janela de manutenção, durante a qual podem concluir trabalhos pendentes (sincronizações, tarefas etc.). "Soneca" retoma por um período mais longo, seguido por outra janela de manutenção. A continua a sequência de sono/manutenção do Soneca, aumentando a duração ociosos a cada vez, até atingir um máximo de algumas horas de tempo de suspensão. De jeito nenhum vezes, um dispositivo no modo Soneca permanece ciente do movimento e sai imediatamente do modo Soneca se for detectado movimento.
O Android 7.0 e versões posteriores ampliam o modo Soneca para acionar um conjunto mais leve de otimizações sempre que um usuário desligar a tela do dispositivo, mesmo quando ele continuar se mover, permitindo uma duração da bateria mais duradoura.
Serviços críticos do sistema geralmente são configurados pelos fabricantes de dispositivos para serem isentos de Soneca. Os usuários também podem isentar apps específicos do modo Soneca usando o Menu "Configurações". No entanto, isentar apps pode causar o consumo da bateria do dispositivo. Por padrão, a Soneca está desativada no AOSP. para detalhes sobre como ativar o modo soneca, consulte Integração do modo soneca.
Requisitos do Soneca
O suporte à Soneca requer que o dispositivo tenha um serviço de mensagens em nuvem, como Firebase Cloud Messaging (FCM). Eventos de gatilho externo, como mensagens na nuvem, pode ativar temporariamente os apps para que funcionem enquanto o dispositivo permanece no modo Soneca.
O suporte total à Soneca também requer uma significativo detector de movimento (SMD, na sigla em inglês) no dispositivo. No entanto, o modo leve Soneca O Android 7.0 e versões mais recentes não exigem um SMD. Se o modo Soneca estiver ativado em um dispositivo que:
- Tem um SMD, ocorrem otimizações completas do Soneca (inclui conteúdo leve e otimizações).
- Não tiver um SMD, apenas as otimizações leves do Soneca.
Ciclo de vida da Soneca
O modo soneca é iniciado quando a plataforma detecta que o dispositivo está inativo e termina quando uma ou mais atividades de critérios de saída ocorrerem.
A plataforma detecta que um dispositivo está ocioso quando:
- O dispositivo está parado (usando SMD).
- A tela do dispositivo fica desligada por um período.
O modo Soneca não é ativado enquanto um dispositivo alimentado por bateria está conectado a um carregador de energia.
Durante o Soneca
A plataforma tenta manter o sistema em um estado de suspensão periodicamente retomando as operações normais durante uma janela de manutenção e, em seguida, devolvendo o dispositivo. de dormir por períodos repetidos mais longos. Durante o sono, os seguintes há restrições ativas:
- Os apps não têm permissão para acessar a rede.
- Wakelocks de apps ignorados.
- Os alarmes são adiados. Exclui alarmes de despertador e alarmes definidos usando
setAndAllowWhileIdle()
(limitado a 1 a cada 15 minutos por app, enquanto no modo Soneca). Essa isenção é destinada a apps (como o Google Agenda) que precisam exibir notificações de lembrete de evento. - As buscas por Wi-Fi não são realizadas.
SyncAdapter
sincronizações eJobScheduler
jobs adiados até a próxima janela de manutenção.- Os aplicativos que recebem mensagens SMS e MMS são colocados em uma lista de permissões temporária para que para concluir o processamento.
Sair
A plataforma sai do dispositivo do modo Soneca quando detecta:
- Interação do usuário com o dispositivo
- Movimentação do dispositivo
- A tela do dispositivo é ativada
- Alarme iminente no AlarmClock
As notificações não fazem o dispositivo sair do modo Soneca.
O Android 7.0 e versões mais recentes ampliam o Soneca, permitindo um modo de sono leve enquanto a tela estiver desligada, antes que o dispositivo fique inativo.
Figura 1. Modos de soneca para dispositivos estacionários e não estacionários.
Ação | Soneca | Soneca leve |
---|---|---|
Acionador | Tela desligada, bateria, parada | Tela desligada, bateria (desconectada) |
Marcação de tempo | Períodos sucessivamente aumentados com manutenção | Períodos repetidos de N minutos com janelas de manutenção |
Restrições | Sem acesso à rede, wake lock ou busca por GPS/Wi-Fi; alarmes e trabalhos/sincronizações adiado | Sem acesso à rede jobs/sincronizações adiados, exceto durante janelas de manutenção |
Comportamento | Apenas mensagens de notificação push de alta prioridade foram recebidas | todas as mensagens em tempo real (mensagens instantâneas, chamadas etc.) recebidas; uma mensagem de notificação push de alta prioridade permite o acesso temporário à rede |
Sair | Movimento, tela ligada ou alarme de despertador | Tela ativada |
Interação com App em espera
- O tempo gasto no modo Soneca não é contabilizado no App em espera.
- Enquanto o dispositivo estiver no modo Soneca, os apps inativos podem funcionar normalmente operações pelo menos uma vez por dia.
Integrar o modo Soneca
Quando o modo Soneca está ativado, os dispositivos compatíveis
SENSOR_TYPE_SIGNIFICANT_MOTION
Realizar otimizações completas do Soneca (incluindo otimizações leves).
os dispositivos sem um SMD realizam apenas otimizações leves no modo Soneca. Android
seleciona automaticamente as otimizações do modo Soneca e o fornecedor
configuração não é necessária.
Para ativar o modo Soneca em um dispositivo:
- Confirme se o dispositivo tem um serviço de mensagens na nuvem instalado.
- No arquivo de configuração de sobreposição do dispositivo
overlay/frameworks/base/core/res/res/values/config.xml
, definidoconfig_enableAutoPowerModes
atrue
: No AOSP, esse parâmetro é definido como<bool name="config_enableAutoPowerModes">true</bool>
false
(Soneca desativada) por padrão.
- Confirme se os apps e serviços pré-carregados:
- Use o
economia de energia
diretrizes de otimização. Para mais detalhes, consulte Testes e
e otimização de apps.
OU
- estão isentos dos recursos Soneca e App em espera; Para mais detalhes, consulte Apps isentos.
- Use o
economia de energia
diretrizes de otimização. Para mais detalhes, consulte Testes e
e otimização de apps.
- Confirmar se os serviços necessários estão isentos do modo Soneca.
Dicas
- Se possível, use o FCM para downstream .
- Se seus usuários precisarem ver uma notificação imediatamente, use um FCM mensagem de alta prioridade.
- Forneça informações suficientes no mensagem payload (para evitar acessos subsequentes à rede desnecessários).
- Defina alarmes críticos com
setAndAllowWhileIdle()
esetExactAndAllowWhileIdle()
Testar e otimizar apps
Teste todos os apps (principalmente os pré-carregados) no modo Soneca. Para mais detalhes, consulte Teste com os recursos "Soneca" e "App em espera".