Added in API level 21

WindowContentFrameStats


class WindowContentFrameStats : FrameStats, Parcelable

This class contains window content frame statistics. For example, a window content is rendred in frames when a view is scrolled. The frame statistics are a snapshot for the time interval from getStartTimeNano() to getEndTimeNano().

The key idea is that in order to provide a smooth user experience an application has to draw a frame at a specific time interval obtained by calling getRefreshPeriodNano(). If the application does not render a frame every refresh period the user will see irregular UI transitions.

An application posts a frame for presentation by synchronously rendering its contents in a buffer which is then posted or posting a buffer to which the application is asychronously rendering the content via GL. After the frame is posted and rendered (potentially asynchronosly) it is presented to the user. The time a frame was posted can be obtained via getFramePostedTimeNano(int), the time a frame content was rendered and ready for dsiplay (GL case) via getFrameReadyTimeNano(int), and the time a frame was presented on the screen via getFramePresentedTimeNano(int).

Summary

Inherited constants
Int CONTENTS_FILE_DESCRIPTOR

Descriptor bit used with describeContents(): indicates that the Parcelable object's flattened representation includes a file descriptor.

Int PARCELABLE_WRITE_RETURN_VALUE

Flag for use with writeToParcel: the object being written is a return value, that is the result of a function such as "Parcelable someFunction()", "void someFunction(out Parcelable)", or "void someFunction(inout Parcelable)". Some implementations may want to release resources at this point.

Long UNDEFINED_TIME_NANO

Undefined time.

Public methods
Int

Long

Get the time a frame at a given index was posted by the producer (e.g. the application).

Long

Get the time a frame at a given index was ready for presentation.

String

Unit
writeToParcel(parcel: Parcel, flags: Int)

Inherited functions
Long getEndTimeNano()

Gets the end time of the interval for which these statistics apply. The end interval is the time when the last frame was presented.

Int getFrameCount()

Gets the number of frames for which there is data.

Long getFramePresentedTimeNano(index: Int)

Get the time a frame at a given index was presented.

Long getRefreshPeriodNano()

Gets the refresh period of the display hosting the window(s) for which these statistics apply.

Long getStartTimeNano()

Gets the start time of the interval for which these statistics apply. The start interval is the time when the first frame was presented.

Public methods

describeContents

Added in API level 21
fun describeContents(): Int
Return
Int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or android.os.Parcelable#CONTENTS_FILE_DESCRIPTOR

getFramePostedTimeNano

Added in API level 21
fun getFramePostedTimeNano(index: Int): Long

Get the time a frame at a given index was posted by the producer (e.g. the application). It is either explicitly set or defaulted to the time when the render buffer was posted.

Note: A frame can be posted and still it contents being rendered asynchronously in GL. To get the time the frame content was completely rendered and ready to display call getFrameReadyTimeNano(int).

Parameters
index Int: The frame index.
Return
Long The posted time in nanoseconds.

getFrameReadyTimeNano

Added in API level 21
fun getFrameReadyTimeNano(index: Int): Long

Get the time a frame at a given index was ready for presentation.

Note: A frame can be posted and still it contents being rendered asynchronously in GL. In such a case this is the time when the frame contents were completely rendered.

Parameters
index Int: The frame index.
Return
Long The ready time in nanoseconds or UNDEFINED_TIME_NANO if the frame is not ready yet.

toString

Added in API level 21
fun toString(): String
Return
String a string representation of the object.

writeToParcel

Added in API level 21
fun writeToParcel(
    parcel: Parcel,
    flags: Int
): Unit
Parameters
dest The Parcel in which the object should be written. This value cannot be null.
flags Int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of android.os.Parcelable#PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES

Properties

CREATOR

Added in API level 21
static val CREATOR: Parcelable.Creator<WindowContentFrameStats!>

Discover the latest app development tools, platform updates, training, and documentation for developers across every Android device.

Updated Apr 4, 2024

Discover the latest app development tools, platform updates, training, and documentation for developers across every Android device.

Updated Nov 20, 2024

Discover the latest app development tools, platform updates, training, and documentation for developers across every Android device.

Updated Jul 18, 2024