Esta é a prévia para desenvolvedores do Android 13. Envie seu feedback e ajude a deixar o Android 13 ainda melhor.

Uso de recursos da bateria

O Android 13 introduz as medidas de preservação de bateria abaixo:

Atualizações relacionadas ao momento em que o app entra no bucket "restrito" para apps em espera

A menos que classificado como isento, o sistema vai colocar o app no bucket restrito quando ele apresentar um destes comportamentos:

  • O usuário não interagiu com o app por oito dias. Se o usuário interagir com outro app que está vinculado a um serviço do seu app, o sistema vai considerar que seu app foi usado.

  • O app invoca um número excessivo de transmissões ou vinculações em um período de 24 horas.

  • O app consome uma quantidade considerável de bateria do dispositivo em um período de 24 horas. Esse limite pode ser diferente em dispositivos com pouca memória RAM.

    Ao medir o impacto do consumo do app sobre a duração da bateria de um dispositivo, o sistema considera o trabalho que o app realiza em várias áreas diferentes, incluindo:

    • Jobs, incluindo jobs priorizados
    • Broadcast receivers
    • Serviços em segundo plano
    • Se o sistema armazenou o processo do app em cache.

A interação do usuário permite que o app saia do bucket "restrito"

Quando ocorre uma interação do usuário, o sistema remove o app do bucket restrito e o coloca em outro bucket para apps em espera. Essas interações incluem:

  • O usuário tocou em uma notificação enviada pelo app.

  • O usuário executou uma ação em um widget que pertence ao app.

  • O usuário afetou um serviço em primeiro plano no app ao pressionar um botão de mídia.

  • O usuário se conectou ao app ao interagir com o Android Automotive OS, em que o app usa um serviço em primeiro plano ou CONNECTION_TYPE_PROJECTION.

  • O app fica visível no modo picture-in-picture (PiP).

  • O app está entre os apps ativos na tela. Esse comportamento se aplica principalmente a dispositivos de tela grande.

Novas limitações de uso da bateria em segundo plano por apps em estado restrito

As versões já existentes do Android oferecem aos usuários a opção de ajustar a quantidade de trabalho que os apps podem realizar quando executados em segundo plano. As opções abaixo são mostradas na página Uso da bateria nas configurações do sistema:

  • Sem restrições: permite trabalho em segundo plano, podendo consumir mais bateria.
  • Otimizado (padrão): otimiza a capacidade do app de executar trabalhos em segundo plano de acordo com as interações do usuário.
  • Restrito: prioriza a duração da bateria do dispositivo em relação à versatilidade do app. Essa opção impõe mais limitações sobre os trabalhos que o app pode realizar em segundo plano.

A partir do Android 9 (nível 28 da API), apps colocados no estado restrito têm estas limitações:

  • Não é possível iniciar serviços em primeiro plano
  • Serviços em primeiro plano existentes são removidos
  • Alarmes não são acionados
  • Jobs não são executados

Em apps destinados ao Android 13, o sistema não envia nenhuma das transmissões abaixo até que o app seja iniciado por outros motivos:

  • BOOT_COMPLETED
  • LOCKED_BOOT_COMPLETED

Notificação do sistema sobre uso excessivo da bateria em segundo plano

O Android 13 introduz uma notificação do sistema exibida quando o app consome uma grande quantidade de bateria do dispositivo durante um período de 24 horas. Essa nova notificação aparece para todos os apps em dispositivos com o Android 13, independente da versão do SDK de destino.

Ao medir o impacto do consumo do app sobre a duração da bateria de um dispositivo, o sistema considera o trabalho que o app realiza em várias áreas diferentes, incluindo:

Se essa notificação for exibida para o app, ela não vai aparecer novamente no mesmo dispositivo por pelo menos 24 horas.

Notificação do sistema sobre serviços em primeiro plano de longa duração

Se o sistema detectar que o app executa um serviço em primeiro plano por um longo período (pelo menos 20 horas em um intervalo de 24 horas), ele vai enviar uma notificação ao usuário, exibindo a opção de abrir o gerenciador de tarefas dos serviços em primeiro plano (FGS). A notificação contém este texto:

APP is running in the background for a long time. Tap to review.

O sistema não vai exibir essa notificação caso o tipo de serviço em primeiro plano seja FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK ou FOREGROUND_SERVICE_TYPE_LOCATION.

Além disso, se o app executar um serviço em primeiro plano do tipo FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK ou FOREGROUND_SERVICE_TYPE_LOCATION por mais de quatro horas em um período de 24 horas, o sistema não vai enviar notificações de longa duração com relação a nenhum serviço em primeiro plano iniciado pelo app.

Isenções

As situações abaixo isentam os apps de todas as medidas de preservação de bateria introduzidas no Android 13:

As situações abaixo isentam o app de entrar no bucket "restrito" para apps em espera e permitem que ele não seja monitorado pelo acionador de inatividade por oito dias:

As situações abaixo isentam o app da maioria das medidas de preservação de bateria introduzidas no Android 13, mas não impedem que o sistema envie uma notificação sobre serviços em primeiro plano de longa duração:

Teste

As seções abaixo apresentam algumas maneiras de testar como as medidas de preservação da bateria introduzidas no Android 13 afetam o app.

Impedir o uso em segundo plano

Para impedir que o app possa ser executado em segundo plano, execute o comando abaixo em uma janela de terminal:

adb shell cmd appops set PACKAGE_NAME RUN_ANY_IN_BACKGROUND deny

Colocar o app em um bucket restrito

Para forçar o sistema a colocar o app no bucket restrito, execute o comando abaixo em uma janela de terminal:

adb shell am set-standby-bucket PACKAGE_NAME restricted