# FrameDataApi24

Artifact: [androidx.metrics:metrics-performance](https://developer.android.com/jetpack/androidx/releases/metrics) [View Source](https://cs.android.com/search?q=file:androidx/metrics/performance/FrameDataApi24.kt+class:androidx.metrics.performance.FrameDataApi24) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/metrics#1.0.0)

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/androidx/metrics/performance/FrameDataApi24 "View this page in Java")


```
open class FrameDataApi24 : FrameData
```

<br />

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.metrics.performance.FrameData](https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData) ||
|   | ↳ | [androidx.metrics.performance.FrameDataApi24](https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24) |

Known direct subclasses [FrameDataApi31](https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi31)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi31` | This class stores duration data for a single frame. |

*** ** * ** ***

This class stores duration data for a single frame.

This subclass of `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData` adds an additional value for `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#(kotlin.Long,kotlin.Long,kotlin.Long,kotlin.Boolean,kotlin.collections.List)`

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/metrics/performance/JankStats#jankHeuristicMultiplier()` |   |
| `https://developer.android.com/reference/kotlin/androidx/metrics/performance/PerformanceMetricsState#putState(kotlin.String,kotlin.String)` |   |

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#FrameDataApi24(kotlin.Long,kotlin.Long,kotlin.Long,kotlin.Boolean,kotlin.collections.List)( frameStartNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, frameDurationUiNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, frameDurationCpuNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isJank: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, states: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/metrics/performance/StateInfo> )` |

| ### Public functions |
|---|---|
| `open https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#copy()()` Utility method which makes a copy of the items in this object (including copying the items in `states` into a new List). |
| `open operator https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#equals(kotlin.Any)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?)` |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#hashCode()()` |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#toString()()` |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#frameDurationCpuNanos()` The time spent in the non-GPU portions of this frame (in nanoseconds). |

| ### Inherited properties |
|---|
| From [androidx.metrics.performance.FrameData](https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData) |---|---| | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData#frameDurationUiNanos()` The time spent in the UI portion of this frame (in nanoseconds). | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData#frameStartNanos()` These backing fields are used to enable mutation of an existing FrameData object, to avoid allocating a new object on every frame for sending out to listeners. | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData#isJank()` Whether this frame was determined to be janky, meaning that its duration exceeds the duration determined by the system to indicate jank (@see `https://developer.android.com/reference/kotlin/androidx/metrics/performance/JankStats#jankHeuristicMultiplier()`). | | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/metrics/performance/StateInfo>` | `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameData#states()` The UI/app state during this frame. | |

## Public constructors

### FrameDataApi24

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

```
FrameDataApi24(
    frameStartNanos: Long,
    frameDurationUiNanos: Long,
    frameDurationCpuNanos: Long,
    isJank: Boolean,
    states: List<StateInfo>
)
```

## Public functions

### copy

```
open fun copy(): FrameData
```

Utility method which makes a copy of the items in this object (including copying the items in `states` into a new List). This is used internally to create a copy to pass along to listeners to avoid having a reference to the internally-mutable FrameData object.

### equals

```
open operator fun equals(other: Any?): Boolean
```

### hashCode

```
open fun hashCode(): Int
```

### toString

```
open fun toString(): String
```

## Public properties

### frameDurationCpuNanos

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

```
val frameDurationCpuNanos: Long
```

The time spent in the non-GPU portions of this frame (in nanoseconds). This includes the time spent on the UI thread `https://developer.android.com/reference/kotlin/androidx/metrics/performance/FrameDataApi24#(kotlin.Long,kotlin.Long,kotlin.Long,kotlin.Boolean,kotlin.collections.List)` plus time spent on the RenderThread.