Most visited

Recently visited

Added in API level 1

Instrumentation

public class Instrumentation
extends Object

java.lang.Object
   ↳ android.app.Instrumentation
Known Direct Subclasses
Known Indirect Subclasses


Base class for implementing application instrumentation code. When running with instrumentation turned on, this class will be instantiated for you before any of the application code, allowing you to monitor all of the interaction the system has with the application. An Instrumentation implementation is described to the system through an AndroidManifest.xml's <instrumentation> tag.

Summary

Nested classes

class Instrumentation.ActivityMonitor

Information about a particular kind of Intent that is being monitored. 

class Instrumentation.ActivityResult

Description of a Activity execution result to return to the original activity. 

Constants

String REPORT_KEY_IDENTIFIER

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the class that is writing the report.

String REPORT_KEY_STREAMRESULT

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies a string which can simply be printed to the output stream.

Public constructors

Instrumentation()

Public methods

Instrumentation.ActivityMonitor addMonitor(String cls, Instrumentation.ActivityResult result, boolean block)

A convenience wrapper for addMonitor(ActivityMonitor) that creates a class matching Instrumentation.ActivityMonitor for you and returns it.

Instrumentation.ActivityMonitor addMonitor(IntentFilter filter, Instrumentation.ActivityResult result, boolean block)

A convenience wrapper for addMonitor(ActivityMonitor) that creates an intent filter matching Instrumentation.ActivityMonitor for you and returns it.

void addMonitor(Instrumentation.ActivityMonitor monitor)

Add a new Instrumentation.ActivityMonitor that will be checked whenever an activity is started.

void callActivityOnCreate(Activity activity, Bundle icicle)

Perform calling of an activity's onCreate(Bundle) method.

void callActivityOnCreate(Activity activity, Bundle icicle, PersistableBundle persistentState)

Perform calling of an activity's onCreate(Bundle) method.

void callActivityOnDestroy(Activity activity)
void callActivityOnNewIntent(Activity activity, Intent intent)

Perform calling of an activity's onNewIntent(Intent) method.

void callActivityOnPause(Activity activity)

Perform calling of an activity's onPause() method.

void callActivityOnPostCreate(Activity activity, Bundle icicle, PersistableBundle persistentState)

Perform calling of an activity's onPostCreate(Bundle) method.

void callActivityOnPostCreate(Activity activity, Bundle icicle)

Perform calling of an activity's onPostCreate(Bundle) method.

void callActivityOnRestart(Activity activity)

Perform calling of an activity's onRestart() method.

void callActivityOnRestoreInstanceState(Activity activity, Bundle savedInstanceState)

Perform calling of an activity's onRestoreInstanceState(Bundle) method.

void callActivityOnRestoreInstanceState(Activity activity, Bundle savedInstanceState, PersistableBundle persistentState)

Perform calling of an activity's onRestoreInstanceState(Bundle) method.

void callActivityOnResume(Activity activity)

Perform calling of an activity's onResume() method.

void callActivityOnSaveInstanceState(Activity activity, Bundle outState, PersistableBundle outPersistentState)

Perform calling of an activity's onSaveInstanceState(Bundle) method.

void callActivityOnSaveInstanceState(Activity activity, Bundle outState)

Perform calling of an activity's onSaveInstanceState(Bundle) method.

void callActivityOnStart(Activity activity)

Perform calling of an activity's onStart() method.

void callActivityOnStop(Activity activity)

Perform calling of an activity's onStop() method.

void callActivityOnUserLeaving(Activity activity)

Perform calling of an activity's onUserLeaveHint() method.

void callApplicationOnCreate(Application app)

Perform calling of the application's onCreate() method.

boolean checkMonitorHit(Instrumentation.ActivityMonitor monitor, int minHits)

Test whether an existing Instrumentation.ActivityMonitor has been hit.

void endPerformanceSnapshot()
void finish(int resultCode, Bundle results)

Terminate instrumentation of the application.

Bundle getAllocCounts()

Returns a bundle with the current results from the allocation counting.

Bundle getBinderCounts()

Returns a bundle with the counts for various binder counts for this process.

ComponentName getComponentName()

