Метрики
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-версия | Альфа-релиз |
---|---|---|---|---|
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
-
MetricsStateHolder
переименован в Holder (внутриPerformanceMetricsState
): ( I5a4d9 , b/226565716 , b/213499234 )
Исправления ошибок
- Исправлена проблема синхронизации, из-за которой состояния могли быть заменены новыми значениями до обработки кадров, хотя старое состояние было бы правильным ( 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, который позволяет легко вводить информацию о состоянии пользовательского интерфейса, с возможностями отслеживания и составления отчетов о производительности для каждого кадра, что позволяет разработчикам понять не только, есть ли у приложения проблемы с производительностью, но и когда и почему.