Classe de desempenho

Uma classe de desempenho é um padrão introduzido no Android 12. Uma classe de desempenho define um conjunto de funcionalidades do dispositivo que vão além dos requisitos do valor de referência do Android.

Cada versão do Android tem a própria classe de desempenho correspondente, que é definida no Documento de definição de compatibilidade do Android (CDD) da versão. O Conjunto de teste de compatibilidade do Android (CTS) verifica os requisitos do CDD.

Cada dispositivo Android declara a classe de desempenho a que oferece suporte. Os desenvolvedores podem conferir a classe de desempenho do dispositivo durante a execução e fornecer experiências atualizadas que aproveitam ao máximo os recursos do dispositivo.

Para descobrir o nível da classe de desempenho de um dispositivo, use a biblioteca Core Performance do Jetpack. No momento, essa biblioteca informa a classe de desempenho de mídia do dispositivo. Comece criando uma instância de DevicePerformance no evento de ciclo de vida onCreate() do aplicativo:

Kotlin

var devicePerformance = DevicePerformance.create(context)

Java

DevicePerformance devicePerformance = DevicePerformance.create(context);

Em seguida, você pode extrair a propriedade mediaPerformanceClass para adaptar a experiência do app com base nos recursos do dispositivo:

Kotlin

when {
  devicePerformance.mediaPerformanceClass >= Build.VERSION_CODES.T -> {
    // Performance class level 13 and above
    // Provide the most premium experience for highest performing devices
  }
  devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.S -> {
    // Performance class level 12
    // Provide a high quality experience
  }
  else -> {
    // Performance class level 11 or undefined
    // Remove extras to keep experience functional
  }
}

Java

if (devicePerformance.mediaPerformanceClass >= Build.VERSION_CODES.T) {
  // Performance class level 13 and above
  // Provide the most premium experience for highest performing devices
} else if (devicePerformance.mediaPerformanceClass == Build.VERSION_CODES.S) {
  // Performance class level 12
  // Provide a high quality experience
} else {
  // Performance class level 11 or undefined
  // Remove extras to keep experience functional
}

As classes de desempenho vão ser compatíveis com versões futuras. Um dispositivo pode ser atualizado para uma versão mais recente da plataforma sem precisar atualizar a própria classe de desempenho. Por exemplo, um dispositivo que inicialmente é compatível com a classe de desempenho 12, pode fazer upgrade para o Android 13 e continuar a oferecer compatibilidade com a classe 12 se ele não atender aos requisitos da classe 13. Isso significa que uma classe de desempenho oferece uma maneira de agrupar dispositivos sem depender de uma versão específica do Android.

Classe de desempenho 13

A classe de desempenho 13 baseia-se nos requisitos introduzidos na classe de desempenho 12. Os requisitos específicos da classe de desempenho podem ser conferidos no CDD do Android. Além do aumento dos requisitos para itens da classe de desempenho 12, o CDD especifica novos requisitos nestas áreas:

Mídia

  • Decodificador de hardware AV1
  • Decodificadores de hardware seguros
  • Latência de inicialização do decodificador
  • Latência de áudio de ida e volta
  • Fones de ouvido com fio e dispositivos de áudio USB
  • Dispositivos MIDI
  • Ambiente de execução confiável e protegido por hardware

Câmera

  • Estabilização da visualização
  • Gravação em câmera lenta
  • Proporção de zoom mínima para câmera Ultra grande angular
  • Câmera simultânea
  • Lógica com várias câmeras
  • Caso de uso de streaming

Classe de desempenho 12

A classe de desempenho 12 se concentra nos casos de uso de mídia. Os requisitos específicos da classe de desempenho podem ser conferidos no CDD do Android. O CDD especifica requisitos das áreas abaixo:

Mídia

  • Sessões simultâneas de codec de vídeo
  • Latência de inicialização do codificador
  • Queda do frame do decodificador
  • Qualidade da codificação

Câmera

  • Resolução e frame rate
  • Latências de inicialização e captura
  • FULL ou um nível de hardware melhor
  • A origem do carimbo de data/hora está em tempo real
  • Recurso RAW

Genérico

  • Memória
  • Performance de leitura e gravação
  • Resolução da tela
  • Densidade da tela

Classe de desempenho 11

A classe de desempenho 11 inclui um subconjunto dos requisitos para a classe de desempenho 12, permitindo que os desenvolvedores ofereçam uma experiência personalizada em dispositivos mais antigos, mas ainda altamente funcionais. Os requisitos específicos de classe de desempenho podem ser conferidos no CDD do Android.