Wake locks parciais são um mecanismo da API PowerManager
que possibilita 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 recebe um wake lock parcial ao chamar
acquire()
com a
flag
PARTIAL_WAKE_LOCK
ou usando outras APIs que recebem wake locks.
Um wake lock parcial fica travado se for retido por muito tempo enquanto
o app está sendo executado em
segundo plano. Ou seja, quando nenhuma parte do app está visível para o usuário. Essa condição 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.
Caso seu app tenha um wake lock parcial travado, você pode usar as orientações nesta página para diagnosticar e corrigir o problema.
Detectar o problema
Nem sempre você sabe que os wake locks parciais do seu app estão travados. Se você já publicou o app, o recurso Android vitals pode ajudar a identificar o problema.
Android vitals
O recurso Android vitals pode ajudar a melhorar a performance do app alertando você, pelo Play Console, quando o app apresentar wake locks parciais travados. O Android vitals informa que há wake locks parciais travados quando pelo menos um wake lock parcial de uma hora ocorre em segundo plano em um período de 24 horas.
A duração da bateria mostrada é uma estimativa com base em informações de todos os usuários medidos do app. Parar informações sobre como o Google Play coleta dados do Android vitals, consulte a documentação do Play Console.
Depois de identificar que o app tem wake locks parciais travados, a próxima etapa é resolver o problema.
Corrigir falha
Como os wake locks podem descarregar a bateria do dispositivo, não use wake locks 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 ele não prejudique a eficiência do dispositivo. Em particular, verifique se todos os dispositivos que você adquiriu foram liberados e libere a trava o mais rápido possível.
Depois de corrigir o problema no código, você pode verificar as correções usando as ferramentas de depuração de wake lock locais.
Veja também
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado
- Frames congelados
- Executar comparativos na integração contínua
- Criar e medir perfis de referência sem a Macrobenchmark