Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#inhmethods)

# CpuHeadroomParams.Builder

*** ** * ** ***


`
public
static
final

class
CpuHeadroomParams.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.os.CpuHeadroomParams.Builder |

<br />

*** ** * ** ***

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#Builder()() ` |
| ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#Builder(android.os.CpuHeadroomParams)(https://developer.android.com/reference/android/os/CpuHeadroomParams params) ` Returns a new builder copy with the same values as the params. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/os/CpuHeadroomParams` | ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#build()() ` Builds the `https://developer.android.com/reference/android/os/CpuHeadroomParams` object. |
| ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder` | ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#setCalculationType(int)(int calculationType) ` Sets the headroom calculation type. |
| ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder` | ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#setCalculationWindowMillis(int)(int windowMillis) ` Sets the headroom calculation window size in milliseconds. |
| ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder` | ` https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder#setTids(int[])(int... tids) ` Sets the thread TIDs to track. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### Builder

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder ()
```

<br />

<br />

### Builder

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder (CpuHeadroomParams params)
```

Returns a new builder copy with the same values as the params.

<br />

| Parameters ||
|---|---|
| `params` | `CpuHeadroomParams`: This value cannot be `null`. <br /> |

## Public methods

### build

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CpuHeadroomParams build ()
```

Builds the `https://developer.android.com/reference/android/os/CpuHeadroomParams` object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/CpuHeadroomParams` | This value cannot be `null`. <br /> |

### setCalculationType

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CpuHeadroomParams.Builder setCalculationType (int calculationType)
```

Sets the headroom calculation type.

<br />

<br />

| Parameters ||
|---|---|
| `calculationType` | `int`: Value is one of the following: - `https://developer.android.com/reference/android/os/CpuHeadroomParams#CPU_HEADROOM_CALCULATION_TYPE_MIN` - `https://developer.android.com/reference/android/os/CpuHeadroomParams#CPU_HEADROOM_CALCULATION_TYPE_AVERAGE` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the type is invalid. |

### setCalculationWindowMillis

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CpuHeadroomParams.Builder setCalculationWindowMillis (int windowMillis)
```

Sets the headroom calculation window size in milliseconds.

<br />

<br />

| Parameters ||
|---|---|
| `windowMillis` | `int`: the window size in milliseconds ranges from `https://developer.android.com/reference/android/os/health/SystemHealthManager#getCpuHeadroomCalculationWindowRange()`. The smaller the window size, the larger fluctuation in the headroom value should be expected. The default value can be retrieved from the `https://developer.android.com/reference/android/os/CpuHeadroomParams#getCalculationWindowMillis()`. The device will try to use the closest feasible window size to this param. Value is 1 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the window is invalid. |

### setTids

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CpuHeadroomParams.Builder setTids (int... tids)
```

Sets the thread TIDs to track.


The TIDs should belong to the same of the process that will make the headroom call. And
they should not have different core affinity.


If not set or set to empty, the headroom will be based on the PID of the process making
the call.

<br />

| Parameters ||
|---|---|
| `tids` | `int`: non-null list of TIDs, where maximum size can be read from `https://developer.android.com/reference/android/os/health/SystemHealthManager#getMaxCpuHeadroomTidsSize()`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/CpuHeadroomParams.Builder` | This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the TID is not positive. |