Метрики

Отслеживайте и сообщайте различные показатели времени выполнения вашего приложения.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
27 августа 2025 г. - - 1.0.0-бета03 -

Объявление зависимостей

Чтобы добавить зависимость от Metrics, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.metrics:metrics-performance:1.0.0-beta03"
}

Котлин

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

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с уже существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав на кнопку со звёздочкой.

Создать новый выпуск

Более подробную информацию см. в документации по системе отслеживания проблем .

Версия 1.0.0

Версия 1.0.0-beta03

27 августа 2025 г.

Выпущена androidx.metrics:metrics-performance:1.0.0-beta03 . Версия 1.0.0-beta03 содержит следующие изменения .

Исправления ошибок

  • Исправлена IllegalArgumentException («попытка удалить OnFrameMetricsAvailableListener , который не был добавлен»). Попытка записать синхронизацию кадра не выполняется, если окно не использует аппаратное ускорение, поскольку это не поддерживается Window.OnFrameMetricsAvailableListener . ( I8fef2 , b/436880904 )

Версия 1.0.0-beta02

12 марта 2025 г.

Выпущена androidx.metrics:metrics-performance:1.0.0-beta02 . Версия 1.0.0-beta02 содержит следующие изменения .

Исправления ошибок

  • Исправление сбоев DelegatingFrameMetricsListener cannot be cast... ( Id891c , b/311218678 ).

Версия 1.0.0-beta01

10 января 2024 г.

API и функциональность этой библиотеки уже некоторое время стабильны. Этот релиз просто переводит библиотеку в стадию бета-версии.

Выпущена версия androidx.metrics:metrics-performance:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие изменения.

Версия 1.0.0-альфа04

5 апреля 2023 г.

В этом выпуске JankStats обновлен до последних исправлений, которые включают более точную и полную информацию о времени.

Выпущена версия androidx.metrics:metrics-performance:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты.

Изменения API

  • cpuDuration теперь более точная, также новая totalDuration в API31 ( I59ce8 , b/243694893 )

Версия 1.0.0-альфа03

27 июля 2022 г.

Выпущена androidx.metrics:metrics-performance:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие изменения.

  • В этом выпуске содержатся незначительные улучшения API, связанные с приближением библиотеки к бета-версии. Одно из изменений API удаляет Executor из метода-фабрики createAndTrack() для создания объекта JankStats . Это влияет на обратный вызов OnFrameListener , поскольку этот прослушиватель теперь вызывается в потоке, который доставляет данные по кадрам в JankStats (поток Main/UI в версиях до API 24 и поток FrameMetrics в API 24+). Более того, объект FrameData , переданный прослушивателю, теперь используется повторно в каждом кадре, поэтому данные из этого объекта необходимо копировать и кэшировать в другом месте во время обратного вызова, поскольку этот объект должен считаться устаревшим сразу после возврата прослушивателя.

  • Также были исправлены различные ошибки, включая некоторые проблемы параллелизма.

  • Наконец, исправление для повторного использования FrameData (упомянутое выше) означает, что теперь нет необходимости выделять память на кадр из-за доставки метрик кадра. Раньше выделялось не так много памяти, но новый подход позволяет использовать JankStats без дополнительных затрат на сборку мусора на кадр в вашем приложении.

Изменения API

  • Обновлены имена методов и параметров в PerformanceMetricsState , чтобы сделать результаты этих вызовов более понятными. ( I56da5 , b/233421985 )
  • Добавлены тесты для отслеживания распределения памяти, устранены некоторые внутренние распределения, связанные с управлением состоянием и отчётностью. Обратите внимание, что FrameData , передаваемые слушателям, теперь считаются изменчивыми; эта структура будет повторно использована для следующего кадра, и данные остаются надёжными только до тех пор, пока слушатель не вернёт управление.
  • Удален Executor из конструктора JankStats ; прослушиватели теперь вызываются в любом потоке, в котором были получены внутренние данные. ( I12743 )

Исправления ошибок

  • Исправлен сбой из-за двойного удаления OnFrameMetricsAvailableListener ( I44094 , b/239457413 )
  • Вернуться к исходной логике размещения сообщений OnPreDrawListener в начале очереди для более последовательной и предсказуемой синхронизации кадров. ( I05a43 , b/233358407 )
  • Исправлена ​​ошибка ConcurrentModificationException , из-за которой список делегатов прослушивателя изменялся во время его итерации для отправки данных по кадрам. ( Ib7693 , b/236612357 )

Версия 1.0.0-альфа02

29 июня 2022 г.

Выпущена androidx.metrics:metrics-performance:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит следующие изменения.

Изменения API

Исправления ошибок

  • Исправлена ​​проблема синхронизации, из-за которой состояния могли быть заменены новыми значениями до обработки кадров, хотя старое состояние было бы правильным ( aosp/2061892 , b/213499234 )
  • Исправлено исключение одновременного изменения при добавлении/удалении прослушивателей ( aosp/2092714 , b/213499234 )
  • Расчеты startTime сделаны более точными ( aosp/2027704 , b/213245198 )
  • Исправлена ​​ошибка в реализации FrameData.equals() ( aosp/2025866 , b/218296544 )

Версия 1.0.0-альфа01

9 февраля 2022 г.

Выпущена androidx.metrics:metrics-performance:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие изменения.

Новые функции

  • Библиотека JankStats предоставляет функциональные возможности для измерения и получения обратных вызовов в вашем приложении во время выполнения, что может помочь обнаружить реальные проблемы с производительностью.
  • JankStats сочетает в себе API, который позволяет легко вводить информацию о состоянии пользовательского интерфейса, с возможностями отслеживания и составления отчетов о производительности для каждого кадра, что позволяет разработчикам понять не только, есть ли у приложения проблемы с производительностью, но и когда и почему.