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

发布时间:2021-11-22 19:19:28 作者:柒染
来源:亿速云 阅读:201

基于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:

为什么使用这个库:


Code example/代码实例

public class ContactAdderTest extends                 ActivityInstrumentationTestCase2<ContactAdder> {          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(); } }

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

推荐阅读:
  1. WCF开源地带举例分析
  2. 什么是.NET Core它与.NET Framework有什么区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

instrumentation framework

上一篇:怎样解析html5

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》