Tracing

  
Write trace events to the system trace buffer.
Latest Update Stable Release Release Candidate Beta Release Alpha Release
November 29, 2023 1.2.0 - - 1.3.0-alpha02

Feedback

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

Create a new issue

See the Issue Tracker documentation for more information.

Version 1.3

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 Changes

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

Version 1.2

Version 1.2.0

November 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

May 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.

Bug Fixes

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

Version 1.2.0-beta04

May 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

April 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

March 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

March 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.

Version 1.2.0-alpha02

February 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.

Bug Fixes

  • 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

Version 1.2.0-alpha01

October 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.

New Features

  • 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)

Tracing Version 1.1

Version 1.1.0

May 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.

Important changes since 1.0.0

  • Added Trace.forceEnableAppTracing() an API to force-enable app trace section capture (i.e. 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)

Version 1.1.0-rc01

April 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.

Version 1.1.0-beta01

December 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.

Version 1.1.0-alpha02

November 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.

New Features

  • Added Trace.forceEnableAppTracing() an API to force-enable app trace section capture (i.e. 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)

Version 1.1.0-alpha01

November 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.

Bug Fixes

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

Tracing Perfetto Version 1.0.0

Version 1.0.0

October 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.

Version 1.0.0-rc01

September 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

August 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.

New Features

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

Version 1.0.0-beta01

July 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 Changes

  • 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 (e.g. 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

May 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

April 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

March 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

March 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.

Version 1.0.0-alpha11

February 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.

Version 1.0.0-alpha10

February 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.

Version 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.

New Features

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

January 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.

Version 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.

New Features

  • Improved performance by optimising the way strings are handled.

Bug Fixes

  • 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).

Version 1.0.0-alpha07

November 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.

Version 1.0.0-alpha06

October 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.

Version 1.0.0-alpha05

October 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.

Version 1.0.0-alpha04

September 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.

Version 1.0.0-alpha03

September 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.

New Features

  • No new features from the 1.0.0-alpha02.

Version 1.0.0-alpha02

August 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.

Bug Fixes

  • 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)

Version 1.0.0-alpha01

July 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.

New Features

  • 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.

Tracing Version 1.0.0

Version 1.0.0

October 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.

Version 1.0.0-rc01

October 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.

Version 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.

Version 1.0.0-alpha01

June 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.

New Features

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.