O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

App Standby Buckets

O Android 9 (API nível 28) introduz um novo recurso de gerenciamento de bateria, o App Standby Buckets. Esse recurso ajuda o sistema a priorizar solicitações de apps para recursos com base no modo e na frequência com que os apps são usados. De acordo com os padrões de uso, cada app é colocado em um de cinco intervalos de prioridade. O sistema limita os recursos do dispositivo disponíveis para cada app com base no intervalo em que o app está.

Intervalos de prioridade

O sistema atribui dinamicamente cada app a um intervalo de prioridade, reatribuindo-os conforme necessário. O sistema pode se basear em um app pré-carregado que usa aprendizado de máquina para determinar a probabilidade de uso de cada app e atribui apps aos intervalos adequados. Se o app do sistema não estiver presente em um dispositivo, o comportamento padrão será classificar apps de acordo com a data em que eles foram usados. Os apps mais ativos são atribuídos a intervalos que dão maior prioridade aos apps, disponibilizando mais recursos do sistema para o aplicativo. Em particular, o intervalo determina com que frequência os jobs do aplicativo serão executados, com que frequência o app pode acionar alarmes e com que frequência ele pode receber mensagens de alta prioridade do Firebase Cloud Messaging. Essas restrições são válidas somente enquanto o dispositivo está usando a energia da bateria. O sistema não impõe essas restrições a apps enquanto o dispositivo está carregando.

Observação: cada fabricante pode definir critérios próprios de atribuição de apps inativos a intervalos. Não tente influenciar para qual intervalo seu app é atribuído. Em vez disso, concentre-se em verificar se o app se comporta bem, independentemente do intervalo. Seu app pode descobrir em que bloco está localizado atualmente chamando UsageStatsManager.getAppStandbyBucket().

Os intervalos são:

  • Ativo: o app está sendo usado ou foi usado recentemente.
  • Grupo de trabalho: o app está em uso regular.
  • Frequente: o app costuma ser usado, mas não todos os dias.
  • Raro: o app não é usado com frequência.

Além disso, há o intervalo especial Nunca para apps que foram instalados, mas nunca foram executados. O sistema impõe restrições severas a esses apps.

Observação: os apps que estão na lista de permissões do "Soneca" são isentos das restrições baseadas no App Standby Bucket.

Observação: as descrições a seguir referem-se ao caso não preditivo. Por outro lado, quando a previsão usa aprendizado de máquina para prever um comportamento, os intervalos são escolhidos antes das próximas ações do usuário, não com base nas datas de uso. Por exemplo, um app usado recentemente pode acabar no intervalo Raro porque o aprendizado de máquina prevê que o app não será usado por várias horas.

Ativo

Um app passa para o intervalo Ativo quando ele está sendo usado pelo usuário ou se foi usado muito recentemente. Por exemplo:

  • O app iniciou uma atividade.
  • O app está executando um serviço no primeiro plano.
  • O app tem um adaptador de sincronização associado a um provedor de conteúdo usado por um app no primeiro plano.
  • O usuário clica em uma notificação do app.

Se um app estiver no intervalo Ativo, o sistema não colocará nenhuma restrição para tarefas, alarmes ou mensagens do FCM do app.

Grupo de trabalho

Um app vai para o intervalo Grupo de trabalho se é executado com frequência, mas não está ativo no momento. Por exemplo, um app de mídia social que o usuário inicia quase todos os dias provavelmente estará no intervalo Grupo de trabalho. Os apps também são promovidos para esse intervalo quando são usados indiretamente.

Quando um app está no intervalo Grupo de trabalho, o sistema impõe restrições moderadas à capacidade de executar tarefas e acionar alarmes. Para saber detalhes, consulte Restrições de gerenciamento de energia.

Frequente

Um app vai para o intervalo Frequente quando é usado com regularidade, mas não necessariamente todos os dias. Por exemplo, um app de monitoramento de atividades físicas que o usuário executa na academia pode estar no intervalo Frequente.

Quando um app está no intervalo Frequente, o sistema impõe restrições mais severas à capacidade de executar tarefas e acionar alarmes, além de impor um limite para mensagens de alta prioridade do FCM. Para saber detalhes, consulte Restrições de gerenciamento de energia.

Raro

Um app vai para o intervalo Raro quando não é usado com frequência. Por exemplo, o app de um hotel que o usuário só executa enquanto está hospedado nesse hotel pode estar no intervalo Raro.

Quando um app está no intervalo Raro, o sistema impõe restrições rígidas à capacidade de executar tarefas, acionar alarmes e receber mensagens de alta prioridade do FCM. O sistema também limita a capacidade do app de se conectar à Internet. Para saber detalhes, consulte Restrições de gerenciamento de energia.

Práticas recomendadas

Se seu app já segue práticas recomendadas para o "Soneca" e o "App em espera", lidar com os novos recursos de gerenciamento de energia não será difícil. No entanto, o comportamento de alguns apps que anteriormente funcionavam bem agora pode causar problemas.

  • Não tente manipular o sistema para colocar seu app em um intervalo ou outro. Os métodos agrupamento do sistema podem mudar, e o fabricante de cada dispositivo pode optar por criar um app de agrupamento em intervalos com o próprio algoritmo. Em vez disso, verifique se seu app se comporta de forma correta, independentemente do intervalo.
  • Se um app não tiver uma atividade de tela de início, ele nunca será promovido para o intervalo Ativo. Você pode reformular seu app para ter essa atividade.
  • Se as notificações do app não forem práticas, os usuários não poderão acionar a promoção do app para o intervalo Ativo interagindo com as notificações. Nesse caso, reformule algumas notificações apropriadas para que elas permitam uma resposta do usuário. Para ver algumas diretrizes, consulte os padrões de design de notificações (em inglês) do Material Design.
  • Da mesma forma, se o app não mostrar uma notificação ao receber uma mensagem de alta prioridade do FCM, o usuário não poderá interagir com o app nem promovê-lo para o intervalo Ativo. Na verdade, o único uso pretendido para mensagens de alta prioridade do FCM é enviar uma notificação ao usuário. Portanto, essa situação nunca deve ocorrer. Se você marcar incorretamente uma mensagem do FCM como sendo de alta prioridade quando ela não aciona uma interação do usuário, isso poderá causar outras consequências negativas. Por exemplo, a cota do seu app pode esgotar, fazendo com que mensagens do FCM realmente urgentes sejam tratadas como sendo de prioridade normal.

    Observação: se o usuário dispensar várias vezes uma notificação, o sistema oferecerá a opção de bloquear essa notificação no futuro. Não envie inúmeras notificações para o usuário apenas para tentar manter seu app no intervalo Ativo.

  • Se os apps forem divididos em vários pacotes, esses pacotes poderão estar em diferentes intervalos e, assim, ter diferentes níveis de acesso. Teste esses apps com os pacotes atribuídos a vários intervalos para verificar se o app se comporta corretamente.