TECNOLOGIA

Usando a classe de desempenho para otimizar a experiência do usuário

Publicidade

[ad_1]

postado por Don TurnerEngenheiro de Relações com Desenvolvedores e François Goldfain, Diretor do Android Media Framework

Ilustração de mulher em um telefone

Publicidade

Hoje estamos lançando o Biblioteca Jetpack Core Efficiency dentro alfa. Essa biblioteca permite que você entenda facilmente do que um dispositivo é capaz e adapte sua experiência do usuário de acordo. Ele faz isso permitindo que você obtenha a classe de desempenho em dispositivos que executam o Android 11 (API de nível 30) e awesome.

Uma classe de desempenho é uma classificação que reflete o nível de desempenho de um dispositivo e seus recursos gerais. Como tal, reflete amplamente as especificações de {hardware} do dispositivo, mas também como ele se comporta em certos cenários do mundo actual, verificados pelo Android Conjunto de testes de compatibilidade.

Os requisitos da classe de desempenho atualmente se concentram em casos de uso de mídia. Por exemplo, um Classe de desempenho de mídia 12 dispositivo é garantido para:

  • tem 6+ GB de RAM
  • tem uma câmera traseira de 12 megapixels com suporte para captura de vídeo a 4k a 30fps,
  • ser capaz de inicializar um codec de vídeo em <50ms mesmo quando sob carga
  • e muitos outros requisitos.

Um dispositivo que atende a esses requisitos pode lidar de maneira excellent com muitos casos de uso de mídia populares, incluindo os canais de vídeo típicos em aplicativos de mídia social para captura, codificação e compartilhamento.

Como desenvolvedor de aplicativos, isso significa que você pode agrupar dispositivos com o mesmo nível de desempenho de maneira confiável e adaptar o comportamento do seu aplicativo a esses grupos diferentes. Isso permite que você ofereça uma experiência excellent aos usuários com dispositivos mais e menos capazes. Os requisitos de classe de desempenho se expandirão a cada versão essential do Android, tornando possível direcionar facilmente diferentes níveis de experiência para o intervalo de classe de desempenho que você achar apropriado. Por exemplo, você pode querer adaptar experiências “mais top rate” e “mais funcionais” para determinadas categories de desempenho.

Como usar a classe de desempenho

Para adicionar classe de desempenho ao seu aplicativo, inclua a seguinte dependência em seu construct.gradle:

implementation 'androidx.core:core-performance:1.0.0-alpha02'

Em seguida, use-o para personalizar a experiência do usuário. Por exemplo, para codificar vídeo de resolução mais alta dependendo da classe de desempenho de mídia:

magnificence OptimalVideoSettings(context: Context)

   personal val devicePerf: DevicePerformance = DevicePerformance.create(context)

   val encodeHeight through lazy 
       when (devicePerf.mediaPerformanceClass) 
           Construct.VERSION_CODES.S -> 1080 // On functionality magnificence 12 use 1080p
           Construct.VERSION_CODES.R -> 720 // On functionality magnificence 11 use 720p
           else -> 480
       
   

   val encodeFps through lazy 
       when(devicePerf.mediaPerformanceClass)
           Construct.VERSION_CODES.S -> 60 // On functionality magnificence 12 use 60 fps
           Construct.VERSION_CODES.R -> 30 // On functionality magnificence 11 use 30 fps
           else -> 30
       
   

Quando usar a classe de desempenho

O ecossistema do dispositivo Android é muito diversificado. O mesmo código de aplicativo pode levar a comportamentos muito diferentes, dependendo dos recursos do dispositivo. Por exemplo, codificar um vídeo 4K pode levar alguns segundos em um dispositivo, mas alguns minutos em outro. As expectativas do usuário também variam muito com base no dispositivo que compram. Para fornecer uma experiência de usuário otimizada, é comum agrupar dispositivos com base em alguns critérios, como tamanho da RAM ou ano de lançamento, e depois adaptar os recursos do seu aplicativo para cada grupo.

O problema de usar um valor arbitrário como tamanho de RAM para agrupamento é que ele não oferece garantias de desempenho de um dispositivo. Também sempre haverá outliers com desempenho melhor ou pior do que o esperado dentro desse grupo. O agrupamento na classe de desempenho unravel esse problema, pois fornece essas garantiasapoiado por testes do mundo actual.

