Отслеживание

Записывать события трассировки в системный буфер трассировки.
Последнее обновление Стабильный релиз Предварительная версия для выпуска Бета-версия Альфа-версия
12 августа 2026 г. 2.0.0 - - -

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

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

Создать новую задачу

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

Отслеживание

Версия 2.0

Версия 2.0.0

12 августа 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0 . Версия 2.0.0 содержит следующие коммиты .

Основные особенности версии 2.0.0:

Новый API для работы в рамках процесса позволяет:

  • Запись содержимого трассировки в процессе работы, непосредственно на объекте.
  • Поток перфетто (стрелки от одного среза к другому)
  • Аннотации Perfetto (метаданные срезов ключ/значение)
  • traceCoroutine() {} - API трассировки сопрограмм, отслеживающий переключения потоков.
  • Фильтрация по категориям
  • Значительно меньшие накладные расходы по сравнению с существующим API android.os.Trace и trace() {}
  • Трассировка KMP — может использоваться для библиотек, не зависящих от Android, а также для проектов на хост-машине JVM.
  • Постфактумное объединение с записью трассировки системы (реализовано по умолчанию в AndroidX Benchmark 1.5)

Обратите внимание, что новые API трассировки записывают данные в буфер, управляемый процессом, который пока не используется системой трассировки Studio. Эта проблема будет решена в профилировщиках Studio в одном из следующих релизов.

Существующие API-функции android.os.Trace / trace() {} не устарели. Эти API-функции по-прежнему рекомендуются для событий с низкой частотой, которые всегда должны записываться в системный буфер трассировки, особенно в библиотеках.

Версия 2.0.0-rc01

29 июля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-rc01 . Версия 2.0.0-rc01 содержит следующие коммиты .

Версия 2.0.0-beta01

15 июля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-beta01 . Версия 2.0.0-beta01 содержит следующие коммиты .

Изменения в API

  • Теперь PerfettoCapture и PerfettoTraceRule могут захватывать трассировки внутри процесса и объединять их для целевого пакета. ( I9a00b , b/497959820 )
  • androidx.benchmark теперь используется minSdk 24 ( IC2A85 ).

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

  • Трассировка выпуска 2.0-beta01. ( I1b162 )
  • При генерации информации о дорожках используйте идентификаторы потоков, специфичные для платформы. ( I6ba64 )

Версия 2.0.0-alpha09

23 июня 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha09 . Версия 2.0.0-alpha09 содержит следующие коммиты .

Изменения в API

  • Незначительное изменение API в Tracer для различения instant(...) и writeInstant(...) . ( I0935a )
  • Добавить поддержку токенов распространения в мгновенных событиях. ( I99f81 )
  • Разрешить полное использование потоков Perfetto в экспериментальном API для ручного распространения контекста. ( I20cb6 )
  • Отложить создание BufferedSink и ProtoWriter в TraceSink . ( Ibd098 )
  • Сделайте обнаружение Tracer простым и совместимым с библиотеками Java и Android. ( I99111 )
  • Упростите разработчикам библиотек поиск экземпляра TraceDriver , который можно использовать для трассировки внутри процесса. ( Ia503e )

Версия 2.0.0-alpha08

19 мая 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha08 . Версия 2.0.0-alpha08 содержит следующие коммиты .

Изменения в API

  • Добавить возможность обнаружения и переопределения экземпляров TraceDriver для использования в рамках всего процесса. ( I3f715 )
  • Переименовать Tracer.recordException в Tracer.recordExceptionAndThrow . ( I4411f , b/503092450 )

Версия 2.0.0-alpha07

6 мая 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha07 . Версия 2.0.0-alpha07 содержит следующие коммиты .

Изменения в API

  • Добавить API для получения заглушки трассировщика, которую можно использовать, когда трассировка отключена. ( I84c98 )
  • Обеспечьте согласованность жизненного цикла трассировки с системной трассировкой. ( Ib391b )
  • API счетчиков теперь полностью не требуют выделения памяти. ( I5e73a )

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

  • Исправлено правило сохранения для SDK Perfetto ( tracing-perfetto ), которое гарантирует возможность включения SDK Perfetto. ( I1d227 )
  • Добавить возможность отслеживания событий flush() . ( I38014 , b/495852704 )

Версия 2.0.0-alpha06

22 апреля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha06 . Версия 2.0.0-alpha06 содержит следующие коммиты .

Изменения в API

  • Снимите ограничения File.createPerfettoFile() чтобы другие могли безопасно создавать приемники. Когда block() генерирует исключение в trace / traceCoroutine создайте instant событие для исключения с метаданными, представляющими соответствующие элементы трассировки стека. ( I682e5 , b/501536851 , b/437166283 )
  • Добавить перегрузку функции setCounter(...) , принимающую тип Java Long . ( Ic0469 , b/356082604 )
  • В версии 2.0 для идентификаторов Thread специфичных для платформы, используется Long . ( I67277 )

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

  • Улучшить документацию для AttributeEntry.reset() . ( I5d3a1 , b/496079439 )

Версия 2.0.0-alpha05

8 апреля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha05 . Версия 2.0.0-alpha05 содержит следующие коммиты .

Изменения в API

  • Функции фабрики TraceSink теперь возвращают TraceSink , а не AbstractTraceSink . Файлы теперь имеют уникальный суффикс. Мы гарантируем возможность атомарного создания нового файла, который будет использоваться для хранения пакетов трассировки. ( I4c4aa , b/496298726 )
  • Упростите и ускорьте распространение контекста сопрограмм. ( Ia62db )
  • Ввести необязательные attributes() при создании объекта TraceDriver , которые позволяют добавлять метаданные, относящиеся к трассировке. ( Ia147e )

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

  • Теперь потоки обработки и счетчики отслеживаются синхронно. Это исправляет исключения вида: java.lang.NullPointerException: Cannot invoke "androidx.tracing.ThreadTrack.flush$tracing()" because "threadTrack" is null
  • Избегайте отправки событий от приемника, если трассировка отключена.

Версия 2.0.0-alpha04

25 марта 2026 г.

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

Изменения в API

  • Сделайте AbstractTraceDriver действительно абстрактным и перенесите реализацию Perfetto в модуль tracing-wire . ( IE2F59 )
  • Присвойте базовым реализациям более описательные имена, чтобы избежать использования неправильной. Разработчикам, ранее расширявшим androidx.tracing.Trace{Sink|Driver} теперь потребуется перейти на использование AbstractTrace{Sink|Driver} . ( I9b46d )

Версия 2.0.0-alpha03

11 марта 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha03 . Версия 2.0.0-alpha03 содержит следующие коммиты .

Изменения в API

  • Добавлена ​​экспериментальная реализация InMemoryRingBufferTraceSink , которая позволяет устанавливать ограничение по емкости и предотвращает запись на диск, если это явно не запрошено. ( I1dc44 , b/484409653 , I65a37 , b/484409653 )
  • Исправлена ​​ошибка состояния гонки при генерации событий трассировки для приостановки и возобновления работы сопрограмм. ( IE145e )

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

  • androidx.tracing по умолчанию больше не предпринимается попыток установить связи между родительскими и дочерними сопрограммами в трассировках. Это вызывало путаницу, поскольку базовый формат трассировки не поддерживает связи 1:N и N:1 , что приводило к образованию множества стрелок из-за неоднозначности в определении того, какой фрагмент сопрограммы к чему подключается. Вы по-прежнему можете вручную включить распространение с помощью API tokenForManualPropagation() если это важно для вашего случая. ( Ib2cf9 )

