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.
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 nuevototalDuration
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 objetoJankStats
. Esto afecta a la devolución de llamada deOnFrameListener
, ya que se llama a ese objeto de escucha en el subproceso que entrega los datos por fotograma aJankStats
(el subproceso de IU/principal en versiones anteriores a la API 24 yFrameMetrics
en las APIs posteriores a la 24). Además, el objetoFrameData
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 usarJankStats
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
- Se cambió el nombre de
MetricsStateHolder
a solo Holder (dentro dePerformanceMetricsState
) (I5a4d9, b/226565716, b/213499234).
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é.