Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Métricas
Realiza un seguimiento y genera informes de varias métricas del tiempo de ejecución de tu aplicación
Actualización más reciente |
Versión estable |
Versión potencial |
Versión beta |
Versión alfa |
12 de marzo de 2025 |
- |
- |
1.0.0-beta02 |
- |
Cómo declarar dependencias
Para agregar una dependencia en las métricas, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o 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 obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Crear un error nuevo
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 1.0.0
Versión 1.0.0-beta02
12 de marzo de 2025
Lanzamiento de androidx.metrics:metrics-performance:1.0.0-beta02
. La versión 1.0.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigieron las fallas de
DelegatingFrameMetricsListener cannot be cast...
(Id891c, b/311218678).
Versión 1.0.0-beta01
10 de enero de 2024
La API y la funcionalidad de esta biblioteca han sido estables durante algún tiempo. Esta versión solo envía la biblioteca a la versión beta.
Lanzamiento de androidx.metrics:metrics-performance:1.0.0-beta01
. La versión 1.0.0-beta01 contiene estas confirmaciones.
Versión 1.0.0-alpha04
5 de abril de 2023
Esta versión actualiza JankStats a las correcciones más recientes, que incluyen información de tiempo más precisa y completa.
Lanzamiento de androidx.metrics:metrics-performance:1.0.0-alpha04
. La versión 1.0.0-alpha04 contiene estas confirmaciones.
Cambios en la API
cpuDuration
ahora es más preciso y también hay un nuevo totalDuration
en la API 31 (I59ce8, b/243694893).
Versión 1.0.0-alpha03
27 de julio de 2022
Lanzamiento de androidx.metrics:metrics-performance:1.0.0-alpha03
. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Esta versión contiene mejoras menores en la API, ya que la biblioteca se acerca a la versión beta. Uno de los cambios en la API quita el Ejecutor del método de fábrica createAndTrack()
para crear un objeto JankStats
. Esto afecta a la devolución de llamada de OnFrameListener
, ya que se llama a ese objeto de escucha en el subproceso que entrega los datos por fotograma a JankStats
(el subproceso de IU/principal en versiones anteriores a la API 24 y FrameMetrics
en las APIs posteriores a la 24). Además, el objeto FrameData
que se pasa al objeto de escucha ahora se vuelve a usar en todos los fotogramas, por lo que los datos de ese objeto deben copiarse y almacenarse en caché en otro lugar durante la devolución de llamada, ya que ese objeto se debe considerar obsoleto en cuanto el objeto de escucha regrese.
También se realizaron varias correcciones de errores, incluidos algunos problemas de simultaneidad.
Por último, la corrección para reutilizar FrameData
(mencionada anteriormente) significa que ahora no hay asignaciones por fotograma debido a la entrega de métricas de fotogramas. Antes no había muchas asignaciones, pero el nuevo enfoque significa que puedes usar JankStats
sin incurrir en ninguna sobrecarga de GC por fotograma en tu app.
Cambios en la API
- Se actualizaron los nombres de métodos y parámetros en
PerformanceMetricsState
para que los resultados de esas llamadas sean más claros (I56da5 y b/233421985).
- Se agregaron pruebas comparativas para hacer un seguimiento de las asignaciones y se eliminaron algunas asignaciones internas relacionadas con la administración del estado y la generación de informes. Ten en cuenta que
FrameData
pasado a los objetos de escucha ahora se considera volátil. Esa estructura se volverá a usar para el siguiente fotograma y los datos solo serán confiables hasta que el objeto de escucha regrese.
- Se quitó el Ejecutor del constructor de
JankStats
. Ahora se llama a los objetos de escucha en el subproceso en el que se recibieron los datos internos (I12743).
Correcciones de errores
- Se corrigió una falla causada por la eliminación doble de
OnFrameMetricsAvailableListener
(I44094 y b/239457413).
- Se vuelve a la lógica original de publicación de mensajes de
OnPreDrawListener
al principio de la cola para lograr una latencia de fotogramas más coherente y predecible (I05a43 y b/233358407).
- Se corrigió el error
ConcurrentModificationException
en el que se modificaba la lista de delegados de objetos de escucha mientras se iteraba para enviar datos por fotograma (Ib7693 y b/236612357).
Versión 1.0.0-alpha02
29 de junio de 2022
Se lanzó androidx.metrics:metrics-performance:1.0.0-alpha02
. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Cambios en la API
Correcciones de errores
- Se corrigió el error de sincronización en el que los estados se podían reemplazar con valores nuevos antes de que se procesaran los fotogramas en los que el estado anterior habría sido correcto (aosp/2061892, b/213499234).
- Se corrigió la excepción de modificación simultánea cuando se agregan o quitan objetos de escucha (aosp/2092714, b/213499234).
- Se hicieron más precisos los cálculos de startTime (aosp/2027704, b/213245198).
- Se corrigió un error en la implementación de
FrameData.equals()
(aosp/2025866, b/218296544).
Versión 1.0.0-alpha01
9 de febrero de 2022
Lanzamiento de androidx.metrics:metrics-performance:1.0.0-alpha01
. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- La biblioteca
JankStats
proporciona funciones para instrumentar y recibir devoluciones de llamada en tu aplicación durante el tiempo de ejecución a fin de ayudarte a encontrar problemas de rendimiento reales.
JankStats
combina una API que facilita la inserción de información sobre el estado de la IU con funciones de seguimiento y elaboración de informes sobre el rendimiento por fotogramas para que los desarrolladores comprendan no si una aplicación tiene problemas de rendimiento, sino cuándo y por qué.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]