Métrica
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.
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 novototalDuration
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 objetoJankStats
. Isso tem implicações para o callbackOnFrameListener
, já que o listener agora é chamado na linha de execução que envia os dados por frame para oJankStats
. Ou seja, a linha de execução de IU/principal em versões anteriores à API 24, e aFrameMetrics
na API 24 e mais recentes. Além disso, o objetoFrameData
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 objetoJankStats
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
- Renomeação de
MetricsStateHolder
como apenas Holder naPerformanceMetricsState
: (I5a4d9, b/226565716, b/213499234).
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.