千家信息网

基于Instrumentation Framework的开源项目AndroidMonkey是怎样的

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,基于Instrumentation Framework的开源项目AndroidMonkey是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学
千家信息网最后更新 2026年10月31日基于Instrumentation Framework的开源项目AndroidMonkey是怎样的

基于Instrumentation Framework的开源项目AndroidMonkey是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

最大的一个疑问是怎么monkey是用instrumentation来注入event呢?这样的话它怎么做到跨进程应用的事件发送呢?因为根据本人的了解instrumentation框架是不能跨进程的,而monkey是绝对跨进程的!

      @Override  public int fireEvent(Instrumentation testRuner) {              String note;          if (mAction == KeyEvent.ACTION_UP) {                   note = "ACTION_UP";            } else {                         note = "ACTION_DOWN";          }             System.out.println(":Typing Key (" + note + "): " + mKeyCode                              + "    // ");              try { //                      testRuner.sendKeySync(getEvent());                         testRuner.sendKeyDownUpSync(mKeyCode);             } catch (Exception e) {                        System.out.println("Failed to send key (" + note + "): " + mKeyCode                                     + "    // ");                      return MonkeyEvent.INJECT_FAIL;               }             return MonkeyEvent.INJECT_SUCCESS;    }

纠结了一段时间后返回下载地方看了下概览,很短,但很清楚的描述了这个不是我想要的monkey,而是原生monkey的一个修改后做成的android库。既然碰上了就顺便翻译下它的介绍和使用吧,反正就那么几句话,待今后有时间再来进一步研究它了,至于它是否真的如我所言不能跨进程,就留待今后或者大家来验证了。

1. 概览

AndroidMonkey是一个android库。事实上它是在基于原生monkey的基础上做成的一个方便测试和分析(比如:代码覆盖率)的一个测试库。

测试人员/用户可以很方便的使用这个库来创建针对安卓gui应用的随机测试脚本


Why this library:

为什么使用这个库:


  • 使用这个库的话你可以只用几行代码就能编写出针对你的app的随机测试用例


  • 你可以在你的测试代码中加入断言从而很方便的去判断你的SUT(被测系统/应用)的当前情况(如果你用monkey的话是很难做到的)


  • 你可以通过随即测试对你的app做覆盖率分析,这对我们的研究是很有用的(像我现在所做的)(译者注:其实最后这一句话应该这样子去理解:如果你是一个公司的采购,你想去评估一个应用是否足够稳定满足你的需求,那么你就会先试用做一些前期研究)


Code example/代码实例

public class ContactAdderTest extends                 ActivityInstrumentationTestCase2 {          private int NUM_EVENTS = 1000;          public ContactAdderTest() {                 super("com.example.android.contactmanager", ContactAdder.class);         }          @Override         protected void setUp() throws Exception {                 super.setUp();                 setActivityInitialTouchMode(false);          }          public void testMonkeyEvents() {                 Display display = getActivity().getWindowManager().getDefaultDisplay();                 Instrumentation inst = getInstrumentation();                 PackageManager pm = getActivity().getPackageManager();                  Monkey monkey = new Monkey(display,                                 "com.example.android.contactmanager", inst, pm);                  // Generate and fire a random event.                  for (int i = 0; i < NUM_EVENTS; i++) {                         monkey.nextRandomEvent();                 }          } }



2.使用简介

使用简介

简介

以下是介绍如何使用这个库:

详情

C创建android项目

先创建一个Android Test Project项目,通过Android ADT[http://developer.android.com/sdk/eclipse-adt.html] 添加对AndroidMonkey库的引用(引用jar或者项目)

创建测试类

创建一个普通的ActivityInstrumentationTestCase2测试类,然后加入如下的测试用例代码:

public void testMonkeyEvents(){ Display display = getActivity().getWindowManager().getDefaultDisplay(); Instrumentation inst = getInstrumentation(); PackageManager pm = getActivity().getPackageManager(); Monkey monkey = new Monkey(display, packageToTest, inst, pm); for (int i = 0; i < NUM_EVENTS; i++){ monkey.nextRandomEvent(); } }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

测试 代码 项目 应用 简介 研究 清楚 时间 概览 覆盖率 需求 进一 分析 帮助 普通 这样的话 一句话 事件 事实 事实上 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 湖南永感互联网科技有限公司 科技互联网项目 腾讯阿里互联网科技 互联网 科技 广州互联网络科技有限公司 深圳卡尔迅互联网科技有限公司怎么样 海南科技产业互联网平台 温州喔噻互联网科技有限公司 洛阳昕诺飞互联网科技有限公司 坤平互联网科技 互联网新科技动漫ppt素材 互联网科技如何创业 徐州市互联网科技有限公司 工业互联网展湾科技股份有限公司 合肥互联网科技公司公章图片 广东鹅鹅鹅互联网科技有限公司 萌小萌互联网科技河南有限公司 唯美互联网科技 马化腾互联网科技教学 猪兼强互联网科技 西安互联网科技 北京禾田雨橡互联网科技 北京华百购互联网科技有限公司 团飞科技与伯堂互联网服务平台 常德市电业局互联网科技部 互联网科技公司营业执照怎么办理 云南互联网科技学费 互联网科技手抄报图片 北京品多多互联网科技有限公司
0