Версия 2.0.0-alpha02

25 февраля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha02 . Версия 2.0.0-alpha02 содержит следующие коммиты .

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

  • Улучшена производительность реализации Perfetto Trace Sink за счет использования встроенной функции suspendCoroutineUninterceptedOrReturn ( 2ea97b ).

Версия 2.0.0-alpha01

28 января 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha01 . Версия 2.0.0-alpha01 содержит следующие коммиты .

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

AndroidX Tracing 2.0 представляет собой значительно расширенный API-интерфейс для трассировки с низкими накладными расходами внутри процесса, дополняющий существующие API на основе android.os.Tracing в Tracing 1.0. Новые API доступны как в Android, так и в хост-JVM, что позволяет хост-инструментам генерировать трассировки с низкими накладными расходами для анализа производительности, используя тот же стандартный формат трассировки Perfetto.

Трассировка стека поддерживается как Android Studio, так и Perfetto, и может быть записана с расширенным набором функций, включая пометку фрагментов метаданными (например, аргументами функций!) и распространение трассировки контекста сопрограмм.

Эта первоначальная альфа-версия предназначена только для рабочих процессов трассировки в процессе выполнения и пока не интегрируется с трассировкой ОС Android или системной трассировкой Studio Profiler — эти функции будут добавлены в будущей альфа-версии.

  /**
  * A [TraceSink] defines how traces are serialized.
  *
  * [androidx.tracing.wire.TraceSink] uses the `Perfetto` trace packet format.
  */
  fun createSink(): TraceSink {
      val outputDirectory = File(/* pathname = */ "/tmp/perfetto")
      // We are using the factory function defined in androidx.tracing.wire
      return TraceSink(
          sequenceId = 1,
          directory = outputDirectory
      )
  }

  /**
  * Creates a new instance of [androidx.tracing.TraceDriver].
  */
  fun createTraceDriver(): TraceDriver {
      // We are using a factory function from androidx.tracing.wire here.
      // `isEnabled` controls whether tracing is enabled for the application.
      val driver = TraceDriver(sink = createSink(), isEnabled = true)
      return driver
  }

  fun main() {
      val driver = createTraceDriver()
      driver.use {
          driver.tracer.trace(category = CATEGORY_MAIN, name = "basic") {
              Thread.sleep(100L)
          }
      }
  }

Изменения в API

  • Сделайте Tracer свойством TraceDriver . ( Iabd9b )
  • Добавлена ​​поддержка ручного распространения контекста. ( I899ff )
  • Добавить возможность добавления информации о стеке вызовов в раздел трассировки. ( If6a1b )
  • Представляем новые API androidx.tracing . ( I5102b )
  • Разрешить мгновенным событиям содержать метаданные и добавить счетчики к мгновенным событиям и счетчикам. ( Ia2ed3 )
  • Уменьшите площадь поверхности API, аннотированного @DelicateTracingApi . Ничто в API верхнего уровня не должно требовать использования @DelicateTracingApi . ( I565e0 )
  • Упростите распространение контекста, объединив PropagationToken ( Iab839 ).
  • Стабилизация API BlackHole в androidx.benchmark ( I2b67e , b/451749438 )
  • Добавить возможность аннотирования участка трассировки в качестве корневого сегмента. ( Ic8365 )
  • Разрешите разработчику явно указывать токены распространения. ( I06bb1 )
  • Переименована MetadataHandleCloseable в EventMetadataCloseable , а MetadataHandle в EventMetadata . Также добавлен необязательный аргумент CoroutinePropagationToken для Tracer.traceCoroutine , позволяющий разработчику явно указать используемый токен распространения. ( I219f7 , b/454147392 )
  • Введена новая точка входа Tracer , которая предоставляет разработчикам гораздо больше контроля над процессом трассировки. ( I24a7b )
  • Добавить возможность управлять распространением контекста в SliceTrack . ( Ieb8fc )
  • fillCount в PooledTracePacketArray теперь корректно помечено как volatile. ( I75d2c )
  • Mark MetadataEntry @DelicateTracingApi . ( I8c723 )
  • Добавить возможность обработки событий потери трассировки TraceSink (когда пул исчерпан). ( I3b374 )
  • Добавить возможность условной генерации событий трассировки на основе предиката. ( I621b4 )
  • Добавить возможность добавления категорий к событию трассировки. ( I449c2 )
  • Mark TraceEvent , PooledTracePacketArray as DelicateTracingApi . ( Iaac6d )
  • Сделайте поля ProcessTrack.id , ThreadTrack.id , ThreadTrack.name , CounterTrack.name и CounterTrack.parent общедоступными. ( I81210 )
  • API SliceTrack.traceFlow() переименован в traceCoroutine() . ( I79ad0 )
  • Добавить возможность добавления контекстной информации к фрагментам с помощью отладочных аннотаций в трассировке Perfetto. ( Ic2b56 )
  • Предоставьте возможность создания экземпляра WireTraceSink с использованием File / OutputStream . ( Iecea0 )
  • Удаление устаревших аннотаций @RequiresApi(21) ( Ic4792 )

Версия 1.3

Версия 1.3.0

23 апреля 2025 г.

Выпущены androidx.tracing:tracing:1.3.0 , androidx.tracing:tracing-android:1.3.0 и androidx.tracing:tracing-ktx:1.3.0 . Версия 1.3.0 содержит следующие коммиты .

Важные изменения по сравнению с версией 1.2.0

  • Преобразовал класс androidx.tracing.Trace в Kotlin и перенёс весь код из модуля tracing-ktx в tracing .
  • Удалите crossinline из трассировки, чтобы разрешить использование в @Composable . ( I53882 , b/248344805 )

Версия 1.3.0-rc01

9 апреля 2025 г.

Выпущены androidx.tracing:tracing:1.3.0-rc01 , androidx.tracing:tracing-android:1.3.0-rc01 и androidx.tracing:tracing-ktx:1.3.0-rc01 без изменений по сравнению с последней бета-версией. Версия 1.3.0-rc01 содержит следующие коммиты .

Версия 1.3.0-beta01

12 февраля 2025 г.

Выпущены androidx.tracing:tracing:1.3.0-beta01 , androidx.tracing:tracing-android:1.3.0-beta01 и androidx.tracing:tracing-ktx:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие коммиты .

Изменения в API

  • Весь код перенесен из модуля tracing-ktx в tracing . ( Iba550 )
  • Класс androidx.tracing.Trace преобразован в Kotlin. ( IE4E5D )

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

  • Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( Ia60e0 , b/345472586 )

Версия 1.3.0-alpha02

21 июня 2023 г.

Выпущены androidx.tracing:tracing:1.3.0-alpha02 и androidx.tracing:tracing-ktx:1.3.0-alpha02 без изменений по сравнению с предыдущей альфа-версией. Версия 1.3.0-alpha02 содержит следующие коммиты.

Версия 1.3.0-alpha01

7 июня 2023 г.

Выпущены androidx.tracing:tracing:1.3.0-alpha01 и androidx.tracing:tracing-ktx:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты.

Изменения в API

  • Удалите crossinline из трассировки, чтобы разрешить использование в @Composable . ( I53882 , b/248344805 )

Версия 1.2

Версия 1.2.0

29 ноября 2023 г.