Returns complete component name of this instrumentation.

Context getContext()

Return the Context of this instrumentation's package.

Context getTargetContext()

Return a Context for the target application being instrumented.

UiAutomation getUiAutomation(int flags)

Gets the UiAutomation instance with flags set.

UiAutomation getUiAutomation()

Gets the UiAutomation instance with no flags set.

boolean invokeContextMenuAction(Activity targetActivity, int id, int flag)

Show the context menu for the currently focused view and executes a particular context menu item.

boolean invokeMenuActionSync(Activity targetActivity, int id, int flag)

Execute a particular menu item.

boolean isProfiling()

Check whether this instrumentation was started with profiling enabled.

Activity newActivity(Class<?> clazz, Context context, IBinder token, Application application, Intent intent, ActivityInfo info, CharSequence title, Activity parent, String id, Object lastNonConfigurationInstance)

Perform instantiation of an Activity object.

Activity newActivity(ClassLoader cl, String className, Intent intent)

Perform instantiation of the process's Activity object.

Application newApplication(ClassLoader cl, String className, Context context)

Perform instantiation of the process's Application object.

static Application newApplication(Class<?> clazz, Context context)

Perform instantiation of the process's Application object.

void onCreate(Bundle arguments)

Called when the instrumentation is starting, before any application code has been loaded.

void onDestroy()

Called when the instrumented application is stopping, after all of the normal application cleanup has occurred.

boolean onException(Object obj, Throwable e)

This is called whenever the system captures an unhandled exception that was thrown by the application.

void onStart()

Method where the instrumentation thread enters execution.

void removeMonitor(Instrumentation.ActivityMonitor monitor)

Remove an Instrumentation.ActivityMonitor that was previously added with addMonitor(Instrumentation.ActivityMonitor).

void runOnMainSync(Runnable runner)

Execute a call on the application's main thread, blocking until it is complete.

void sendCharacterSync(int keyCode)

Higher-level method for sending both the down and up key events for a particular character key code.

void sendKeyDownUpSync(int key)

Sends an up and down key event sync to the currently focused window.

void sendKeySync(KeyEvent event)

Send a key event to the currently focused window/view and wait for it to be processed.

void sendPointerSync(MotionEvent event)

Dispatch a pointer event.

void sendStatus(int resultCode, Bundle results)

Provide a status report about the application.

void sendStringSync(String text)

Sends the key events corresponding to the text to the app being instrumented.

void sendTrackballEventSync(MotionEvent event)

Dispatch a trackball event.

void setAutomaticPerformanceSnapshots()
void setInTouchMode(boolean inTouch)

Force the global system in or out of touch mode.

void start()

Create and start a new thread in which to run instrumentation.

Activity startActivitySync(Intent intent)

Start a new activity and wait for it to begin running before returning.

void startAllocCounting()
void startPerformanceSnapshot()
void startProfiling()

This method will start profiling if isProfiling() returns true.

void stopAllocCounting()
void stopProfiling()

Stops profiling if isProfiling() returns true.

void waitForIdle(Runnable recipient)

Schedule a callback for when the application's main thread goes idle (has no more events to process).

void waitForIdleSync()

Synchronously wait for the application to be idle.

Activity waitForMonitor(Instrumentation.ActivityMonitor monitor)

Wait for an existing Instrumentation.ActivityMonitor to be hit.

Activity waitForMonitorWithTimeout(Instrumentation.ActivityMonitor monitor, long timeOut)

Wait for an existing Instrumentation.ActivityMonitor to be hit till the timeout expires.

Inherited methods

From class java.lang.Object

Constants

REPORT_KEY_IDENTIFIER

Added in API level 1
String REPORT_KEY_IDENTIFIER

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the class that is writing the report. This can be used to provide more structured logging or reporting capabilities in the IInstrumentationWatcher.

Constant Value: "id"

REPORT_KEY_STREAMRESULT

Added in API level 1
String REPORT_KEY_STREAMRESULT

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies a string which can simply be printed to the output stream. Using these streams provides a "pretty printer" version of the status & final packets. Any bundles including this key should also include the complete set of raw key/value pairs, so that the instrumentation can also be launched, and results collected, by an automated system.

