Gerenciamento de energia da plataforma com o Soneca

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 e JobScheduler 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:

  1. Confirme se o dispositivo tem um serviço de mensagens na nuvem instalado.
  2. No arquivo de configuração de sobreposição do dispositivo overlay/frameworks/base/core/res/res/values/config.xml, definido config_enableAutoPowerModes a true:
    <bool name="config_enableAutoPowerModes">true</bool>
    
    No AOSP, esse parâmetro é definido como false (Soneca desativada) por padrão.
  3. Confirme se os apps e serviços pré-carregados:
  4. Confirmar se os serviços necessários estão isentos do modo Soneca.

Dicas

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".