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 (CDD) do Android da versão. O conjunto de teste de compatibilidade (CTS) do Android verifica os requisitos do CDD.
Cada dispositivo Android declara a classe de desempenho a que oferece suporte. Os desenvolvedores podem descobrir 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. Essa biblioteca informa a classe de desempenho de mídia do dispositivo, conforme declarado nas informações da versão do build ou com base nos dados do Google Play Services.
Comece adicionando uma dependência para os módulos relevantes no arquivo do Gradle:
// Kotlin implementation of Jetpack Core library
implementation("androidx.core:core-ktx:1.10.1")
// Enable APIs to query for device-reported Performance Class
implementation("androidx.core:core-performance:1.0.0-alpha03")
// Enable APIs to query Google Play Services for Performance Class
implementation("androidx.core:core-performance-play-services:1.0.0-alpha03")
Em seguida, crie uma instância de uma implementação de DevicePerformance
,
como PlayServicesDevicePerformance
,
no evento de ciclo de vida onCreate()
da Activity
ou do Fragment
:
Kotlin
var devicePerformance = PlayServicesDevicePerformance(context)
Java
DevicePerformance devicePerformance = new PlayServicesDevicePerformance(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.getMediaPerformanceClass() >= Build.VERSION_CODES.T) { // Performance class level 13 and above // Provide the most premium experience for highest performing devices } else if (devicePerformance.getMediaPerformanceClass() == 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.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Tempo de inicialização do app