Constant Value: "stream"

Public constructors

Instrumentation

Added in API level 1
Instrumentation ()

Public methods

addMonitor

Added in API level 1
Instrumentation.ActivityMonitor addMonitor (String cls, 
                Instrumentation.ActivityResult result, 
                boolean block)

A convenience wrapper for addMonitor(ActivityMonitor) that creates a class matching Instrumentation.ActivityMonitor for you and returns it.

Parameters
cls String: The activity class this monitor is responsible for.
result Instrumentation.ActivityResult: A canned result to return if the monitor is hit; can be null.
block boolean: Controls whether the monitor should block the activity start (returning its canned result) or let the call proceed.
Returns
Instrumentation.ActivityMonitor The newly created and added activity monitor.

See also:

addMonitor

Added in API level 1
Instrumentation.ActivityMonitor addMonitor (IntentFilter filter, 
                Instrumentation.ActivityResult result, 
                boolean block)

A convenience wrapper for addMonitor(ActivityMonitor) that creates an intent filter matching Instrumentation.ActivityMonitor for you and returns it.

Parameters
filter IntentFilter: The set of intents this monitor is responsible for.
result Instrumentation.ActivityResult: A canned result to return if the monitor is hit; can be null.
block boolean: Controls whether the monitor should block the activity start (returning its canned result) or let the call proceed.
Returns
Instrumentation.ActivityMonitor The newly created and added activity monitor.

See also:

addMonitor

Added in API level 1
void addMonitor (Instrumentation.ActivityMonitor monitor)

Add a new Instrumentation.ActivityMonitor that will be checked whenever an activity is started. The monitor is added after any existing ones; the monitor will be hit only if none of the existing monitors can themselves handle the Intent.

Parameters
monitor Instrumentation.ActivityMonitor: The new ActivityMonitor to see.

See also:

callActivityOnCreate

Added in API level 1
void callActivityOnCreate (Activity activity, 
                Bundle icicle)

Perform calling of an activity's onCreate(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being created.
icicle Bundle: The previously frozen state (or null) to pass through to onCreate().

callActivityOnCreate

Added in API level 21
void callActivityOnCreate (Activity activity, 
                Bundle icicle, 
                PersistableBundle persistentState)

Perform calling of an activity's onCreate(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being created.
icicle Bundle: The previously frozen state (or null) to pass through to
persistentState PersistableBundle: The previously persisted state (or null)

callActivityOnDestroy

Added in API level 1
void callActivityOnDestroy (Activity activity)

Parameters
activity Activity

callActivityOnNewIntent

Added in API level 1
void callActivityOnNewIntent (Activity activity, 
                Intent intent)

Perform calling of an activity's onNewIntent(Intent) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity receiving a new Intent.
intent Intent: The new intent being received.

callActivityOnPause

Added in API level 1
void callActivityOnPause (Activity activity)

Perform calling of an activity's onPause() method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being paused.

callActivityOnPostCreate

Added in API level 21
void callActivityOnPostCreate (Activity activity, 
                Bundle icicle, 
                PersistableBundle persistentState)

Perform calling of an activity's onPostCreate(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being created.
icicle Bundle: The previously frozen state (or null) to pass through to onPostCreate().
persistentState PersistableBundle

callActivityOnPostCreate

Added in API level 1
void callActivityOnPostCreate (Activity activity, 
                Bundle icicle)

Perform calling of an activity's onPostCreate(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being created.
icicle Bundle: The previously frozen state (or null) to pass through to onPostCreate().

callActivityOnRestart

Added in API level 1
void callActivityOnRestart (Activity activity)

Perform calling of an activity's onRestart() method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being restarted.

callActivityOnRestoreInstanceState

Added in API level 1
void callActivityOnRestoreInstanceState (Activity activity, 
                Bundle savedInstanceState)

Perform calling of an activity's onRestoreInstanceState(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being restored.
savedInstanceState Bundle: The previously saved state being restored.

callActivityOnRestoreInstanceState

Added in API level 21
void callActivityOnRestoreInstanceState (Activity activity, 
                Bundle savedInstanceState, 
                PersistableBundle persistentState)

