WindowContentFrameStats


public final class WindowContentFrameStats
extends FrameStats implements Parcelable

java.lang.Object
   ↳ 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 FrameStats.getStartTimeNano() to FrameStats.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 FrameStats.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 FrameStats.getFramePresentedTimeNano(int).

Summary

Inherited constants

long UNDEFINED_TIME_NANO

Undefined time.

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(Parcel, int): 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)".

Fields

public static final Creator<WindowContentFrameStats> CREATOR

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

long getFramePostedTimeNano(int index)

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

long getFrameReadyTimeNano(int index)

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

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel parcel, int flags)

Flatten this object in to a Parcel.

Inherited methods

final long getEndTimeNano()

Gets the end time of the interval for which these statistics apply.

final int getFrameCount()

Gets the number of frames for which there is data.

final long getFramePresentedTimeNano(int index)

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

final long getRefreshPeriodNano()

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

final long getStartTimeNano()

Gets the start time of the interval for which these statistics apply.

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

abstract int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

abstract void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Fields

CREATOR

Added in API level 21
public static final Creator<WindowContentFrameStats> CREATOR

Public methods

describeContents

Added in API level 21
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

getFramePostedTimeNano

Added in API level 21
public long getFramePostedTimeNano (int index)

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.

Returns
long The posted time in nanoseconds.

getFrameReadyTimeNano

Added in API level 21
public long getFrameReadyTimeNano (int index)

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.

Returns
long The ready time in nanoseconds or FrameStats.UNDEFINED_TIME_NANO if the frame is not ready yet.

toString

Added in API level 21
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.

writeToParcel

Added in API level 21
public void writeToParcel (Parcel parcel, 
                int flags)

Flatten this object in to a Parcel.

Parameters
parcel Parcel: 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.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES