# AbstractTraceDriver

Artifact: [androidx.tracing:tracing](https://developer.android.com/jetpack/androidx/releases/tracing) [View Source](https://cs.android.com/search?q=file:androidx/tracing/AbstractTraceDriver.kt+class:androidx.tracing.AbstractTraceDriver) Added in [2.0.5](https://developer.android.com/jetpack/androidx/releases/tracing#2.0.5)

*** ** * ** ***


```
public abstract class AbstractTraceDriver implements AutoCloseable
```

<br />

Known direct subclasses [TraceDriver](https://developer.android.com/reference/androidx/tracing/wire/TraceDriver)

|---|---|
| `https://developer.android.com/reference/androidx/tracing/wire/TraceDriver` | The entry point to tracing APIs. |

*** ** * ** ***

The entry point for the tracing API.

## Summary

| ### Nested types |
|---|
| `public interface https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver.Factory` Provides the instance of `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` that can be used for in-process-tracing. |

| ### Protected constructors |
|---|
| `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver#AbstractTraceDriver(androidx.tracing.AbstractTraceSink)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/tracing/AbstractTraceSink sink)` Builds an instance of `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` using the provided `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink`. |

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver#close()()` Flushes all outstanding packets to the `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink` and then closes the `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink`. |
| `abstract void` | `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver#flush()()` Flushes the trace packets into the underlying `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink`. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/tracing/AbstractTraceSink` | `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver#getSink()()` The `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink` that asynchronously serializes trace events to a file or buffer, depending on implementation. |
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/tracing/Tracer` | `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver#getTracer()()` Return an instance of a `https://developer.android.com/reference/androidx/tracing/Tracer` that can be used to emit trace events. |

## Protected constructors

### AbstractTraceDriver

Added in [2.0.5](https://developer.android.com/jetpack/androidx/releases/tracing#2.0.5)

```
protected AbstractTraceDriver(@NonNull AbstractTraceSink sink)
```

Builds an instance of `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` using the provided `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink`.

## Public methods

### close

Added in [2.0.5](https://developer.android.com/jetpack/androidx/releases/tracing#2.0.5)

```
public abstract void close()
```

Flushes all outstanding packets to the `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink` and then closes the `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink`.

### flush

Added in [2.0.5](https://developer.android.com/jetpack/androidx/releases/tracing#2.0.5)

```
public abstract void flush()
```

Flushes the trace packets into the underlying `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink`.

### getSink

Added in [2.0.5](https://developer.android.com/jetpack/androidx/releases/tracing#2.0.5)

```
public final @NonNull AbstractTraceSink getSink()
```

The `https://developer.android.com/reference/androidx/tracing/AbstractTraceSink` that asynchronously serializes trace events to a file or buffer, depending on implementation.

### getTracer

Added in [2.0.5](https://developer.android.com/jetpack/androidx/releases/tracing#2.0.5)

```
public abstract @NonNull Tracer getTracer()
```

Return an instance of a `https://developer.android.com/reference/androidx/tracing/Tracer` that can be used to emit trace events.