# AbstractTraceDriver.Factory

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.Factory) Added in [2.0.5](https://developer.android.com/jetpack/androidx/releases/tracing#2.0.5)

*** ** * ** ***


```
public interface AbstractTraceDriver.Factory
```

<br />

*** ** * ** ***

Provides the instance of `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` that can be used for in-process-tracing.

On Android, The `android.app.Application` subtype should implement this, to provide a canonical process wide `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver`.

When using `androidx.tracing:tracing-wire`, `androidx.tracing.profiler.ConnectedProfilerTracingInitializer` discovers the `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver.Factory`, and constructs the instance. It then registers a global `https://developer.android.com/reference/androidx/tracing/Tracer` by calling `https://developer.android.com/reference/androidx/tracing/Tracer#setGlobalTracer(androidx.tracing.Tracer)`.

Otherwise, construct `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` during startup and register it via `https://developer.android.com/reference/androidx/tracing/Tracer#setGlobalTracer(androidx.tracing.Tracer)` so other components can discover and use it.

## Summary

| ### Public methods |
|---|---|
| `abstract @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` | `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver.Factory#create()()` |

## Public methods

### create

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

```
abstract @NonNull AbstractTraceDriver create()
```

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` | The `https://developer.android.com/reference/androidx/tracing/AbstractTraceDriver` instance that can be used for in-process tracing. |