open class FrameData

Known direct subclasses
FrameDataApi24

This class stores duration data for a single frame.

Known indirect subclasses
FrameDataApi31

This class stores duration data for a single frame.


This class stores duration data for a single frame.

Summary

Public constructors

FrameData(
    frameStartNanos: Long,
    frameDurationUiNanos: Long,
    isJank: Boolean,
    states: List<StateInfo>
)

Public functions

open FrameData

Utility method which makes a copy of the items in this object (including copying the items in states into a new List).

open operator Boolean
equals(other: Any?)
open Int
open String

Public properties

Long

The time spent in the UI portion of this frame (in nanoseconds).

Long

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.

Boolean

Whether this frame was determined to be janky, meaning that its duration exceeds the duration determined by the system to indicate jank (@see JankStats.jankHeuristicMultiplier).

List<StateInfo>

The UI/app state during this frame.

Public constructors

FrameData

Added in 1.0.0-beta01
FrameData(
    frameStartNanos: Long,
    frameDurationUiNanos: Long,
    isJank: Boolean,
    states: List<StateInfo>
)

Public functions

copy

Added in 1.0.0-beta01
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

frameDurationUiNanos

Added in 1.0.0-beta01
val frameDurationUiNanosLong

The time spent in the UI portion of this frame (in nanoseconds). This is essentially the time spent on the UI thread to draw this frame, but does not include any time spent on the RenderThread.

frameStartNanos

Added in 1.0.0-beta01
val frameStartNanosLong

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.

isJank

Added in 1.0.0-beta01
val isJankBoolean

Whether this frame was determined to be janky, meaning that its duration exceeds the duration determined by the system to indicate jank (@see JankStats.jankHeuristicMultiplier).

states

Added in 1.0.0-beta01
val statesList<StateInfo>

The UI/app state during this frame. This is the information set by the app, or by other library code, that can be analyzed later to determine the UI state that was current when jank occurred.