Perform calling of an activity's onRestoreInstanceState(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being restored.
savedInstanceState Bundle: The previously saved state being restored.
persistentState PersistableBundle: The previously persisted state (or null)

callActivityOnResume

Added in API level 1
void callActivityOnResume (Activity activity)

Perform calling of an activity's onResume() method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being resumed.

callActivityOnSaveInstanceState

Added in API level 21
void callActivityOnSaveInstanceState (Activity activity, 
                Bundle outState, 
                PersistableBundle outPersistentState)

Perform calling of an activity's onSaveInstanceState(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being saved.
outState Bundle: The bundle to pass to the call.
outPersistentState PersistableBundle: The persistent bundle to pass to the call.

callActivityOnSaveInstanceState

Added in API level 1
void callActivityOnSaveInstanceState (Activity activity, 
                Bundle outState)

Perform calling of an activity's onSaveInstanceState(Bundle) method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being saved.
outState Bundle: The bundle to pass to the call.

callActivityOnStart

Added in API level 1
void callActivityOnStart (Activity activity)

Perform calling of an activity's onStart() method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being started.

callActivityOnStop

Added in API level 1
void callActivityOnStop (Activity activity)

Perform calling of an activity's onStop() method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being stopped.

callActivityOnUserLeaving

Added in API level 3
void callActivityOnUserLeaving (Activity activity)

Perform calling of an activity's onUserLeaveHint() method. The default implementation simply calls through to that method.

Parameters
activity Activity: The activity being notified that the user has navigated away

callApplicationOnCreate

Added in API level 1
void callApplicationOnCreate (Application app)

Perform calling of the application's onCreate() method. The default implementation simply calls through to that method.

