MonitoringInstrumentation


public class MonitoringInstrumentation extends Instrumentation

Known direct subclasses
AndroidJUnitRunner

An Instrumentation that runs JUnit3 and JUnit4 tests against an Android package (application).

Known indirect subclasses
AndroidBenchmarkRunner

Instrumentation runner for benchmarks, used to increase stability of measurements and minimize interference.


An instrumentation that enables several advanced features and makes some hard guarantees about the state of the application under instrumentation.

A short list of these capabilities:

  • Forces Application.onCreate() to happen before Instrumentation.onStart() runs (ensuring your code always runs in a sane state).
  • Logs application death due to exceptions.
  • Allows tracking of activity lifecycle states.
  • Registers instrumentation arguments in an easy to access place.
  • Ensures your activities are creating themselves in reasonable amounts of time.
  • Provides facilities to dump current app threads to test outputs.
  • Ensures all activities finish before instrumentation exits.
This Instrumentation is *NOT* a test instrumentation (some of its subclasses are). It makes no assumptions about what the subclass wants to do.

Summary

Nested types

Loops through all the activities that have not yet finished and explicitly calls finish on them.

Public constructors

Public methods

void
callActivityOnCreate(Activity activity, Bundle bundle)
void
void
void
void
void
void
void
void
execStartActivities(
    Context who,
    IBinder contextThread,
    IBinder token,
    Activity target,
    Intent[] intents,
    Bundle options
)
Instrumentation.ActivityResult
execStartActivity(
    Context who,
    IBinder contextThread,
    IBinder token,
    Activity target,
    Intent intent,
    int requestCode
)
Instrumentation.ActivityResult
execStartActivity(
    Context who,
    IBinder contextThread,
    IBinder token,
    Activity target,
    Intent intent,
    int requestCode,
    Bundle options
)
Instrumentation.ActivityResult
execStartActivity(
    Context who,
    IBinder contextThread,
    IBinder token,
    Fragment target,
    Intent intent,
    int requestCode,
    Bundle options
)
Instrumentation.ActivityResult
execStartActivity(
    Context who,
    IBinder contextThread,
    IBinder token,
    String target,
    Intent intent,
    int requestCode,
    Bundle options
)

This API was added in Android API 23 (M)

Instrumentation.ActivityResult
execStartActivity(
    Context who,
    IBinder contextThread,
    IBinder token,
    Activity target,
    Intent intent,
    int requestCode,
    Bundle options,
    UserHandle user
)

This API was added in Android API 17 (JELLY_BEAN_MR1)

void
finish(int resultCode, Bundle results)

Ensures all activities launched in this instrumentation are finished before the instrumentation exits.

void
interceptActivityUsing(
    InterceptingActivityFactory interceptingActivityFactory
)

Use the given InterceptingActivityFactory to create Activity instance in newActivity.

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

Does initialization before creating the application.

void
onCreate(Bundle arguments)

Sets up lifecycle monitoring, and argument registry.

void
boolean
void

This implementation of onStart() will guarantee that the Application's onCreate method has completed when it returns.

void

Posts a runnable to the main thread and blocks the caller's thread until the runnable is executed.

Activity
void

Use default mechanism of creating activity instance in newActivity

Protected methods

void
String
void
void

Perform application MultiDex installation only when instrumentation installation is not available.

final boolean

Checks whether this instance of instrumentation should be considered as a primary instrumentation process.

boolean

This method is deprecated.

use isPrimaryInstrProcess()

void
final void
boolean
void
Throwable

Unwraps an exception from certain wrapper types, e.g. RuntimeException.

void

Ensures we've onStopped() all activities which were onStarted().

Inherited Constants

From android.app.Instrumentation
static final String
static final String

Inherited methods

From android.app.Instrumentation
TestLooperManager
void
Instrumentation.ActivityMonitor
addMonitor(
    IntentFilter filter,
    Instrumentation.ActivityResult result,
    boolean block
)
void
addResults(Bundle results)
void
void
void
callActivityOnPostCreate(Activity activity, Bundle savedInstanceState)
void
callActivityOnRestoreInstanceState(
    Activity activity,
    Bundle savedInstanceState
)
void
void
boolean
void
Bundle
Bundle
ComponentName
Context
String
Context
UiAutomation
boolean
invokeContextMenuAction(Activity targetActivity, int id, int flag)
boolean
invokeMenuActionSync(Activity targetActivity, int id, int flag)
boolean
static Application
newApplication(Class<Object> clazz, Context context)
void
void
void
sendCharacterSync(int keyCode)
void
sendKeyDownUpSync(int keyCode)
void
void
void
sendStatus(int resultCode, Bundle results)
void
void
void
void
setInTouchMode(boolean inTouch)
void
void

This method is deprecated.

void
void
void

This method is deprecated.

void
void
waitForIdle(Runnable recipient)
void
Activity
Activity
waitForMonitorWithTimeout(
    Instrumentation.ActivityMonitor monitor,
    long timeOut
)

Public constructors

MonitoringInstrumentation

public MonitoringInstrumentation()

Public methods

callActivityOnCreate

public void callActivityOnCreate(Activity activity, Bundle bundle)

callActivityOnDestroy

public void callActivityOnDestroy(Activity activity)

callActivityOnPause

public void callActivityOnPause(Activity activity)

callActivityOnRestart

public void callActivityOnRestart(Activity activity)

callActivityOnResume

public void callActivityOnResume(Activity activity)

callActivityOnStart

public void callActivityOnStart(Activity activity)

callActivityOnStop

public void callActivityOnStop(Activity activity)

callApplicationOnCreate

public void callApplicationOnCreate(Application app)

execStartActivities

public void execStartActivities(
    Context who,
    IBinder contextThread,
    IBinder token,
    Activity target,
    Intent[] intents,
    Bundle options
)

execStartActivity

public Instrumentation.ActivityResult execStartActivity(
    Context who,
    IBinder contextThread,
    IBinder token,
    Activity target,
    Intent intent,
    int requestCode
)

execStartActivity

public Instrumentation.ActivityResult execStartActivity(
    Context who,
    IBinder contextThread,
    IBinder token,
    Activity target,
    Intent intent,
    int requestCode,
    Bundle options
)

execStartActivity

public Instrumentation.ActivityResult