Added in API level 21

WindowContentFrameStats


class WindowContentFrameStats : FrameStats, Parcelable
kotlin.Any
   ↳ android.view.FrameStats
   ↳ android.view.WindowContentFrameStats

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
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
Properties
static Parcelable.Creator<WindowContentFrameStats!>

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!>