Выпущены androidx.tracing:tracing:1.2.0 и androidx.tracing:tracing-ktx:1.2.0 . Версия 1.2.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.1.0

  • Добавлены варианты функций trace() и traceAsync() с отложенным вычислением строк и cookie. Также теперь корректно пропускается вызов Trace.end если Trace.begin вызывает исключение.

Версия 1.2.0-rc01

24 мая 2023 г.

Выпущены androidx.tracing:tracing:1.2.0-rc01 и androidx.tracing:tracing-ktx:1.2.0-rc01 . Версия 1.2.0-rc01 содержит следующие коммиты.

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

  • Предотвращение сбоев при передаче длинных имен участков трассировки путем автоматического усечения ( Iaf6e2 )

Версия 1.2.0-beta04

3 мая 2023 г.

Выпущены androidx.tracing:tracing:1.2.0-beta04 и androidx.tracing:tracing-ktx:1.2.0-beta04 без изменений. Версия 1.2.0-beta04 содержит следующие коммиты.

Версия 1.2.0-beta03

5 апреля 2023 г.

Выпущены androidx.tracing:tracing:1.2.0-beta03 и androidx.tracing:tracing-ktx:1.2.0-beta03 без каких-либо изменений. Версия 1.2.0-beta03 содержит следующие коммиты.

Версия 1.2.0-beta02

22 марта 2023 г.

Выпущены androidx.tracing:tracing:1.2.0-beta02 и androidx.tracing:tracing-ktx:1.2.0-beta02 без изменений по сравнению с предыдущей бета-версией. Версия 1.2.0-beta02 содержит следующие коммиты.

Версия 1.2.0-beta01

8 марта 2023 г.

Выпущены androidx.tracing:tracing:1.2.0-beta01 и androidx.tracing:tracing-ktx:1.2.0-beta01 без изменений по сравнению с последней альфа-версией. Версия 1.2.0-beta01 содержит следующие коммиты.

Версия 1.2.0-alpha02

23 февраля 2023 г.

Выпущены androidx.tracing:tracing:1.2.0-alpha02 и androidx.tracing:tracing-ktx:1.2.0-alpha02 без изменений по сравнению с предыдущей альфа-версией. Версия 1.2.0-alpha02 содержит следующие коммиты.

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

  • В этом релизе исправлена ​​ошибка Could not find androidx.tracing:tracing-ktx:1.2.0-alpha02 при обновлении до версии androidx.tracing: tracing-perfetto-common:1.0.0-alpha11

Версия 1.2.0-alpha01

5 октября 2022 г.

Выпущены androidx.tracing:tracing:1.2.0-alpha01 и androidx.tracing:tracing-ktx:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие коммиты.

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

  • Добавлены варианты функций trace() и traceAsync() с отложенным вычислением строк и cookie. Также теперь корректно пропускается вызов Trace.end , если возникает исключение Trace.begin . ( I31421 , b/175233952 , b/247066503 )

Версия 1.1

Версия 1.1.0

11 мая 2022 г.

Выпущены androidx.tracing:tracing:1.1.0 и androidx.tracing:tracing-ktx:1.1.0 . Версия 1.1.0 содержит следующие коммиты.

Важные изменения с версии 1.0.0

  • Добавлен API-функция Trace.forceEnableAppTracing() для принудительного включения захвата разделов трассировки приложения (т.е. API android.os.Trace / androidx.tracing) в сборках, не предназначенных для отладки. Вызывайте эту функцию в начале запуска, чтобы включить точную трассировку системы в сборках, не предназначенных для отладки, до появления тега манифеста с возможностью профилирования в API 29. ( I3a309 )
  • Избегайте ошибок проверки классов при первой загрузке файла Trace.java ( 05f6b4 и cb101f ).

Версия 1.1.0-rc01

20 апреля 2022 г.

Выпущены androidx.tracing:tracing:1.1.0-rc01 и androidx.tracing:tracing-ktx:1.1.0-rc01 , без изменений по сравнению с beta01 . Версия 1.1.0-rc01 содержит следующие коммиты.

Версия 1.1.0-beta01

1 декабря 2021 г.

Выпущены androidx.tracing:tracing:1.1.0-beta01 и androidx.tracing:tracing-ktx:1.1.0-beta01 . Версия 1.1.0-beta01 содержит следующие коммиты.

С момента выхода 1.1.0-alpha02 изменений не наблюдалось.

Версия 1.1.0-alpha02

17 ноября 2021 г.

Выпущены androidx.tracing:tracing:1.1.0-alpha02 и androidx.tracing:tracing-ktx:1.1.0-alpha02 . Версия 1.1.0-alpha02 содержит следующие коммиты.

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

  • Добавлен API-функция Trace.forceEnableAppTracing() для принудительного включения захвата разделов трассировки приложения (т.е. API android.os.Trace / andoridx.tracing) в сборках, не предназначенных для отладки. Вызывайте эту функцию в начале запуска, чтобы включить точную трассировку системы в сборках, не предназначенных для отладки, до появления тега манифеста с возможностью профилирования в API 29. ( I3a309 )

Версия 1.1.0-alpha01

3 ноября 2021 г.

Выпущены androidx.tracing:tracing:1.1.0-alpha01 и androidx.tracing:tracing-ktx:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит следующие коммиты.

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

  • Избегайте ошибок проверки классов при первой загрузке файла Trace.java ( 05f6b4 и cb101f ).

Версия 1.0

Версия 1.0.0

28 октября 2020 г.

Выпущены androidx.tracing:tracing:1.0.0 и androidx.tracing:tracing-ktx:1.0.0 . Версия 1.0.0 содержит следующие коммиты.

Основные особенности версии 1.0.0

Эта библиотека помогает записывать события трассировки в системный буфер трассировки. Визуализацию можно осуществлять с помощью таких инструментов, как Systrace и Perfetto. Библиотека заменяет устаревший класс androidx.core.os.TraceCompat .

Версия 1.0.0-rc01

14 октября 2020 г.

Выпущены androidx.tracing:tracing:1.0.0-rc01 и androidx.tracing:tracing-ktx:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты.

Данный релиз идентичен версии 1.0.0-beta01 .

Версия 1.0.0-beta01

24 июня 2020 г.

androidx.tracing:tracing:1.0.0-beta01 и androidx.tracing:tracing-ktx:1.0.0-beta01 выпущены без изменений по сравнению с 1.0.0-alpha01 . Версия 1.0.0-beta01 содержит следующие коммиты.

Версия 1.0.0-alpha01

10 июня 2020 г.

Выпущены androidx.tracing:tracing:1.0.0-alpha01 и androidx.tracing:tracing-ktx:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.

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

androidx.tracing — это библиотека, которая помогает записывать события трассировки в системный буфер трассировки. Визуализацию можно осуществлять с помощью таких инструментов, как Systrace и Perfetto. Эта библиотека заменяет устаревший класс androidx.core.os.TraceCompat . Первый релиз — 1.0.0-alpha01.

Трассировка Перфетто

Версия 1.0

Версия 1.0.1

19 ноября 2025 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.1 , androidx.tracing:tracing-perfetto-binary:1.0.1 и androidx.tracing:tracing-perfetto-handshake:1.0.1 . Версия 1.0.1 содержит следующие коммиты .

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

  • Поддержка страниц размером 16 КБ ( b7a7dd )
  • Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( Ia60e0 , b/345472586 )
  • Избегайте включения копий FastNative/CriticalNative в библиотеку и используйте стабильные версии для платформы. ( I8238a , b/35664282 , b/280878596 )

Версия 1.0.0

