Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Métricas
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 |
12 de março de 2025 |
- |
- |
1.0.0-beta02 |
- |
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-beta02"
}
Kotlin
dependencies {
implementation("androidx.metrics:metrics-performance:1.0.0-beta02")
}
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-beta02
12 de março de 2025
Lançamento de androidx.metrics:metrics-performance:1.0.0-beta02
. A versão 1.0.0-beta02 contém estas confirmações.
Correções de bugs
- Correção de falhas do
DelegatingFrameMetricsListener cannot be cast...
(Id891c, b/311218678).
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. Esta versão simplesmente leva 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 o 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
- O
cpuDuration
agora é mais preciso e também há um 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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Metrics\n=======\n\nAPI Reference \n[androidx.metrics.performance](/reference/kotlin/androidx/metrics/performance/package-summary) \nTrack and report various runtime metrics for your application \n\n| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release |\n|----------------|----------------|-------------------|-----------------------------------------------------------------|---------------|\n| March 12, 2025 | - | - | [1.0.0-beta02](/jetpack/androidx/releases/metrics#1.0.0-beta02) | - |\n\nDeclaring dependencies\n----------------------\n\nTo add a dependency on Metrics, you must add the Google Maven repository to your\nproject. Read [Google's Maven repository](/studio/build/dependencies#google-maven)\nfor more information.\n\nAdd the dependencies for the artifacts you need in the `build.gradle` file for\nyour app or module: \n\n### Groovy\n\n```groovy\ndependencies {\n implementation \"androidx.metrics:metrics-performance:1.0.0-beta02\"\n}\n```\n\n### Kotlin\n\n```kotlin\ndependencies {\n implementation(\"androidx.metrics:metrics-performance:1.0.0-beta02\")\n}\n```\n\nFor more information about dependencies, see [Add build dependencies](/studio/build/dependencies).\n\nFeedback\n--------\n\nYour feedback helps make Jetpack better. Let us know if you discover new issues or have\nideas for improving this library. Please take a look at the\n[existing issues](https://issuetracker.google.com/issues?q=componentid:1109743%20status:open)\nin this library before you create a new one. You can add your vote to an existing issue by\nclicking the star button.\n\n[Create a new issue](https://issuetracker.google.com/issues/new?component=1109743&template=1621342)\n\nSee the [Issue Tracker documentation](https://developers.google.com/issue-tracker)\nfor more information.\n\nVersion 1.0.0\n-------------\n\n### Version 1.0.0-beta02\n\nMarch 12, 2025\n\n`androidx.metrics:metrics-performance:1.0.0-beta02` is released. Version 1.0.0-beta02 contains [these commits](https://android.googlesource.com/platform/frameworks/support/+log/7a45f0bc9e0a73744b3780a6f92e1b570de58bba..7a145e052ae61e272e91ffe285e9451b8ab71870/metrics/metrics-performance).\n\n**Bug Fixes**\n\n- Fix crashes `DelegatingFrameMetricsListener cannot be cast...` ([Id891c](https://android-review.googlesource.com/#/q/Id891c0cfdd7f45ef9e3b068644a113f39c8fc383), [b/311218678](https://issuetracker.google.com/issues/311218678)).\n\n### Version 1.0.0-beta01\n\nJanuary 10, 2024\n\nThe API and functionality of this library has been stable for some time. This release simply pushes the library to beta.\n\n`androidx.metrics:metrics-performance:1.0.0-beta01` is released. [Version 1.0.0-beta01 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/a200cb82769634cecdb118ec4f0bfdf0b086e597..7a45f0bc9e0a73744b3780a6f92e1b570de58bba/metrics/metrics-performance)\n\n### Version 1.0.0-alpha04\n\nApril 5, 2023\n\nThis release updates JankStats to the latest fixes, which include more accurate and comprehensive timing information.\n\n`androidx.metrics:metrics-performance:1.0.0-alpha04` is released. [Version 1.0.0-alpha04 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/a7f0710ad21f556f0dde9bf7bdab6d2135170fd4..a200cb82769634cecdb118ec4f0bfdf0b086e597/metrics/metrics-performance)\n\n**API Changes**\n\n- `cpuDuration` now more accurate, also new `totalDuration` on API31 ([I59ce8](https://android-review.googlesource.com/#/q/I59ce8c67f06a168f96893375c8aeca5516a55d81), [b/243694893](https://issuetracker.google.com/issues/243694893))\n\n### Version 1.0.0-alpha03\n\nJuly 27, 2022\n\n`androidx.metrics:metrics-performance:1.0.0-alpha03` is released. [Version 1.0.0-alpha03 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/8094b683499b4098092c01028b55a38b49e357f2..a7f0710ad21f556f0dde9bf7bdab6d2135170fd4/metrics/metrics-performance)\n\n- This release contains minor API refinements as the library gets closer to beta. One of the API changes removes the Executor from the `createAndTrack()` factory method for creating a `JankStats` object. This has implications for the `OnFrameListener` callback, as that listener is now called on the thread which delivers the per-frame data to `JankStats` (the Main/UI thread on versions earlier than API 24, and the `FrameMetrics` thread on API 24+). Moreover, the `FrameData` object passed to the listener is now reused every frame, so data from that object must be copied and cached elsewhere during the callback, as that object should be considered obsolete as soon as the listener returns.\n\n- There were also various bug fixes, including some concurrency issues.\n\n- Finally, the fix to reuse `FrameData` (mentioned above) means that there are now zero allocations per frame due to frame metrics delivery. There weren't many allocations before, but the new approach means that you can use `JankStats` without incurring any per-frame GC overhead in your app.\n\n**API Changes**\n\n- Updated method and parameter names in `PerformanceMetricsState` to make the results of those calls clearer. ([I56da5](https://android-review.googlesource.com/#/q/I56da57b13818bf4077a64ab144222ce255f4539a), [b/233421985](https://issuetracker.google.com/issues/233421985))\n- Added benchmark tests to track allocations, eliminated some internal allocations related to state management and reporting. Note that `FrameData` passed to listeners is now considered volatile; that structure will be reused for the next frame and the data is only reliable until the listener returns.\n- Removed Executor from constructor for `JankStats`; listeners are now called on whatever thread the internal data was received upon. ([I12743](https://android-review.googlesource.com/#/q/I1274320bf29c171b82578868e657a3b01f7805c7))\n\n**Bug Fixes**\n\n- Fixed crash due to double-removal of `OnFrameMetricsAvailableListener` ([I44094](https://android-review.googlesource.com/#/q/I4409483d6e2f7287a0a93f521f68a4be9e22d969), [b/239457413](https://issuetracker.google.com/issues/239457413))\n- Return to original logic of posting `OnPreDrawListener` messages at front of queue, for more consistent and predictable frame timing. ([I05a43](https://android-review.googlesource.com/#/q/I05a434fe9453ea1be28d398e3eb284dd9b0cb64a), [b/233358407](https://issuetracker.google.com/issues/233358407))\n- Fixed `ConcurrentModificationException` bug where the list of listener delegates was being modified while it was also being iterated through to send per-frame data. ([Ib7693](https://android-review.googlesource.com/#/q/Ib769386f18e51dc6b58c935b42c5b8566c644abc), [b/236612357](https://issuetracker.google.com/issues/236612357))\n\n### Version 1.0.0-alpha02\n\nJune 29, 2022\n\n`androidx.metrics:metrics-performance:1.0.0-alpha02` is released. [Version 1.0.0-alpha02 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/db2ecbef194afcddfaede22e1d884a8959a9277c..8094b683499b4098092c01028b55a38b49e357f2/metrics/metrics-performance)\n\n**API Changes**\n\n- Renamed `MetricsStateHolder` to just Holder (within `PerformanceMetricsState`): ([I5a4d9](https://android-review.googlesource.com/#/q/I5a4d9095520399a146e6fd78eb50c86a7051738b), [b/226565716](https://issuetracker.google.com/issues/226565716), [b/213499234](https://issuetracker.google.com/issues/213499234))\n\n**Bug Fixes**\n\n- Fixed timing issue where states could be replaced with new values before the frames had been processed where the old state would have been correct ([aosp/2061892](https://android-review.googlesource.com/c/platform/frameworks/support/+/2061892/), [b/213499234](https://issuetracker.google.com/issues/213499234))\n- Fixed concurrent modification exception in adding/removing listeners ([aosp/2092714](https://android-review.googlesource.com/c/platform/frameworks/support/+/2092714/), [b/213499234](https://issuetracker.google.com/issues/230388846))\n- Made startTime calculations more accurate ([aosp/2027704](https://android-review.googlesource.com/c/platform/frameworks/support/+/2027704/), [b/213245198](https://issuetracker.google.com/issues/213245198))\n- Fixed bug in `FrameData.equals()` implementation ([aosp/2025866](https://android-review.googlesource.com/c/platform/frameworks/support/+/2025866/), [b/218296544](https://issuetracker.google.com/issues/218296544))\n\n### Version 1.0.0-alpha01\n\nFebruary 9, 2022\n\n`androidx.metrics:metrics-performance:1.0.0-alpha01` is released. [Version 1.0.0-alpha01 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/db2ecbef194afcddfaede22e1d884a8959a9277c/metrics/metrics-performance)\n\n**New Features**\n\n- The `JankStats` library provides functionality to instrument and receive callbacks in your application at runtime which can help find real world performance problems.\n- `JankStats` combines an API that makes it easy to inject information about UI state with capabilities for tracking and reporting per-frame performance to allow developers to understand not whether an application has performance issues, but when and why."]]