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
10 de enero de 2024 - - 1.0.0-beta01 -

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-beta01"
}

Kotlin

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

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-beta01

10 de enero de 2024

La API y la funcionalidad de esta biblioteca se mantuvieron estables durante un tiempo. Esta versión simplemente envía la biblioteca a 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 con las correcciones más recientes, que incluyen información de tiempos 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 nuevo totalDuration en API31 (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

Lanzamiento de 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é.