4 октября 2023 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0 , androidx.tracing:tracing-perfetto-binary:1.0.0 и androidx.tracing:tracing-perfetto-handshake:1.0.0 . Версия 1.0.0 содержит эти коммиты.

Основные особенности версии 1.0.0

  • Это первый стабильный релиз библиотек Tracing-perfetto.

Версия 1.0.0-rc01

20 сентября 2023 г.

Выпущены androidx.tracing:tracing-perfetto:1.0.0-rc01 , androidx.tracing:tracing-perfetto-binary:1.0.0-rc01 и androidx.tracing:tracing-perfetto-handshake:1.0.0-rc01 без изменений по сравнению с последней бета-версией. Версия 1.0.0-rc01 содержит эти коммиты.

Версия 1.0.0-beta03

30 августа 2023 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-beta03 , androidx.tracing:tracing-perfetto-binary:1.0.0-beta03 и androidx.tracing:tracing-perfetto-handshake:1.0.0-beta03 . Версия 1.0.0-beta03 содержит эти коммиты.

  • Версия обновлена ​​до версии androidx.benchmark.

Версия 1.0.0-beta02

23 августа 2023 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-beta02 , androidx.tracing:tracing-perfetto-binary:1.0.0-beta02 и androidx.tracing:tracing-perfetto-handshake:1.0.0-beta02 . Версия 1.0.0-beta02 содержит эти коммиты.

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

  • Включена поддержка трассировки при запуске приложения (холодный запуск).

Версия 1.0.0-beta01

18 июля 2023 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-beta01 , androidx.tracing:tracing-perfetto-binary:1.0.0-beta01 и androidx.tracing:tracing-perfetto-handshake:1.0.0-beta01 . Версия 1.0.0-beta01 содержит эти коммиты.

Изменения в API

  • androidx.tracing.perfetto.Trace переименован в androidx.tracing.perfetto.PerfettoSdkTrace ( I44af8 ).
  • Для обеспечения согласованности в протоколе константы "код выхода" были переименованы в "код результата" ( Id1d1e ).
  • Переименование EnableTracingResponse в Response . ( I56275 )
  • Добавлена ​​опция для включения трассировки холодного запуска в постоянном режиме. Добавлена ​​функция для очистки (постоянного или нет) трассировки холодного запуска. ( Iaa09d )
  • Приведена согласованность трассировки API Perfetto SDK с android.os.Trace . ( I73ba0 , b/282199917 )
  • Переход к фабричной архитектуре для LibrarySource позволяет легко добавлять в API будущие сценарии использования (например, прямую загрузку файла .so ) при необходимости. ( I128df )
  • Приведение параметров enableTracingColdStart в соответствие с enableTracingImmediate ( I54126 )
  • Удалён аргумент killProcess в enableTracingColdStart ( I81c4d )

Версия 1.0.0-alpha17

21 июня 2023 г.

Выпущены androidx.tracing:tracing-perfetto:1.0.0-alpha17 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha17 и androidx.tracing:tracing-perfetto-handshake:1.0.0-alpha17 без изменений по сравнению с предыдущей альфа-версией. Версия 1.0.0-alpha17 содержит эти коммиты.

Версия 1.0.0-alpha16

7 июня 2023 г.

Выпущены androidx.tracing:tracing-perfetto:1.0.0-alpha16 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha16 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha16 без изменений по сравнению с предыдущей альфа-версией. Версия 1.0.0-alpha16 содержит эти коммиты.

Версия 1.0.0-alpha15

3 мая 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha15 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha15 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha15 выпущены без изменений. Версия 1.0.0-alpha15 содержит эти коммиты.

Версия 1.0.0-alpha14

5 апреля 2023 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha14 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha14 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha14 без каких-либо изменений. Версия 1.0.0-alpha14 содержит эти коммиты.

Версия 1.0.0-alpha13

22 марта 2023 г.

Выпущены androidx.tracing:tracing-perfetto:1.0.0-alpha13 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha13 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha13 без изменений по сравнению с предыдущим релизом. Версия 1.0.0-alpha13 содержит эти коммиты.

Версия 1.0.0-alpha12

8 марта 2023 г.

Выпущены версии androidx.tracing:tracing-perfetto:1.0.0-alpha12 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha12 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha12 без изменений по сравнению с предыдущей альфа-версией. Версия 1.0.0-alpha12 содержит эти коммиты.

Версия 1.0.0-alpha11

22 февраля 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha11 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha11 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha11 выпущены без изменений. Версия 1.0.0-alpha11 содержит эти коммиты.

Версия 1.0.0-alpha10

8 февраля 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha10 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha10 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha10 выпущены без изменений. Версия 1.0.0-alpha10 содержит эти коммиты.

Версия 1.0.0-alpha09

10 февраля 2023 г.

Выпущена версия androidx.tracing:tracing-perfetto-binary:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты.

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

  • Выпуск версии androidx.tracing:tracing-perfetto*: 1.0.0-alpha09 работать вместе.

11 января 2023 г.

Выпущены androidx.tracing:tracing-perfetto:1.0.0-alpha09 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha09 без изменений. Версия 1.0.0-alpha09 содержит следующие коммиты.

Версия 1.0.0-alpha08

7 декабря 2022 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha08 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha08 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит эти коммиты.

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

  • Улучшена производительность за счет оптимизации обработки строк.

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

  • Добавлено правило ProGuard, предотвращающее удаление методов PerfettoNative , если этот класс вообще используется (предотвращает сбой в узкоспециализированном случае, когда трассировка инициализирована, но в приложении отсутствуют вызовы трассировки).

Версия 1.0.0-alpha07

9 ноября 2022 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha07 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha07 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит эти коммиты.

  • Снижены накладные расходы JNI для API androidx.tracing:tracing-perfetto .

Версия 1.0.0-alpha06

24 октября 2022 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha06 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha06 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит эти коммиты.

  • Это обновление не содержит никаких изменений, только обновляет номер версии для синхронизации с androidx.benchmark.

Версия 1.0.0-alpha05

5 октября 2022 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha05 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha05 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит эти коммиты.

Версия 1.0.0-alpha04

21 сентября 2022 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha04 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha04 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит эти коммиты.

Версия 1.0.0-alpha03

7 сентября 2022 г.

Выпущены androidx.tracing:tracing-perfetto:1.0.0-alpha03 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha03 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha03 .

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

  • В версии 1.0.0-alpha02 новых функций нет.

Версия 1.0.0-alpha02

24 августа 2022 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha02 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha02 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.

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

  • Внесены некоторые улучшения в инициализацию сервиса Perfetto.
  • Улучшена обработка случаев отсутствия ответа за счет введения специального кода завершения: RESULT_CODE_CANCELLED.
  • Улучшена обработка ошибок синтаксического анализа.
  • Сделано EnableTracingResponse.requiredVersion допускающим значение null, поскольку мы не можем узнать версию, если не можем взаимодействовать с пакетом. ( I5ba20 )

Версия 1.0.0-alpha01

27 июля 2022 г.