Testar manualmente dispositivos que pertencem a diferentes categories de desempenho é uma opção para avaliar e identificar as mudanças necessárias para equilibrar funcionalidades e usabilidade. No entanto, a abordagem recomendada para validar as alterações na experiência do aplicativo é executar testes A/B e analisar seu impacto nas métricas do aplicativo. Você pode fazer isso com o suporte de uma plataforma de experimentação como Firebase. Fornecer a classe de desempenho do dispositivo para a plataforma de experimentação dá uma dimensão de desempenho adicional aos resultados do teste. Isso permite identificar as otimizações corretas para cada classe de dispositivo.

Snap Inc.

A Snap tem usado clustering de dispositivos e testes A/B para ajustar sua experiência para Snapchatters. Ao alavancar a classe de desempenho, o Snapchat identifica com confiança a capacidade do dispositivo de maneira escalável e oferece uma experiência excellent. Por exemplo, a qualidade visible de vídeos compartilhados é aumentada usando resolução e taxa de bits mais altas em dispositivos Media Efficiency Elegance 12 do que o padrão. À medida que mais dispositivos são atualizados para atender à classe de desempenho de mídia, o Snapchat executará testes A/B adicionais e implantará recursos mais otimizados para os recursos do dispositivo.

Suporte a dispositivos

Os requisitos de classe de desempenho são desenvolvidos em colaboração com os principais desenvolvedores e fabricantes de dispositivos, que reconhecem a necessidade de um sistema simples, confiável e baseado em classe para permitir otimizações de aplicativos em escala.

Em specific, Oppo, OnePlus, realme, Vivo e Xiaomi foram os primeiros a otimizar seus principais dispositivos para garantir que eles atendam aos requisitos de Media Efficiency Elegance 12. Como um resultado, Construct.VERSION.MEDIA_PERFORMANCE_CLASS retorna Construct.VERSION_CODES.S (o nível da API do Android 12) nos seguintes dispositivos:

Por que uma biblioteca Jetpack?

A biblioteca Jetpack Core Efficiency foi introduzida para estender a classe de desempenho a dispositivos que ainda não executam o Android 12 ou que não anunciam sua classe de desempenho qualificada no momento em que passaram no Android Compatibility Take a look at Suite.

A biblioteca, que suporta dispositivos que executam o Android 11 e awesome, visa resolver isso. Ele relata a classe de desempenho de muitos dispositivos com base nos resultados de teste coletados durante a certificação do dispositivo ou por meio de testes adicionais realizados pela equipe do Google. Estamos adicionando novos dispositivos regularmente, portanto, certifique-se de usar a versão mais recente da biblioteca Core Efficiency para obter a cobertura máxima do dispositivo.

Classe de desempenho de relatórios para o Firebase

Ao usar o Firebase como plataforma de experimentação para Testes A/Bé fácil enviar a classe de desempenho do dispositivo para Firebase Analytics usando uma propriedade de usuário. Filtrar os relatórios de testes A/B por classe de desempenho pode indicar quais valores experimentais levaram às melhores métricas para cada grupo de dispositivos.

Aqui está um exemplo de um teste A/B que varia a altura de codificação de um vídeo e relata a classe de desempenho usando uma propriedade do usuário.

magnificence MyApplication : Utility() 

    personal lateinit var devicePerf: DevicePerformance 
    personal lateinit var firebaseAnalytics: FirebaseAnalytics
         

    override a laugh onCreate() 
        devicePerf = DevicePerformance.create(this)
        firebaseAnalytics = Firebase.analytics        
        firebaseAnalytics.setUserProperty(
           "androidx.core.functionality.DevicePerformance.mediaPerformanceClass",
           devicePerf.mediaPerformanceClass)
    

    a laugh getVideoEncodeHeight() : Lengthy = remoteConfig.getLong("encode_height")

Próximos passos

Adoraríamos que você experimentasse o Biblioteca Core Efficiency em seu aplicativo. Se você tiver algum problema ou solicitação de recursos, por choose arquive-os aqui.

Além disso, gostaríamos de ouvir qualquer comments que você tenha sobre os requisitos da classe de desempenho. Existem critérios de desempenho específicos ou requisitos de {hardware} importantes para os casos de uso do seu aplicativo? Em caso afirmativo, informe-nos usando o Rastreador de problemas do Android.



[ad_2]

Fonte da Notícia

Publicidade

Osmar Queiroz

Osmar é um editor especializado em tecnologia, com anos de experiência em comunicação digital e produção de conteúdo voltado para inovação, ciência e tecnologia.

Artigos relacionados

Botão Voltar ao topo
HexTec News