美国上市公司

亿元级外企IT培训企业

  • 全国服务监督电话400-827-0010
IT培训 > 资料库 > android.app.instrumentation解析
  • android.app.instrumentation解析

    发布:IT培训 来源:资料库 时间:2014-12-29

  • 已经在Android SDK中学习了很多关于JUnit的内容,但是感觉一直有几个问题没有解决(不知道大家是否有同样的感受)JUnit的测试都自动化的,完全是不需要任何 操作的,有2个问题我一直都还没有找到答案,这2个问题如下:

    JUnit可以用来测试Android的基本组成元素:Activity、Service、Provider,那么我们如何控制这些基本元素运行 的,这需要Android系统提供一些底层操作的接口才可以做到。

    如何模拟界面操作,比如说:单击界面上的按钮、选择菜单等。

    对于第二个问题,我在Cview中似乎找到了答案,Cview中提供一些界面操作的函数,例如:performClick(),看来Android SDK还是提供了一些这方面的函数来模拟各种操作。对于第一个问题,本篇对这个问题幅详细说明下。

    首先我们先想下,如果要实现对Activity的测试需要些什么?首先需要创建Activity(这个Android SDK中已经提供了),然后可以控制Activity的生命周期,这些是最基本的。在Android SDK中说明过Activity的创建是异步的,也就是说当我们调用startActivty()后,这个函数立刻返回,而不是等待Activity创建 好后才返回,这就需要一些同步方面的操作。将前面的概括起来就是2个方面:控制Activity的生命周期与同步方面的问题。Android SDK为我们提供了 instrument,在android.test包中InstrumentationTestCase 类有个函数getInstrumentation()以及通过adb shell am instrument启动测试例子的方法中,都提到了instrument,下面就对instrumentation详细说明。

    什么是Instrumentation?

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

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

  • 上一篇:Android、Intent的深入解析

    下一篇:必读.NET常见问题汇总

2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56