Wake locks parciais em excesso

Wake locks parciais são um mecanismo da API PowerManager que permite que os desenvolvedores mantenham a CPU em funcionamento após a tela de um dispositivo ser desativada, seja devido ao tempo limite do sistema ou porque o usuário pressionou o botão liga/desliga. Seu app adquire um wake lock parcial chamando acquire() com a flag PARTIAL_WAKE_LOCK ou usando outras APIs que adquirem wake locks. O uso excessivo de wake locks parciais consome a bateria do dispositivo porque impede que ele entre em estados de baixo consumo de energia. Os wake locks parciais só devem ser usados quando for preciso e liberados assim que não forem mais necessários.

Se o app usar wake locks parciais em excesso, use as orientações desta página para diagnosticar e corrigir o problema.

Seu feedback é essencial para melhorar nossa documentação. Envie seu feedback usando o seguinte link:

Enviar feedback

Detectar o problema

O Android vitals pode ajudar você a descobrir quando o uso de wake locks parciais do app é excessivo.

Android vitals

O Android vitals pode ajudar a melhorar o desempenho do app alertando você pelo Play Console quando o uso de wake locks parciais do app é excessivo.

O Android vitals informa que o uso de wake locks parciais é excessivo quando todos os wake locks parciais, somados, são executados por duas horas ou mais em um período de 24 horas. O Android vitals rastreia a duração do wake lock apenas se ele for mantido quando o app estiver em segundo plano ou executando um serviço em primeiro plano. No momento, o Android vitals isenta do cálculo de bloqueio de despertar os bloqueios criados pelas APIs iniciadas pelo usuário audio, location e JobScheduler.

O painel de wake locks parciais excessivos do Android vitals oferece detalhamentos dos nomes de wake locks não isentos associados ao seu app, mostrando sessões e durações afetadas.

Se bloqueios de ativação parciais excessivos ocorrerem em mais de 5% das sessões do app em todos os dispositivos em um período de 28 dias, isso poderá afetar a visibilidade do app no Google Play quando a métrica sair da versão Beta.

Depois de identificar wake locks parciais em excesso no app, a próxima etapa é resolver o problema.

Corrigir falha

Como os wake locks podem descarregar a bateria do dispositivo, não use esse recurso se houver uma alternativa. A documentação Escolher a API certa para manter o dispositivo ativo pode ajudar você a encontrar a melhor solução para seu app.

Se você precisar usar um wake lock, siga as práticas recomendadas para garantir que eles não prejudiquem a eficiência do dispositivo. Em particular, verifique se todos os dispositivos adquiridos foram liberados e libere o bloqueio o mais rápido possível.

Seu app também pode estar usando wake locks mesmo que você não esteja adquirindo o wake lock explicitamente. Se você encontrar bloqueios de despertar atribuídos a um app que não reconhece, identificar bloqueios de despertar criados por outras APIs pode ajudar a identificar as APIs que podem ter criado esses bloqueios.

Depois de corrigir o problema no código, verifique as correções usando ferramentas locais de depuração de wake lock.

Veja também