public final class FrameDataApi31 extends FrameDataApi24


This class stores duration data for a single frame.

This subclass of FrameData adds an additional value for frameDurationCpuNanos

Summary

Public constructors

FrameDataApi31(
    long frameStartNanos,
    long frameDurationUiNanos,
    long frameDurationCpuNanos,
    long frameDurationTotalNanos,
    long frameOverrunNanos,
    boolean isJank,
    @NonNull List<@NonNull StateInfo> states
)

Public methods

@NonNull FrameData

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

boolean
equals(Object other)
final long

The total time spent rendering this frame (in nanoseconds), which includes both CPU and GPU processing.

final long

The amount of time past the frame deadline that this frame took to complete.

int
@NonNull String

Inherited methods

From androidx.metrics.performance.FrameData
final long

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

final 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.

final @NonNull List<@NonNull StateInfo>

The UI/app state during this frame.

final 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).

From androidx.metrics.performance.FrameDataApi24
final long

The time spent in the non-GPU portions of this frame (in nanoseconds).

Public constructors

FrameDataApi31

Added in 1.0.0-beta01
public FrameDataApi31(
    long frameStartNanos,
    long frameDurationUiNanos,
    long frameDurationCpuNanos,
    long frameDurationTotalNanos,
    long frameOverrunNanos,
    boolean isJank,
    @NonNull List<@NonNull StateInfo> states
)

Public methods

copy

public @NonNull FrameData copy()

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

public boolean equals(Object other)

getFrameDurationTotalNanos

Added in 1.0.0-beta01
public final long getFrameDurationTotalNanos()

The total time spent rendering this frame (in nanoseconds), which includes both CPU and GPU processing.

getFrameOverrunNanos

Added in 1.0.0-beta01
public final long getFrameOverrunNanos()

The amount of time past the frame deadline that this frame took to complete. A positive value indicates some jank, a negative value indicates that the frame was complete within the given deadline.

hashCode

public int hashCode()

toString

public @NonNull String toString()