Android Pie adiciona recurso para evitar matar jogos com muita RAM se você sair acidentalmente

click fraud protection

O Android Pie está sendo lançado hoje e um dos recursos ocultos interessantes é a capacidade de evitar que jogos com muita RAM sejam eliminados se você sair acidentalmente.

Hoje cedo, o Google anunciado oficialmente Torta Android para Google Pixel e Google Pixel 2. Imediatamente depois, Essencial lançado a atualização do Android 9 para o Essential Phone. Outros dispositivos que participaram no programa beta do Android P deve receber a atualização em breve, então os usuários que pularam as prévias do desenvolvedor agora têm muito o que fazer. À medida que nos aprofundamos na versão mais recente, incluindo o queda de código fonte no AOSP e o mais recente Documento de Definição de Compatibilidade (CDD), iremos atualizá-lo periodicamente com quaisquer novas informações que descobrirmos. Algo interessante que encontramos no CDD é uma seção para aplicativos e jogos “pesados” (com muita RAM). em que o Android Pie priorizará manter esses aplicativos na RAM caso o usuário saia acidentalmente eles.

Aplicativos e jogos "pesados" no Android Pie

Uma nova seção foi adicionada ao CDD que descreve esse recurso. Aqui está o que diz:

3.17. Aplicativos pesados

Se as implementações de dispositivos declararem o recurso FEATURE_CANT_SAVE_STATE, então elas:

  • [C-1-1] DEVE ter apenas um aplicativo instalado que especifique cantSaveState em execução no sistema por vez. Se o usuário sair de tal aplicativo sem sair explicitamente dele (por exemplo, pressionando home enquanto sai de uma atividade ativa do sistema, em vez de pressionar voltar sem deixar atividades ativas no sistema), então as implementações de dispositivos DEVEM priorizar esse aplicativo na RAM, assim como fazem com outras coisas que devem permanecer em execução, como primeiro plano Serviços. Embora esse aplicativo esteja em segundo plano, o sistema ainda pode aplicar recursos de gerenciamento de energia a ele, como limitar o acesso à CPU e à rede.
  • [C-1-2] DEVE fornecer uma capacidade de UI para escolher o aplicativo que não participará do mecanismo de salvamento/restauração do estado normal quando o usuário iniciar um segundo aplicativo declarado com o atributo cantSaveState.
  • [C-1-3] NÃO DEVE aplicar outras alterações na política a aplicativos que especificam cantSaveState, como alteração do desempenho da CPU ou alteração da priorização de agendamento.

Se as implementações de dispositivos não declararem o recurso FEATURE_CANT_SAVE_STATE , depois eles:

  • [C-1-1] DEVE ignorar o atributo cantSaveState definido pelos aplicativos e NÃO DEVE alterar o comportamento do aplicativo com base nesse atributo.

Basicamente, isso significa que, se um dispositivo suportar o FEATURE_CANT_SAVE_STATE recurso, eles devem priorizar manter na RAM o aplicativo em execução que especifica o não posso salvar estado atributo. Essa priorização de RAM entra em ação se o usuário sair do aplicativo ou jogo pressionando o botão home ou saindo do aplicativo ou jogo sem sair explicitamente (como ao pressionar o botão Voltar ou um botão sair.) Além disso, o sistema ainda pode economizar energia limitando o acesso à CPU e à rede nesses aplicativos, mas eles simplesmente não podem liberar RAM matando-os, a menos que seja necessário. Por último, observe que apenas um aplicativo com o atributo cantSaveState definido pode ser executado. Se você tentar iniciar outro aplicativo com este atributo definido enquanto outro estiver em execução, o Android Pie solicitará que você escolha qual jogo deseja continuar executando.

Você pode verificar se o seu dispositivo suporta FEATURE_CANT_SAVE_STATE executando os dois comandos a seguir via ADB:

adb shell
dumpsys package | grep "cant_save_state"

Para verificar se um aplicativo especifica o atributo cantSaveState será necessário descompilar o aplicativo e examinar seu manifesto ou usar o dumpsys package package.name.here comando no shell ADB. Tenha em mente que este atributo foi adicionado apenas no nível 28 da API (Android 9 Pie), então é improvável que muitos aplicativos ou jogos aproveitem isso ainda.

Este recurso será extremamente útil para dispositivos com pequenas quantidades de RAM e/ou aplicativos que consomem muita RAM. Por exemplo, Fortnite Mobile no Android requer um mínimo de 3 GB de RAM por causa da quantidade de RAM que ele consome (sem sequer iniciar um jogo, o Fortnite Mobile estava reservando 1,6 GB de RAM no meu Google Pixel 2 XL). Se o Fortnite tivesse como alvo o SDK nível 28 e usar esse recurso, isso significa que sair acidentalmente do jogo evitará que ele seja encerrado imediatamente se o seu dispositivo estiver com pouca carga RAM livre. Infelizmente, Fortnite segmenta apenas o nível 21 do SDK no momento (Android 5.0 Lollipop), infelizmente não aproveita as APIs mais recentes que o Google oferece no Android Pie, muito menos no Android Oreo, no Android Nougat ou no Android Marshmallow. Esperançosamente, outros jogos serão atualizados para aproveitar as vantagens desse recurso. No próximo ano, o Google exigirá deles para atualizar se quiserem continuar enviando atualizações na Google Play Store.