TraceSink
-
android
class TraceSink : AbstractTraceSink
The trace sink that writes BufferedSink, to a new file per trace session.
This implementation converts androidx.tracing.TraceEvents into binary protos using the Wire library.
The outputs created by TraceSink can be visualized with ui.perfetto.dev, and queried by TraceProcessor from the androidx.benchmark:benchmark-traceprocessor library, the C++ tool it's built on, or the Python wrapper.
As binary protos embed strings as UTF-8, note that any strings serialized by TraceSink will be serialized as UTF-8.
Summary
Public constructors |
|
|---|---|
TraceSink(Constructs an instance of |
android
|
TraceSink( |
android
|
Public functions |
||
|---|---|---|
open Unit |
close()Close the |
android
|
open Unit |
enqueue(pooledPacketArray: PooledTracePacketArray)Enqueue a |
android
|
open Unit |
flush()Flush any enqueued trace events to the |
android
|
open Unit |
Called when the |
android
|
Public constructors
TraceSink
TraceSink(
sequenceId: @IntRange(from = 1) Int,
bufferedSink: BufferedSink,
coroutineContext: CoroutineContext
)
Constructs an instance of TraceSink.
| Parameters | |
|---|---|
sequenceId: @IntRange(from = 1) Int |
ID which uniquely identifies the trace capture system. Value must be greater than 0. |
bufferedSink: BufferedSink |
The |
coroutineContext: CoroutineContext |
The |
TraceSink
TraceSink(
sequenceId: @IntRange(from = 1) Int,
sinkProvider: () -> BufferedSink,
coroutineContext: CoroutineContext = NonCancellable + Dispatchers.IO
)
Public functions
close
open fun close(): Unit
Close the AbstractTraceSink, completing any enqueued writes.
This function may be called from any thread.
enqueue
open fun enqueue(pooledPacketArray: PooledTracePacketArray): Unit
Enqueue a PooledTracePacketArray to be written to the trace.
This function may be called from any thread.
flush
open fun flush(): Unit
Flush any enqueued trace events to the AbstractTraceSink.
If the trace sink writes to persistent storage, this forces any buffered events to be written immediately. For in-memory sinks, this is typically a no-op because they do not have an underlying persistent storage destination by default.
This function may be called from any thread.
onDroppedTraceEvent
open fun onDroppedTraceEvent(): Unit
Called when the AbstractTraceSink cannot keep up with incoming trace events from Tracks.
This function may be called from any thread.