Выпущены коммиты androidx.tracing:tracing-perfetto:1.0.0-alpha01 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha01 и androidx.tracing:tracing-perfetto-common:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты.

  • Примечание: Все библиотеки androidx.tracing:tracing-perfetto* изначально предназначены только для внутреннего использования в библиотеках AndroidX. Вам не должно быть необходимости напрямую зависеть от них.

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

  • Все библиотеки androidx.tracing:tracing-perfetto* изначально предназначены только для внутреннего использования в библиотеках AndroidX, и вам не должно быть необходимости напрямую зависеть от них. Мы документируем эти детали реализации для обеспечения прозрачности.

  • androidx.tracing:tracing-perfetto — это библиотека, которая помогает записывать события трассировки с помощью простого в использовании SDK Perfetto. Ее можно использовать в Benchmark, Android Studio или Perfetto UI.

  • androidx.tracing:tracing-perfetto-binary — это набор бинарных зависимостей, необходимых для работы androidx.tracing:tracing-perfetto.

  • androidx.tracing:tracing-perfetto-common — это внутренняя зависимость androidx.tracing:tracing-perfetto, которую можно использовать в инструментах для интеграции с androidx.tracing:tracing-perfetto.

,

Отслеживание

Записывать события трассировки в системный буфер трассировки.
Последнее обновление Стабильный релиз Предварительная версия для выпуска Бета-версия Альфа-версия
12 августа 2026 г. 2.0.0 - - -

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

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

Создать новую задачу

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

Отслеживание

Версия 2.0

Версия 2.0.0

12 августа 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0 . Версия 2.0.0 содержит следующие коммиты .

Основные особенности версии 2.0.0:

Новый API для работы в рамках процесса позволяет:

  • Запись содержимого трассировки в процессе работы, непосредственно на объекте.
  • Поток перфетто (стрелки от одного среза к другому)
  • Аннотации Perfetto (метаданные срезов ключ/значение)
  • traceCoroutine() {} - API трассировки сопрограмм, отслеживающий переключения потоков.
  • Фильтрация по категориям
  • Значительно меньшие накладные расходы по сравнению с существующим API android.os.Trace и trace() {}
  • Трассировка KMP — может использоваться для библиотек, не зависящих от Android, а также для проектов на хост-машине JVM.
  • Постфактумное объединение с записью трассировки системы (реализовано по умолчанию в AndroidX Benchmark 1.5)

Обратите внимание, что новые API трассировки записывают данные в буфер, управляемый процессом, который пока не используется системой трассировки Studio. Эта проблема будет решена в профилировщиках Studio в одном из следующих релизов.

Существующие API-функции android.os.Trace / trace() {} не устарели. Эти API-функции по-прежнему рекомендуются для событий с низкой частотой, которые всегда должны записываться в системный буфер трассировки, особенно в библиотеках.

Версия 2.0.0-rc01

29 июля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-rc01 . Версия 2.0.0-rc01 содержит следующие коммиты .

Версия 2.0.0-beta01

15 июля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-beta01 . Версия 2.0.0-beta01 содержит следующие коммиты .

Изменения в API

  • Теперь PerfettoCapture и PerfettoTraceRule могут захватывать трассировки внутри процесса и объединять их для целевого пакета. ( I9a00b , b/497959820 )
  • androidx.benchmark теперь используется minSdk 24 ( IC2A85 ).

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

  • Трассировка выпуска 2.0-beta01. ( I1b162 )
  • При генерации информации о дорожках используйте идентификаторы потоков, специфичные для платформы. ( I6ba64 )

Версия 2.0.0-alpha09

23 июня 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha09 . Версия 2.0.0-alpha09 содержит следующие коммиты .

Изменения в API

  • Незначительное изменение API в Tracer для различения instant(...) и writeInstant(...) . ( I0935a )
  • Добавить поддержку токенов распространения в мгновенных событиях. ( I99f81 )
  • Разрешить полное использование потоков Perfetto в экспериментальном API для ручного распространения контекста. ( I20cb6 )
  • Отложить создание BufferedSink и ProtoWriter в TraceSink . ( Ibd098 )
  • Сделайте обнаружение Tracer простым и совместимым с библиотеками Java и Android. ( I99111 )
  • Упростите разработчикам библиотек поиск экземпляра TraceDriver , который можно использовать для трассировки внутри процесса. ( Ia503e )

Версия 2.0.0-alpha08

19 мая 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha08 . Версия 2.0.0-alpha08 содержит следующие коммиты .

Изменения в API

  • Добавить возможность обнаружения и переопределения экземпляров TraceDriver для использования в рамках всего процесса. ( I3f715 )
  • Переименовать Tracer.recordException в Tracer.recordExceptionAndThrow . ( I4411f , b/503092450 )

Версия 2.0.0-alpha07

6 мая 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha07 . Версия 2.0.0-alpha07 содержит следующие коммиты .

Изменения в API

  • Добавить API для получения заглушки трассировщика, которую можно использовать, когда трассировка отключена. ( I84c98 )
  • Обеспечьте согласованность жизненного цикла трассировки с системной трассировкой. ( Ib391b )
  • API счетчиков теперь полностью не требуют выделения памяти. ( I5e73a )

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

  • Исправлено правило сохранения для SDK Perfetto ( tracing-perfetto ), которое гарантирует возможность включения SDK Perfetto. ( I1d227 )
  • Добавить возможность отслеживания событий flush() . ( I38014 , b/495852704 )

Версия 2.0.0-alpha06

22 апреля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha06 . Версия 2.0.0-alpha06 содержит следующие коммиты .

Изменения в API

  • Снимите ограничения File.createPerfettoFile() чтобы другие могли безопасно создавать приемники. Когда block() генерирует исключение в trace / traceCoroutine создайте instant событие для исключения с метаданными, представляющими соответствующие элементы трассировки стека. ( I682e5 , b/501536851 , b/437166283 )
  • Добавить перегрузку функции setCounter(...) , принимающую тип Java Long . ( Ic0469 , b/356082604 )
  • В версии 2.0 для идентификаторов Thread специфичных для платформы, используется Long . ( I67277 )

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

  • Улучшить документацию для AttributeEntry.reset() . ( I5d3a1 , b/496079439 )

Версия 2.0.0-alpha05

8 апреля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha05 . Версия 2.0.0-alpha05 содержит следующие коммиты .

Изменения в API

  • Функции фабрики TraceSink теперь возвращают TraceSink , а не AbstractTraceSink . Файлы теперь имеют уникальный суффикс. Мы гарантируем возможность атомарного создания нового файла, который будет использоваться для хранения пакетов трассировки. ( I4c4aa , b/496298726 )
  • Упростите и ускорьте распространение контекста сопрограмм. ( Ia62db )
  • Ввести необязательные attributes() при создании объекта TraceDriver , которые позволяют добавлять метаданные, относящиеся к трассировке. ( Ia147e )

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

  • Теперь потоки обработки и счетчики отслеживаются синхронно. Это исправляет исключения вида: java.lang.NullPointerException: Cannot invoke "androidx.tracing.ThreadTrack.flush$tracing()" because "threadTrack" is null
  • Избегайте отправки событий от приемника, если трассировка отключена.

Версия 2.0.0-alpha04

25 марта 2026 г.

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

Изменения в API

  • Сделайте AbstractTraceDriver действительно абстрактным и перенесите реализацию Perfetto в модуль tracing-wire . ( IE2F59 )
  • Присвойте базовым реализациям более описательные имена, чтобы избежать использования неправильной. Разработчикам, ранее расширявшим androidx.tracing.Trace{Sink|Driver} теперь потребуется перейти на использование AbstractTrace{Sink|Driver} . ( I9b46d )

Версия 2.0.0-alpha03

11 марта 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha03 . Версия 2.0.0-alpha03 содержит следующие коммиты .

