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 usa 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 link abaixo:
Detectar o problema
O Android vitals pode ajudar a descobrir quando o uso de wake locks parciais pelo app é excessivo.
Android vitals
O recurso "Android vitals" pode ajudar a melhorar o desempenho do app alertando você, pelo Play Console, quando o uso de wake locks parciais é excessivo.
O Android vitals informa que o uso de wake lock parcial é excessivo quando todos os wake locks parciais, somados, são executados por três ou mais horas em um período de 24 horas.
O Android vitals rastreia o tempo somente se o wake lock for mantido quando o app estiver em segundo plano e não tiver um serviço em primeiro plano.
O Android vitals oferece algumas exceções ao uso de wake lock parcial em cenários em que há um benefício claro para o usuário do wake lock parcial e não há uma maneira melhor de alcançar esse resultado sem o wake lock parcial. Nesses casos, o Android vitals pode não contabilizar o tempo de wake lock parcial no limite de três horas. Por exemplo, se um app estiver reproduzindo áudio para o usuário, há um benefício claro em manter o dispositivo acordado, e não há como reproduzir o áudio sem manter o dispositivo acordado. Nesse caso, o tempo de wake lock parcial não é contabilizado no Android vitals.
Se bloqueios de desbloqueio parcial excessivos ocorrerem em mais de 5% das sessões de 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 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 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