O Android 12 torna mais fácil para os desenvolvedores saberem o quão poderoso é um dispositivo

O Android 12 está tornando mais fácil para os desenvolvedores saberem quais dispositivos são mais poderosos do que outros com algo chamado “classe de desempenho”.

Os dispositivos Android vêm em todos os formatos e formas. Temos smartphones mais baratos com especificações mais fracas e outros mais caros com componentes internos melhores. Você, como usuário, pode obviamente saber se o seu smartphone pode ser considerado “poderoso” ou não, simplesmente consultando essas especificações online. Mas como um aplicativo em execução no seu dispositivo sabe disso? Teoricamente, ele poderia fazer coisas como combinar o nome do seu dispositivo com um banco de dados e, em seguida, obter especificações dele, verificar as propriedades do sistema para o número de peça/RAM do SoC capacidade/etc, ou chamar APIs Android que listam informações como resolução, etc., mas não há uma maneira fácil e unificada de saber que tipo de desempenho um dispositivo Android pode entregar. Seria útil se houvesse uma maneira rápida de agrupar dispositivos em categorias para que um aplicativo pudesse fornecer experiências diferentes otimizadas para cada classe de dispositivo. Para esse fim, o Google introduziu em

E/S 2021 o que eles chamam de "aula de desempenho", começando com Andróide 12.

De acordo com o Google, este padrão "define um conjunto de recursos que vão além dos requisitos básicos do Android. Os dispositivos que atendem aos requisitos da classe de desempenho podem suportar casos de uso mais exigentes e fornecer conteúdo de maior qualidade." Os desenvolvedores de aplicativos podem verificar qual classe de desempenho um dispositivo faz parte em tempo de execução e, em seguida, adaptar o aplicativo para oferecer uma experiência que aproveite ao máximo as vantagens do dispositivo desempenho. Inicialmente, o Google diz que está “focando recursos de classe de desempenho em casos de uso de mídia, com requisitos que incluem câmera latência de inicialização, disponibilidade de codec e qualidade de codificação, bem como tamanho mínimo de memória, resolução de tela e leitura/gravação desempenho."

Na página de desenvolvedores Android, o Google diz que cada versão do Android tem sua própria classe de desempenho correspondente, o que significa que há uma classe de desempenho para Android 12 e haverá uma para Android 13, 14 e assim por diante. A classe de desempenho será definida no Documento de Definição de Compatibilidade (CDD) para aquela versão específica do sistema operacional Android (observação: o CDD do Android 12 ainda não é público) e se ou nenhum dispositivo realmente atende a essa classe de desempenho aplicada pelo Compatibility Test Suite (CTS), um conjunto automatizado de testes que verifica a compatibilidade com um sistema operacional Android versão.

As classes de desempenho são compatíveis com versões futuras, o que significa que um dispositivo pode atualizar para uma nova versão do Android sem alterar sua classe de desempenho, mas também significa que os dispositivos podem mudar de classe se atenderem aos requisitos desse novo sistema operacional versão. Embora o conceito de classe de desempenho esteja sendo introduzido com o Android 12, o Google afirma que também definirá uma classe de desempenho para o Android 11. Isso significa que dispositivos altamente capazes atualizados do Android 11 para o Android 12 que atendem aos requisitos de desempenho os requisitos de classe para o Android 11, mas não para o Android 12, ainda podem informar aos aplicativos que eles têm alto desempenho dispositivos.

Embora o Google não tenha compartilhado detalhes exatos sobre quais requisitos envolvem a classe de desempenho do Android 12, pesquisamos um pouco e encontramos alguns dos requisitos. Eles incluem:

  • Pelo menos 6 GB de RAM
  • Resolução mínima de 400 dpi e 1080p
  • Velocidades de gravação sequencial de pelo menos 150 MB/s, leitura sequencial de 250 MB/s, gravação aleatória de 10 MB/s e leitura aleatória de 40 MB/s

Bem como outros requisitos para um número máximo de sessões simultâneas de decodificadores e codificadores de vídeo, baixa latência de inicialização do codec, baixa quantidade de quedas de quadros de reprodução e muito mais.

Esse recurso pode ser útil para desenvolvedores de aplicativos melhorarem a experiência geral não apenas em dispositivos que atendem às especificações de “classe de desempenho”, mas também em telefones de baixo custo. Se um aplicativo detectar que um telefone não atende aos requisitos de um dispositivo de "classe de desempenho", ele poderá desligar certos recursos ou efeitos visuais mais exigentes, a fim de melhorar a maneira como o aplicativo funciona em ambientes de baixo custo telefones. Da mesma forma, eles podem adicionar recursos em dispositivos de classe de desempenho que os telefones de baixo custo normalmente não suportariam, sem comprometer a experiência desses usuários.