Note: This method will be called immediately after onCreate(Bundle). Often instrumentation tests start their test thread in onCreate(); you need to be careful of races between these. (Well between it and everything else, but let's start here.)

Parameters
app Application: The application being created.

checkMonitorHit

Added in API level 1
boolean checkMonitorHit (Instrumentation.ActivityMonitor monitor, 
                int minHits)

Test whether an existing Instrumentation.ActivityMonitor has been hit. If the monitor has been hit at least minHits times, then it will be removed from the activity monitor list and true returned. Otherwise it is left as-is and false is returned.

Parameters
monitor Instrumentation.ActivityMonitor: The ActivityMonitor to check.
minHits int: The minimum number of hits required.
Returns
boolean True if the hit count has been reached, else false.

See also:

endPerformanceSnapshot

Added in API level 1
void endPerformanceSnapshot ()

finish

Added in API level 1
void finish (int resultCode, 
                Bundle results)

Terminate instrumentation of the application. This will cause the application process to exit, removing this instrumentation from the next time the application is started.

Parameters
resultCode int: Overall success/failure of instrumentation.
results Bundle: Any results to send back to the code that started the instrumentation.

getAllocCounts

Added in API level 1
Bundle getAllocCounts ()

Returns a bundle with the current results from the allocation counting.

Returns
Bundle

getBinderCounts

Added in API level 1
Bundle getBinderCounts ()

Returns a bundle with the counts for various binder counts for this process. Currently the only two that are reported are the number of send and the number of received transactions.

Returns
Bundle

getComponentName

Added in API level 1
ComponentName getComponentName ()

Returns complete component name of this instrumentation.

Returns
ComponentName Returns the complete component name for this instrumentation.

getContext

Added in API level 1
Context getContext ()

Return the Context of this instrumentation's package. Note that this is often different than the Context of the application being instrumentated, since the instrumentation code often lives is a different package than that of the application it is running against. See getTargetContext() to retrieve a Context for the target application.

Returns
Context The instrumentation's package context.

See also:

getTargetContext

Added in API level 1
Context getTargetContext ()

Return a Context for the target application being instrumented. Note that this is often different than the Context of the instrumentation code, since the instrumentation code often lives is a different package than that of the application it is running against. See getContext() to retrieve a Context for the instrumentation code.

Returns
Context A Context in the target application.

See also:

getUiAutomation

Added in API level 24
UiAutomation getUiAutomation (int flags)

Gets the UiAutomation instance with flags set.

Note: The APIs exposed via the returned UiAutomation work across application boundaries while the APIs exposed by the instrumentation do not. For example, sendPointerSync(MotionEvent) will not allow you to inject the event in an app different from the instrumentation target, while injectInputEvent(android.view.InputEvent, boolean) will work regardless of the current application.

A typical test case should be using either the UiAutomation or Instrumentation APIs. Using both APIs at the same time is not a mistake by itself but a client has to be aware of the APIs limitations.

If a UiAutomation exists with different flags, the flags on that instance will be changed, and then it will be returned.

Parameters
flags int: The flags to be passed to the UiAutomation, for example FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES.
Returns
UiAutomation The UI automation instance.

See also:

getUiAutomation

Added in API level 18
UiAutomation getUiAutomation ()

Gets the UiAutomation instance with no flags set.

Note: The APIs exposed via the returned UiAutomation work across application boundaries while the APIs exposed by the instrumentation do not. For example, sendPointerSync(MotionEvent) will not allow you to inject the event in an app different from the instrumentation target, while injectInputEvent(android.view.InputEvent, boolean) will work regardless of the current application.

A typical test case should be using either the UiAutomation or Instrumentation APIs. Using both APIs at the same time is not a mistake by itself but a client has to be aware of the APIs limitations.

Equivalent to getUiAutomation(0). If a UiAutomation exists with different flags, the flags on that instance will be changed, and then it will be returned.

Returns
UiAutomation The UI automation instance.

See also:

invokeContextMenuAction

Added in API level 1
boolean invokeContextMenuAction (Activity targetActivity, 
                int id, 
                int flag)

Show the context menu for the currently focused view and executes a particular context menu item.

Parameters
targetActivity Activity: The activity in question.
id int: The identifier associated with the context menu item.
flag int: Additional flags, if any.
Returns
boolean Whether the invocation was successful (for example, it could be false if item is disabled).

invokeMenuActionSync

Added in API level 1
boolean invokeMenuActionSync (Activity targetActivity, 
                int id, 
                int flag)

Execute a particular menu item.

Parameters
targetActivity Activity: The activity in question.
id int: The identifier associated with the menu item.
flag int: Additional flags, if any.
Returns
boolean Whether the invocation was successful (for example, it could be false if item is disabled).

isProfiling

Added in API level 1
boolean isProfiling ()

Check whether this instrumentation was started with profiling enabled.

Returns
boolean Returns true if profiling was enabled when starting, else false.

newActivity

Added in API level 1
Activity newActivity (Class<?> clazz, 
                Context context, 
                IBinder token, 
                Application application, 
                Intent intent, 
                ActivityInfo info, 
                CharSequence title, 
                Activity parent, 
                String id, 
                Object lastNonConfigurationInstance)

Perform instantiation of an Activity object. This method is intended for use with unit tests, such as android.test.ActivityUnitTestCase. The activity will be useable locally but will be missing some of the linkages necessary for use within the sytem.

Parameters
clazz Class: The Class of the desired Activity
context Context: The base context for the activity to use
token IBinder: The token for this activity to communicate with
application Application: The application object (if any)
intent Intent: The intent that started this Activity
info ActivityInfo: ActivityInfo from the manifest
title CharSequence: The title, typically retrieved from the ActivityInfo record
parent Activity: The parent Activity (if any)
id String: The embedded Id (if any)
lastNonConfigurationInstance Object: Arbitrary object that will be available via Activity.getLastNonConfigurationInstance().
Returns
Activity Returns the instantiated activity
Throws
InstantiationException
IllegalAccessException
InstantiationException

newActivity

Added in API level 1
Activity newActivity (ClassLoader cl, 
                String className, 
                Intent intent)

Perform instantiation of the process's Activity object. The default implementation provides the normal system behavior.

Parameters
cl ClassLoader: The ClassLoader with which to instantiate the object.
className String: The name of the class implementing the Activity object.
intent Intent: The Intent object that specified the activity class being instantiated.
Returns
Activity The newly instantiated Activity object.
Throws
InstantiationException
IllegalAccessException
ClassNotFoundException

newApplication

Added in API level 1
Application newApplication (ClassLoader cl, 
                String className, 
                Context context)

Perform instantiation of the process's Application object. The default implementation provides the normal system behavior.

Parameters
cl ClassLoader: The ClassLoader with which to instantiate the object.
className String: The name of the class implementing the Application object.
context Context: The context to initialize the application with
Returns
Application The newly instantiated Application object.
Throws
InstantiationException
IllegalAccessException
ClassNotFoundException

newApplication

Added in API level 1
Application newApplication (Class<?> clazz, 
                Context context)

Perform instantiation of the process's Application object. The default implementation provides the normal system behavior.

Parameters
clazz Class: The class used to create an Application object from.
context Context: The context to initialize the application with
Returns
Application The newly instantiated Application object.
Throws
InstantiationException
IllegalAccessException
ClassNotFoundException

onCreate

Added in API level 1
void onCreate (Bundle arguments)

Called when the instrumentation is starting, before any application code has been loaded. Usually this will be implemented to simply call start() to begin the instrumentation thread, which will then continue execution in onStart().

If you do not need your own thread -- that is you are writing your instrumentation to be completely asynchronous (returning to the event loop so that the application can run), you can simply begin your instrumentation here, for example call startActivity(Intent) to begin the appropriate first activity of the application.

Parameters
arguments Bundle: Any additional arguments that were supplied when the instrumentation was started.

onDestroy

Added in API level 1
void onDestroy ()

Called when the instrumented application is stopping, after all of the normal application cleanup has occurred.

onException

Added in API level 1
boolean onException (Object obj, 
                Throwable e)

This is called whenever the system captures an unhandled exception that was thrown by the application. The default implementation simply returns false, allowing normal system handling of the exception to take place.

Parameters
obj Object: The client object that generated the exception. May be an Application, Activity, BroadcastReceiver, Service, or null.
e Throwable: The exception that was thrown.
Returns
boolean To allow normal system exception process to occur, return false. If true is returned, the system will proceed as if the exception didn't happen.

onStart

Added in API level 1
void onStart ()

Method where the instrumentation thread enters execution. This allows you to run your instrumentation code in a separate thread than the application, so that it can perform blocking operation such as sendKeySync(KeyEvent) or startActivitySync(Intent).

You will typically want to call finish() when this function is done, to end your instrumentation.

removeMonitor

Added in API level 1
void removeMonitor (Instrumentation.ActivityMonitor monitor)

Remove an Instrumentation.ActivityMonitor that was previously added with addMonitor(Instrumentation.ActivityMonitor).

Parameters
monitor Instrumentation.ActivityMonitor: The monitor to remove.

See also:

runOnMainSync

Added in API level 1
void runOnMainSync (Runnable runner)

Execute a call on the application's main thread, blocking until it is complete. Useful for doing things that are not thread-safe, such as looking at or modifying the view hierarchy.

Parameters
runner Runnable: The code to run on the main thread.

sendCharacterSync

Added in API level 1
void sendCharacterSync (int keyCode)

Higher-level method for sending both the down and up key events for a particular character key code. Equivalent to creating both KeyEvent objects by hand and calling sendKeySync(KeyEvent). The event appears as if it came from keyboard 0, the built in one.

Parameters
keyCode int: The key code of the character to send.

sendKeyDownUpSync

Added in API level 1
void sendKeyDownUpSync (int key)

Sends an up and down key event sync to the currently focused window.

Parameters
key int: The integer keycode for the event.

sendKeySync

Added in API level 1
void sendKeySync (KeyEvent event)

Send a key event to the currently focused window/view and wait for it to be processed. Finished at some point after the recipient has returned from its event processing, though it may not have completely finished reacting from the event -- for example, if it needs to update its display as a result, it may still be in the process of doing that.

Parameters
event KeyEvent: The event to send to the current focus.

sendPointerSync

Added in API level 1
void sendPointerSync (MotionEvent event)

Dispatch a pointer event. Finished at some point after the recipient has returned from its event processing, though it may not have completely finished reacting from the event -- for example, if it needs to update its display as a result, it may still be in the process of doing that.

Parameters
event MotionEvent: A motion event describing the pointer action. (As noted in obtain(long, long, int, float, float, int), be sure to use uptimeMillis() as the timebase.

sendStatus

Added in API level 1
void sendStatus (int resultCode, 
                Bundle results)

Provide a status report about the application.

Parameters
resultCode int: Current success/failure of instrumentation.
results Bundle: Any results to send back to the code that started the instrumentation.

sendStringSync

Added in API level 1
void sendStringSync (String text)

Sends the key events corresponding to the text to the app being instrumented.

Parameters
text String: The text to be sent.

sendTrackballEventSync

Added in API level 1
void sendTrackballEventSync (MotionEvent event)

Dispatch a trackball event. Finished at some point after the recipient has returned from its event processing, though it may not have completely finished reacting from the event -- for example, if it needs to update its display as a result, it may still be in the process of doing that.

Parameters
event MotionEvent: A motion event describing the trackball action. (As noted in obtain(long, long, int, float, float, int), be sure to use uptimeMillis() as the timebase.

setAutomaticPerformanceSnapshots

Added in API level 1
void setAutomaticPerformanceSnapshots ()

setInTouchMode

Added in API level 1
void setInTouchMode (boolean inTouch)

Force the global system in or out of touch mode. This can be used if your instrumentation relies on the UI being in one more or the other when it starts.

Parameters
inTouch boolean: Set to true to be in touch mode, false to be in focus mode.

start

Added in API level 1
void start ()

Create and start a new thread in which to run instrumentation. This new thread will call to onStart() where you can implement the instrumentation.

startActivitySync

Added in API level 1
Activity startActivitySync (Intent intent)

Start a new activity and wait for it to begin running before returning. In addition to being synchronous, this method as some semantic differences from the standard startActivity(Intent) call: the activity component is resolved before talking with the activity manager (its class name is specified in the Intent that this method ultimately starts), and it does not allow you to start activities that run in a different process. In addition, if the given Intent resolves to multiple activities, instead of displaying a dialog for the user to select an activity, an exception will be thrown.

The function returns as soon as the activity goes idle following the call to its onCreate(Bundle). Generally this means it has gone through the full initialization including onResume() and drawn and displayed its initial window.

Parameters
intent Intent: Description of the activity to start.
Returns
Activity

See also:

startAllocCounting

Added in API level 1
void startAllocCounting ()

startPerformanceSnapshot

Added in API level 1
void startPerformanceSnapshot ()

startProfiling

Added in API level 1
void startProfiling ()

This method will start profiling if isProfiling() returns true. You should only call this method if you set the handleProfiling attribute in the manifest file for this Instrumentation to true.

stopAllocCounting

Added in API level 1
void stopAllocCounting ()

stopProfiling

Added in API level 1
void stopProfiling ()

Stops profiling if isProfiling() returns true.

waitForIdle

Added in API level 1
void waitForIdle (Runnable recipient)

Schedule a callback for when the application's main thread goes idle (has no more events to process).

Parameters
recipient Runnable: Called the next time the thread's message queue is idle.

waitForIdleSync

Added in API level 1
void waitForIdleSync ()

Synchronously wait for the application to be idle. Can not be called from the main application thread -- use start() to execute instrumentation in its own thread.

waitForMonitor

Added in API level 1
Activity waitForMonitor (Instrumentation.ActivityMonitor monitor)

Wait for an existing Instrumentation.ActivityMonitor to be hit. Once the monitor has been hit, it is removed from the activity monitor list and the first created Activity object that matched it is returned.

Parameters
monitor Instrumentation.ActivityMonitor: The ActivityMonitor to wait for.
Returns
Activity The Activity object that matched the monitor.

waitForMonitorWithTimeout

Added in API level 1
Activity waitForMonitorWithTimeout (Instrumentation.ActivityMonitor monitor, 
                long timeOut)

Wait for an existing Instrumentation.ActivityMonitor to be hit till the timeout expires. Once the monitor has been hit, it is removed from the activity monitor list and the first created Activity object that matched it is returned. If the timeout expires, a null object is returned.

Parameters
monitor Instrumentation.ActivityMonitor: The ActivityMonitor to wait for.
timeOut long: The timeout value in secs.
Returns
Activity The Activity object that matched the monitor.

Hooray!