Изменения в API

  • Добавлена ​​экспериментальная реализация InMemoryRingBufferTraceSink , которая позволяет устанавливать ограничение по емкости и предотвращает запись на диск, если это явно не запрошено. ( I1dc44 , b/484409653 , I65a37 , b/484409653 )
  • Исправлена ​​ошибка состояния гонки при генерации событий трассировки для приостановки и возобновления работы сопрограмм. ( IE145e )

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

  • androidx.tracing по умолчанию больше не предпринимается попыток установить связи между родительскими и дочерними сопрограммами в трассировках. Это вызывало путаницу, поскольку базовый формат трассировки не поддерживает связи 1:N и N:1 , что приводило к образованию множества стрелок из-за неоднозначности в определении того, какой фрагмент сопрограммы к чему подключается. Вы по-прежнему можете вручную включить распространение с помощью API tokenForManualPropagation() если это важно для вашего случая. ( Ib2cf9 )

Версия 2.0.0-alpha02

25 февраля 2026 г.

Выпущена версия androidx.tracing:tracing-*:2.0.0-alpha02 . Версия 2.0.0-alpha02 содержит следующие коммиты .

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

  • Improved performance for the Perfetto Trace Sink implementation by using the suspendCoroutineUninterceptedOrReturn intrinsic ( 2ea97b ).

Version 2.0.0-alpha01

28 января 2026 г.

androidx.tracing:tracing-*:2.0.0-alpha01 is released. Version 2.0.0-alpha01 contains these commits .

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

AndroidX Tracing 2.0 introduces a significant new API surface for low-overhead, in-process tracing, as a complement to the existing android.os.Tracing -based APIs in Tracing 1.0. The new APIs are available both on Android and host JVM, which enables host tools to emit low overhead traces for performance analysis, using the same standard Perfetto trace format.

Emitted traces are supported both by Android Studio and Perfetto, and can be recorded with an expanded feature set including tagging slices with metadata (such as function arguments!), and coroutine context trace propagation.

This initial alpha is only meant for in-process tracing workflows, and does not yet integrate with Android OS tracing or Studio Profiler System Tracing - these will be coming in a future alpha.

  /**
  * A [TraceSink] defines how traces are serialized.
  *
  * [androidx.tracing.wire.TraceSink] uses the `Perfetto` trace packet format.
  */
  fun createSink(): TraceSink {
      val outputDirectory = File(/* pathname = */ "/tmp/perfetto")
      // We are using the factory function defined in androidx.tracing.wire
      return TraceSink(
          sequenceId = 1,
          directory = outputDirectory
      )
  }

  /**
  * Creates a new instance of [androidx.tracing.TraceDriver].
  */
  fun createTraceDriver(): TraceDriver {
      // We are using a factory function from androidx.tracing.wire here.
      // `isEnabled` controls whether tracing is enabled for the application.
      val driver = TraceDriver(sink = createSink(), isEnabled = true)
      return driver
  }

  fun main() {
      val driver = createTraceDriver()
      driver.use {
          driver.tracer.trace(category = CATEGORY_MAIN, name = "basic") {
              Thread.sleep(100L)
          }
      }
  }

Изменения в API

  • Make Tracer a property of the TraceDriver . ( Iabd9b )
  • Add support for manual context propagation. ( I899ff )
  • Add the ability to add call stack information in a trace section. ( If6a1b )
  • Introduce the new androidx.tracing APIs. ( I5102b )
  • Allow instant events to contain metadata, and add counters to instants & counters. ( Ia2ed3 )
  • Reduce the surface area of the API annotated with @DelicateTracingApi . Nothing in the top level API should require the use of @DelicateTracingApi . ( I565e0 )
  • Simplify context propagation by unifying PropagationToken s. ( Iab839 )
  • Stabilize BlackHole APIs in androidx.benchmark . ( I2b67e , b/451749438 )
  • Add the ability to annotate the trace section as a root span. ( Ic8365 )
  • Allow the developer to explicit about propagation tokens. ( I06bb1 )
  • Renamed MetadataHandleCloseable to EventMetadataCloseable , and MetadataHandle to EventMetadata . Also added an optional CoroutinePropagationToken argument to Tracer.traceCoroutine to allow the developer to explicitly specify the propagation token to use. ( I219f7 , b/454147392 )
  • Introduced a new Tracer entry point which gives developers a lot more control on how to trace. ( I24a7b )
  • Add the ability to control how context propagation happens in a SliceTrack . ( Ieb8fc )
  • fillCount in PooledTracePacketArray is now correctly marked volatile. ( I75d2c )
  • Mark MetadataEntry @DelicateTracingApi . ( I8c723 )
  • Add the ability for a TraceSink to be able to handle lost trace events (when the pool is exhausted). ( I3b374 )
  • Add the ability to conditionally emit trace events based on a predicate. ( I621b4 )
  • Add the ability to add categories to a trace event. ( I449c2 )
  • Mark TraceEvent , PooledTracePacketArray as DelicateTracingApi . ( Iaac6d )
  • Make ProcessTrack.id , ThreadTrack.id , ThreadTrack.name , CounterTrack.name and CounterTrack.parent public. ( I81210 )
  • Renamed the SliceTrack.traceFlow() API to traceCoroutine() . ( I79ad0 )
  • Add the ability to add contextual information to slices via debug annotations in a Perfetto trace. ( Ic2b56 )
  • Make it possible to construct an instance of WireTraceSink with a File / OutputStream . ( Iecea0 )
  • Removing obsolete @RequiresApi(21) annotations ( Ic4792 )

Версия 1.3

Версия 1.3.0

23 апреля 2025 г.

androidx.tracing:tracing:1.3.0 , androidx.tracing:tracing-android:1.3.0 , and androidx.tracing:tracing-ktx:1.3.0 are released. Version 1.3.0 contains these commits .

Important changes since 1.2.0

  • Converted androidx.tracing.Trace class to Kotlin, and moved all code from the tracing-ktx module to tracing .
  • Remove crossinline from trace to allow using in a @Composable . ( I53882 , b/248344805 )

Version 1.3.0-rc01

9 апреля 2025 г.

androidx.tracing:tracing:1.3.0-rc01 , androidx.tracing:tracing-android:1.3.0-rc01 , and androidx.tracing:tracing-ktx:1.3.0-rc01 are released with no changes since the last beta. Version 1.3.0-rc01 contains these commits .

Version 1.3.0-beta01

12 февраля 2025 г.

androidx.tracing:tracing:1.3.0-beta01 , androidx.tracing:tracing-android:1.3.0-beta01 , and androidx.tracing:tracing-ktx:1.3.0-beta01 are released. Version 1.3.0-beta01 contains these commits .

Изменения в API

  • Moved all the code from the tracing-ktx module to tracing . ( Iba550 )
  • Converted androidx.tracing.Trace class to Kotlin. ( Ie4e5d )

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

  • Removed manual outlining of access to new platform APIs since this happens automatically via API modeling when using R8 with AGP 7.3 or later (eg R8 version 3.3) and for all builds when using AGP 8.1 or later (eg D8 version 8.1). Clients who are not using AGP are advised to update to D8 version 8.1 or later. See this article for more details. ( Ia60e0 , b/345472586 )

Version 1.3.0-alpha02

June 21, 2023

androidx.tracing:tracing:1.3.0-alpha02 and androidx.tracing:tracing-ktx:1.3.0-alpha02 are released with no changes from previous alpha. Version 1.3.0-alpha02 contains these commits.

Version 1.3.0-alpha01

June 7, 2023

androidx.tracing:tracing:1.3.0-alpha01 and androidx.tracing:tracing-ktx:1.3.0-alpha01 are released. Version 1.3.0-alpha01 contains these commits.

Изменения в API

  • Remove crossinline from trace to allow using in a @Composable . ( I53882 , b/248344805 )

Версия 1.2

Версия 1.2.0

29 ноября 2023 г.

androidx.tracing:tracing:1.2.0 and androidx.tracing:tracing-ktx:1.2.0 are released. Version 1.2.0 contains these commits.

Important changes since 1.1.0

  • Add trace() and traceAsync() variants with lazy string and cookie computation. Also now correctly skips Trace.end if Trace.begin throws.

Version 1.2.0-rc01

24 мая 2023 г.

androidx.tracing:tracing:1.2.0-rc01 and androidx.tracing:tracing-ktx:1.2.0-rc01 are released. Version 1.2.0-rc01 contains these commits.

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

  • Prevent crashes when long trace section names are passed by truncating automatically ( Iaf6e2 )

Version 1.2.0-beta04

3 мая 2023 г.

androidx.tracing:tracing:1.2.0-beta04 and androidx.tracing:tracing-ktx:1.2.0-beta04 are released with no changes. Version 1.2.0-beta04 contains these commits.

Version 1.2.0-beta03

5 апреля 2023 г.

androidx.tracing:tracing:1.2.0-beta03 and androidx.tracing:tracing-ktx:1.2.0-beta03 are released with no new changes. Version 1.2.0-beta03 contains these commits.

Version 1.2.0-beta02

22 марта 2023 г.

androidx.tracing:tracing:1.2.0-beta02 and androidx.tracing:tracing-ktx:1.2.0-beta02 are released with no changes since the previous beta. Version 1.2.0-beta02 contains these commits.

Version 1.2.0-beta01

8 марта 2023 г.

androidx.tracing:tracing:1.2.0-beta01 and androidx.tracing:tracing-ktx:1.2.0-beta01 are released with no changes since the last alpha. Version 1.2.0-beta01 contains these commits.

Версия 1.2.0-alpha02

23 февраля 2023 г.

androidx.tracing:tracing:1.2.0-alpha02 and androidx.tracing:tracing-ktx:1.2.0-alpha02 are released with no changes from the previous alpha. Version 1.2.0-alpha02 contains these commits.

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

  • This release will fix a Could not find androidx.tracing:tracing-ktx:1.2.0-alpha02 error when upgrading to androidx.tracing: tracing-perfetto-common:1.0.0-alpha11

Версия 1.2.0-alpha01

5 октября 2022 г.

androidx.tracing:tracing:1.2.0-alpha01 and androidx.tracing:tracing-ktx:1.2.0-alpha01 are released. Version 1.2.0-alpha01 contains these commits.

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

  • Add trace() and traceAsync() variants with lazy string and cookie computation. Also now correctly skips Trace.end if Trace.begin throws. ( I31421 , b/175233952 , b/247066503 )

Версия 1.1

Версия 1.1.0

11 мая 2022 г.

androidx.tracing:tracing:1.1.0 and androidx.tracing:tracing-ktx:1.1.0 are released. Version 1.1.0 contains these commits.

Важные изменения с версии 1.0.0

  • Added Trace.forceEnableAppTracing() an API to force-enable app trace section capture (ie android.os.Trace / androidx.tracing APIs) on non-debuggable builds. Call this at the beginning of startup to enable non-debuggable accurate system tracing before the introduction of the profileable manifest tag in API 29. ( I3a309 )
  • Avoid class verification errors when Trace.java is loaded for the first time ( 05f6b4 and cb101f )

Версия 1.1.0-rc01

20 апреля 2022 г.

androidx.tracing:tracing:1.1.0-rc01 and androidx.tracing:tracing-ktx:1.1.0-rc01 are released, with no changes since beta01 . Version 1.1.0-rc01 contains these commits.

Версия 1.1.0-beta01

1 декабря 2021 г.

androidx.tracing:tracing:1.1.0-beta01 and androidx.tracing:tracing-ktx:1.1.0-beta01 are released. Version 1.1.0-beta01 contains these commits.

No changes since 1.1.0-alpha02 .

Версия 1.1.0-alpha02

17 ноября 2021 г.

androidx.tracing:tracing:1.1.0-alpha02 and androidx.tracing:tracing-ktx:1.1.0-alpha02 are released. Version 1.1.0-alpha02 contains these commits.

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

  • Added Trace.forceEnableAppTracing() an API to force-enable app trace section capture (ie android.os.Trace / andoridx.tracing APIs) on non-debuggable builds. Call this at the beginning of startup to enable non-debuggable accurate system tracing before the introduction of the profileable manifest tag in API 29. ( I3a309 )

Версия 1.1.0-alpha01

3 ноября 2021 г.

androidx.tracing:tracing:1.1.0-alpha01 and androidx.tracing:tracing-ktx:1.1.0-alpha01 are released. Version 1.1.0-alpha01 contains these commits.

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

  • Avoid class verification errors when Trace.java is loaded for the first time ( 05f6b4 and cb101f )

Версия 1.0

Версия 1.0.0

28 октября 2020 г.

androidx.tracing:tracing:1.0.0 and androidx.tracing:tracing-ktx:1.0.0 are released. Version 1.0.0 contains these commits.

Major features of 1.0.0

Helps write trace events to the system trace buffer. This can be visualized using tools like Systrace and Perfetto. This library replaces the deprecated androidx.core.os.TraceCompat class.

Версия 1.0.0-rc01

14 октября 2020 г.

androidx.tracing:tracing:1.0.0-rc01 and androidx.tracing:tracing-ktx:1.0.0-rc01 are released. Version 1.0.0-rc01 contains these commits.

This release is identical to 1.0.0-beta01 .

Версия 1.0.0-beta01

June 24, 2020

androidx.tracing:tracing:1.0.0-beta01 and androidx.tracing:tracing-ktx:1.0.0-beta01 are released with no changes since 1.0.0-alpha01 . Version 1.0.0-beta01 contains these commits.

Версия 1.0.0-alpha01

10 июня 2020 г.

androidx.tracing:tracing:1.0.0-alpha01 and androidx.tracing:tracing-ktx:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits.

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

androidx.tracing is a library which helps write trace events to the system trace buffer. This can be visualized using tools like Systrace and Perfetto. This library replaces the deprecated androidx.core.os.TraceCompat class. This initial release is 1.0.0-alpha01.

Tracing Perfetto

Версия 1.0

Версия 1.0.1

19 ноября 2025 г.

androidx.tracing:tracing-perfetto:1.0.1 , androidx.tracing:tracing-perfetto-binary:1.0.1 , and androidx.tracing:tracing-perfetto-handshake:1.0.1 are released. Version 1.0.1 contains these commits .

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

  • Support for 16KB page sizes ( b7a7dd )
  • Removed manual outlining of access to new platform APIs since this happens automatically via API modeling when using R8 with AGP 7.3 or later (eg R8 version 3.3) and for all builds when using AGP 8.1 or later (eg D8 version 8.1). Clients who are not using AGP are advised to update to D8 version 8.1 or later. See this article for more details. ( Ia60e0 , b/345472586 )
  • Avoid bundling copies of FastNative/CriticalNative in the library, and use the stable platform copies. ( I8238a , b/35664282 , b/280878596 )

Версия 1.0.0

4 октября 2023 г.

