# ProfilingRequestBuilder

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/os/Profiling.kt+class:androidx.core.os.ProfilingRequestBuilder) Added in [1.15.0](https://developer.android.com/jetpack/androidx/releases/core#1.15.0)

*** ** * ** ***


```
@RequiresApi(api = 35)
public abstract class ProfilingRequestBuilder<T extends ProfilingRequestBuilder<@NonNull T>>
```

<br />

Known direct subclasses [HeapProfileRequestBuilder](https://developer.android.com/reference/androidx/core/os/HeapProfileRequestBuilder), [JavaHeapDumpRequestBuilder](https://developer.android.com/reference/androidx/core/os/JavaHeapDumpRequestBuilder), [StackSamplingRequestBuilder](https://developer.android.com/reference/androidx/core/os/StackSamplingRequestBuilder), [SystemTraceRequestBuilder](https://developer.android.com/reference/androidx/core/os/SystemTraceRequestBuilder)

|---|---|
| `https://developer.android.com/reference/androidx/core/os/HeapProfileRequestBuilder` | Request builder to create a request for a heap profile from `https://developer.android.com/reference/android/os/ProfilingManager.html`. |
| `https://developer.android.com/reference/androidx/core/os/JavaHeapDumpRequestBuilder` | Request builder to create a request for a java heap dump from `https://developer.android.com/reference/android/os/ProfilingManager.html`. |
| `https://developer.android.com/reference/androidx/core/os/StackSamplingRequestBuilder` | Request builder to create a request for stack sampling from `https://developer.android.com/reference/android/os/ProfilingManager.html`. |
| `https://developer.android.com/reference/androidx/core/os/SystemTraceRequestBuilder` | Request builder to create a request for a system trace from `https://developer.android.com/reference/android/os/ProfilingManager.html`. |

*** ** * ** ***

Base class for request builders.

## Summary

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/os/ProfilingRequest` | `https://developer.android.com/reference/androidx/core/os/ProfilingRequestBuilder#build()()` Build the `https://developer.android.com/reference/androidx/core/os/ProfilingRequest` object which can be used with `https://developer.android.com/reference/androidx/core/os/package-summary#requestProfiling(android.content.Context,androidx.core.os.ProfilingRequest,java.util.concurrent.Executor,java.util.function.Consumer)` to request profiling. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `https://developer.android.com/reference/androidx/core/os/ProfilingRequestBuilder#setCancellationSignal(android.os.CancellationSignal)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/CancellationSignal.html cancellationSignal)` Set a CancellationSignal to request cancellation of the requested trace. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `https://developer.android.com/reference/androidx/core/os/ProfilingRequestBuilder#setTag(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html tag)` Add data to help identify the output. |

## Public methods

### build

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

```
public final @NonNull ProfilingRequest build()
```

Build the `https://developer.android.com/reference/androidx/core/os/ProfilingRequest` object which can be used with `https://developer.android.com/reference/androidx/core/os/package-summary#requestProfiling(android.content.Context,androidx.core.os.ProfilingRequest,java.util.concurrent.Executor,java.util.function.Consumer)` to request profiling.

### setCancellationSignal

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

```
public final @NonNull T setCancellationSignal(@NonNull CancellationSignal cancellationSignal)
```

Set a CancellationSignal to request cancellation of the requested trace. Results will be returned if available.

### setTag

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

```
public final @NonNull T setTag(@NonNull String tag)
```

Add data to help identify the output. The first 20 alphanumeric characters, plus dashes, will be lowercased and included in the output filename.