Tracing
The Tracing API offers a detailed overview of the operations performed by the Maps SDK. The tracing information includes style loading, tile parsing, and rendering events. Notably, the Tracing API is efficiently integrated with Android system tracing tools, ensuring a streamlined workflow for developers.
How to enable tracing
Mapbox Maps SDK for Android allows enabling additional Mapbox traces that could be of help troubleshooting performance issues.
Working with traces is possible only when an application is debuggable. You should use a build variant that includes debuggable true
in the build configuration. See the Android documentation for more information about enabling debugging for a build variant.
Using MapboxTracing
when the application is not debuggable will throw a runtime exception.
Configure tracing components
There are 2 types of traces that could be enabled:
- Native rendering engine traces could be enabled with
MapboxTracing.enableCore()
. Those traces include native render calls, style loading, requesting tiles and more. - Android platform traces could be enabled with
MapboxTracing.enablePlatform()
. Those traces include Android render thread calls such as preparing / destroying surface.
It is also possible to enable all the traces with MapboxTracing.enableAll()
. Tracing could be disabled with MapboxTracing.disableAll()
.
Record traces and analyze the results
There are several ways of capturing traces for Android which are described in the official documentation.
Recording traces using Android studio
You can start profiling your application by clicking the Profile
button directly from the Android Studio UI. See the Android documentation for more information about running an application to profile it.
When the profiling session starts, click on the CPU
track and select System Trace
to capture system traces for your application. When you have recorded what you need, press the Stop
button, wait Android Studio to parse your traces and hit Export system trace recording
to save trace recording locally.
After we exported trace recording you could use Perfetto to view investigate recorded traces.
Recording traces using Perfetto Web UI
You can use Perfetto to record traces and view results directly in the browser.