androidx.tracing:tracing-perfetto:1.0.0 , androidx.tracing:tracing-perfetto-binary:1.0.0 , and androidx.tracing:tracing-perfetto-handshake:1.0.0 are released. Version 1.0.0 contains these commits.

Major features of 1.0.0

  • This is the first stable release of the Tracing-perfetto libraries.

Версия 1.0.0-rc01

20 сентября 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-rc01 , androidx.tracing:tracing-perfetto-binary:1.0.0-rc01 , and androidx.tracing:tracing-perfetto-handshake:1.0.0-rc01 are released with no changes since the last beta. Version 1.0.0-rc01 contains these commits.

Version 1.0.0-beta03

30 августа 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-beta03 , androidx.tracing:tracing-perfetto-binary:1.0.0-beta03 , and androidx.tracing:tracing-perfetto-handshake:1.0.0-beta03 are released. Version 1.0.0-beta03 contains these commits.

  • Version bump to match androidx.benchmark release.

Version 1.0.0-beta02

August 23, 2023

androidx.tracing:tracing-perfetto:1.0.0-beta02 , androidx.tracing:tracing-perfetto-binary:1.0.0-beta02 , and androidx.tracing:tracing-perfetto-handshake:1.0.0-beta02 are released. Version 1.0.0-beta02 contains these commits.

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

  • Enabled support for tracing at app startup (cold start).

Версия 1.0.0-beta01

18 июля 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-beta01 , androidx.tracing:tracing-perfetto-binary:1.0.0-beta01 , and androidx.tracing:tracing-perfetto-handshake:1.0.0-beta01 are released. Version 1.0.0-beta01 contains these commits.

Изменения в API

  • Renamed androidx.tracing.perfetto.Trace to androidx.tracing.perfetto.PerfettoSdkTrace ( I44af8 )
  • Renamed "exit code" to "result code" constants in the protocol for consistency ( Id1d1e )
  • Renamed EnableTracingResponse to Response . ( I56275 )
  • Added an option to enable cold start tracing in a persistent mode. Added a function to clear (persistent or not) cold start tracing. ( Iaa09d )
  • Made Tracing Perfetto SDK APIs consistent with android.os.Trace . ( I73ba0 , b/282199917 )
  • Moved to a factory pattern for LibrarySource allowing for future use-cases (eg loading the .so file directly) to be easily added to the API if needed. ( I128df )
  • Making enableTracingColdStart parameters match enableTracingImmediate ( I54126 )
  • Removed killProcess argument in enableTracingColdStart ( I81c4d )

Version 1.0.0-alpha17

June 21, 2023

androidx.tracing:tracing-perfetto:1.0.0-alpha17 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha17 , and androidx.tracing:tracing-perfetto-handshake:1.0.0-alpha17 are released with no changes from previous alpha. Version 1.0.0-alpha17 contains these commits.

Version 1.0.0-alpha16

June 7, 2023

androidx.tracing:tracing-perfetto:1.0.0-alpha16 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha16 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha16 are released with no changes from previous alpha. Version 1.0.0-alpha16 contains these commits.

Version 1.0.0-alpha15

3 мая 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha15 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha15 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha15 are released with no changes. Version 1.0.0-alpha15 contains these commits.

Version 1.0.0-alpha14

5 апреля 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha14 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha14 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha14 are released with no new changes. Version 1.0.0-alpha14 contains these commits.

Version 1.0.0-alpha13

22 марта 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha13 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha13 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha13 are released with no changes since the last release. Version 1.0.0-alpha13 contains these commits.

Version 1.0.0-alpha12

8 марта 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha12 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha12 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha12 are released with no changes since previous alpha. Version 1.0.0-alpha12 contains these commits.

Версия 1.0.0-alpha11

22 февраля 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha11 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha11 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha11 are released with no changes. Version 1.0.0-alpha11 contains these commits.

Версия 1.0.0-alpha10

8 февраля 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha10 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha10 and androidx.tracing:tracing-perfetto-common:1.0.0-alpha10 are released with no changes. Version 1.0.0-alpha10 contains these commits.

Версия 1.0.0-alpha09

February 10, 2023

androidx.tracing:tracing-perfetto-binary:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.

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

  • Version bump release to allow other androidx.tracing:tracing-perfetto*: 1.0.0-alpha09 libraries to work together.

11 января 2023 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha09 and androidx.tracing:tracing-perfetto-common:1.0.0-alpha09 are released with no changes. Version 1.0.0-alpha09 contains these commits.

Версия 1.0.0-alpha08

December 7, 2022

androidx.tracing:tracing-perfetto:1.0.0-alpha08 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha08 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha08 are released. Version 1.0.0-alpha08 contains these commits.

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

  • Improved performance by optimising the way strings are handled.

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

  • Added a proguard rule preventing methods of PerfettoNative from being pruned if the class is used at all (prevents a crash in a niche case when tracing is initialised, but no tracing calls are present in the app).

Версия 1.0.0-alpha07

9 ноября 2022 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha07 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha07 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha07 are released. Version 1.0.0-alpha07 contains these commits.

  • Reduced JNI overhead of androidx.tracing:tracing-perfetto APIs.

Версия 1.0.0-alpha06

24 октября 2022 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha06 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha06 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha06 are released. Version 1.0.0-alpha06 contains these commits.

  • This update includes no changes, just updating version number to sync with androidx.benchmark.

Версия 1.0.0-alpha05

5 октября 2022 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha05 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha05 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha05 are released. Version 1.0.0-alpha05 contains these commits.

Версия 1.0.0-alpha04

21 сентября 2022 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha04 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha04 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha04 are released. Version 1.0.0-alpha04 contains these commits.

Версия 1.0.0-alpha03

7 сентября 2022 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha03 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha03 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha03 are released.

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

  • No new features from the 1.0.0-alpha02.

Версия 1.0.0-alpha02

24 августа 2022 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha02 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha02 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits.

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

  • Several improvements to Perfetto service initialization
  • Improved handling of a no-response case by introducing a dedicated exit code: RESULT_CODE_CANCELLED.
  • Improved handling of parsing errors.
  • Made EnableTracingResponse.requiredVersion nullable, as we cannot know the version if we cannot communicate with the package. ( I5ba20 )

Версия 1.0.0-alpha01

27 июля 2022 г.

androidx.tracing:tracing-perfetto:1.0.0-alpha01 , androidx.tracing:tracing-perfetto-binary:1.0.0-alpha01 , and androidx.tracing:tracing-perfetto-common:1.0.0-alpha01 are released. Version 1.0.0-alpha01 contains these commits.

  • Note: All androidx.tracing:tracing-perfetto* libraries are initially only intended for internal use inside AndroidX libraries. You should have no need to depend on them directly.

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

  • All androidx.tracing:tracing-perfetto* libraries are initially only intended for internal use inside AndroidX libraries. and you should have no need to depend on them directly. We are documenting these implementation details for transparency.

  • androidx.tracing:tracing-perfetto is a library which helps write trace events using low-overhead Perfetto SDK. This can be used inside Benchmark, Android Studio or Perfetto UI.

  • androidx.tracing:tracing-perfetto-binary is a set of binary dependencies required for androidx.tracing:tracing-perfetto.

  • androidx.tracing:tracing-perfetto-common is an internal dependency of androidx.tracing:tracing-perfetto and can be used by tooling to integrate with androidx.tracing:tracing-perfetto.