Métrica

  
Acompanhe e gere relatórios para várias métricas de execução do aplicativo
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
10 de janeiro de 2024 - - 1.0.0-beta01 -

Declarar dependências

Para adicionar uma dependência às métricas, acrescente o repositório Maven do Google ao seu projeto. Veja mais informações em Repositório Maven do Google.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

dependencies {
    implementation "androidx.metrics:metrics-performance:1.0.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.metrics:metrics-performance:1.0.0-beta01")
}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.0.0

Versão 1.0.0-beta01

10 de janeiro de 2024

A API e a funcionalidade dessa biblioteca estão estáveis há algum tempo. Essa versão simplesmente envia a biblioteca para a versão Beta.

Lançamento de androidx.metrics:metrics-performance:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Versão 1.0.0-alpha04

5 de abril de 2023

Esta versão atualiza a JankStats com as correções mais recentes, que incluem informações de tempo mais precisas e abrangentes.

Lançamento de androidx.metrics:metrics-performance:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações.

Mudanças na API

  • cpuDuration agora é mais preciso, também novo totalDuration na API31 (I59ce8, b/243694893).

Versão 1.0.0-alpha03

27 de julho de 2022

Lançamento de androidx.metrics:metrics-performance:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

  • Essa versão contém pequenos refinamentos da API à medida que a biblioteca se aproxima da versão Beta. Uma das mudanças na API remove o Executor do método de fábrica createAndTrack() para criar um objeto JankStats. Isso tem implicações para o callback OnFrameListener, já que o listener agora é chamado na linha de execução que envia os dados por frame para o JankStats. Ou seja, a linha de execução de IU/principal em versões anteriores à API 24, e a FrameMetrics na API 24 e mais recentes. Além disso, o objeto FrameData transmitido ao listener agora é reutilizado em todos os frames. Portanto, os dados desse objeto precisam ser copiados e armazenados em cache em outro lugar durante o callback, porque esse objeto precisa ser considerado obsoleto assim que o listener retorna.

  • Também houve várias correções de bugs, incluindo alguns problemas de simultaneidade.

  • Por fim, a correção para reutilizar o FrameData mencionado acima significa que agora não há alocações por frame devido à entrega de métricas do frame. Não havia muitas alocações antes, mas a nova abordagem significa que você pode usar o objeto JankStats sem precisar sobrecarregar o GC por frame no seu app.

Mudanças na API

  • Atualização de nomes de métodos e parâmetros no PerformanceMetricsState para deixar os resultados dessas chamadas mais claros (I56da5, b/233421985).
  • Adicionamos testes de comparação para rastrear alocações e eliminamos algumas alocações internas relacionadas à geração de relatórios e ao gerenciamento de estado. Observe que o FrameData transmitido aos listeners agora é considerado volátil. Essa estrutura vai ser reutilizada no próximo frame, e os dados só serão confiáveis até o listener ser retornado.
  • Removemos o Executor do construtor para o JankStats. Os listeners agora são chamados em qualquer linha de execução em que os dados internos tenham sido recebidos (I12743).

Correções de bugs

  • Correção de uma falha devido à remoção dupla de OnFrameMetricsAvailableListener (I44094, b/239457413).
  • Volte à lógica original de postagem de mensagens OnPreDrawListener na frente da fila para garantir um tempo para a renderização do frame mais consistente e previsível (I05a43, b/233358407).
  • Correção do bug ConcurrentModificationException em que a lista de delegados do listener estava sendo modificada e iterada para enviar dados por frame (Ib7693, b/236612357).

Versão 1.0.0-alpha02

29 de junho de 2022

Lançamento de androidx.metrics:metrics-performance:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

Correções de bugs

  • Correção de um problema de tempo em que os estados podiam ser substituídos por novos valores antes que os frames fossem processados em que o estado antigo estaria correto (aosp/2061892, b/213499234).
  • A exceção de modificação simultânea ao adicionar/remover listeners foi corrigida (aosp/2092714, b/213499234).
  • Os cálculos de horário de início ficaram mais precisos (aosp/2027704, b/213245198).
  • Correção de um bug na implementação de FrameData.equals() (aosp/2025866, b/218296544).

Versão 1.0.0-alpha01

9 de fevereiro de 2022

Lançamento de androidx.metrics:metrics-performance:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Novos recursos

  • A biblioteca JankStats oferece funcionalidades para instrumentar e receber callbacks no seu aplicativo no momento da execução que podem ajudar a encontrar problemas de desempenho reais.
  • A JankStats combina uma API que facilita a injeção de informações sobre o estado da IU com recursos para rastrear e gerar relatórios de desempenho por frame. Isso permite que os desenvolvedores entendam não apenas se um aplicativo tem problemas de desempenho, mas quando e por que eles acontecem.