android.app.instrumentation

什么是Instrumentation?

Instrumentation是执行application instrumentation代码的基类。当应用程序运行的时候instrumentation处于开启,Instrumentation将在任何应用程序运行前初始化,可以通过它监测系统与应用程序之间的交互。Instrumentation implementation通过的AndroidManifest.xml中的<instrumentation>标签进行描述。

Instrumentation似乎有些类似与window中的“钩子(Hook)函数”,在系统与应用程序之间安装了个“窃听器”。

android.app包中Instrumentation类结构,如下图所示

 

其包含有2个内部类:ActivityMoniter、ActivityResult

  • ActivityMoniter:有关特定的Intent的监视。一个ActivityMoniter类的实例通过函数addMonitor(Instrumentation.ActivityMonitor)添加到当前instrumentation中,一旦添加后,每当启动一个新的Activity,ActivityMoniter就会检测,如果匹配,其hit count计数更新等其他操作。 一个ActivityMonitor也可以用来寻找一个Activity,通过waitForActivity()方法,这个函数将返直到匹配的活动被创建。
  • ActivityResult:一个活动执行的结果说明,返回到原来的活动。

然后我们看下Instrumentation类的函数,列举其主要函数如下:

添加、删除ActivityMoniter;

 

Application、Activity的创建与生命周期的控制;

 

控制Instrumentation的运行;

 

发送按键、滚动球等事件消息到当前窗口;

 

同步方面的操作;

  1. 创建一个Activity直到Activity开始运行;
  2. 在主线程中执行一个调用,主线程被阻滞直到调用结束 ;
  3. 当主线程空闲的时候(没有消息等待处理)执行一个调用;
  4. 同步等待主线程处于空闲期

 

文章来源:http://www.moandroid.com/?p=1246

 

 

你可能感兴趣的:(android.app.instrumentation)