第8章7节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-小结
最后我们对MonkeyRunner启动的过程做一个总结,当然,当中也包括启动Monkey,尽管它不属于启动过程的一部分:
- monkeyrunner这个shell脚本会先设置一些执行环境的系统属性保存到JVM的System.Propery里面
- 然后该脚本会通过java -jar直接执行sdk以下的monkeyruner.jar
- 然后操作系统直接回调到monkeyrunner在MonkeyRunnerStarter里面的入口函数main
- 入口函数会先尝试实例化MonkeyRunnerStarter的实例
- 实例化MonkeyRunnerStarter时会去实例化ChimpChat这个类
- 实例化ChimpChat这个类的时候会去创建AndroidDebugBridge对象启动一个ADBserver进程来进行与adbserver以及目标设备的adb守护进程通讯
- 实例化ChimpChat时还会在上面创建的AndroidDebugBridge对象的基础上创建DeviceMonitor对象并启动一个线程来监控和维护连接到主机PC的代表Android设备的Device列表,由于监控设备时须要通过往ADBserver发送不同的监控命令来实现的。比方监控设备的时候须要往ADBserver发送”host: track-devices”主机服务请求来周期性获取ADBserver发送过来的最新设备列表;监控每一个可调试进程须要发送”track-jdwp”来周期性获取进程PID信息。
- 在以上都准备好后就会尝试启动jython编译器的console或者直接调用jython编译器去解析执行脚本
- 在上面的整个MonkeyRunner的启动过程中并没有包括monkey的启动。monkey的启动是在用户编写脚本时候调用MonkeyRunner类的waitForConnection所牵涉的一系列调用过程中启动的。同一时候waitForConnection还会创建两个非常重要的设备对象,一个是专门接受处理monkey请求的ChimpManager对象。一个是囊括了往monkey发送请求和往ADBserverDevice发送请求的AdbChimpDevice类的实例对象
注:很多其它文章请关注公众号:techgogogo或个人博客http://techgogogo.com。当然,也非常欢迎您直接微信(zhubaitian1)勾搭。本文由天地会珠海分舵原创。转载请自觉,是否投诉维权看心情。
第8章7节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-小结的更多相关文章
- 老李推荐:第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
老李推荐:第8章7节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-小结 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性 ...
- MonkeyRunner源代码分析之启动
在工作中由于要追求完毕目标的效率,所以很多其它是强调实战.注重招式.关注怎么去用各种框架来实现目的.可是假设一味仅仅是注重招式.缺少对原理这个内功的了解,相信自己非常难对各种框架有更深入的理解. 从几 ...
- Appium Android Bootstrap源代码分析之启动执行
通过前面的两篇文章<Appium Android Bootstrap源代码分析之控件AndroidElement>和<Appium Android Bootstrap源代码分析之命令 ...
- 第8章4节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-启动AndroidDebugBridge
上一节我们看到在启动AndroidDebugBridge的过程中会调用其start方法,而该方法会做2个基本的事情: 715行startAdb:开启AndroidDebugBridge 722-723 ...
- 第6章1节《MonkeyRunner源代码剖析》Monkey原理分析-事件源-事件源概览
在上一章中我们有简要的介绍了事件源是怎么一回事.可是并没有进行详细的描写叙述.那么往下的这几个小节我们就须要把这方面的知识给补充完整. 这一节我们先主要环绕MonkeySourceNetwork这个事 ...
- 第8章5节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-执行測试脚本
MonkeyRunner在准备好AndroidDebugBridge和DeviceMonitor等服务之后,就基本上是攻克了和目标设备通信的问题了,那往下须要做的就是把測试脚本执行起来了. 178 p ...
- 第14章1节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-面向控件编程VS面向坐标编程
到此为止我们描写叙述的MonkeyRunner相应用的点击拖放等操作都是直接通过指定坐标点来实现的.比方以下触摸一个坐标点为(60,90)的按钮的脚本样例: 1 device.touch(60,900 ...
- 第14章8节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树
在上几节的描写叙述中,我们把HierarchyViewer初始化好.也把ViewServer给装备好了.那如今距离获得一个控件去操作它是万事具备仅仅欠东风了,欠了那一股春风了?欠了的是建立控件树这个东 ...
- 第8章2节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-解析处理命令行參数
MonkeyRunnerStarter是MonkeyRunner启动时的入口类,由于它里面包括了main方法.它的整个启动过程主要做了以下几件事情: 解析用户启动MonkeyRunner时从命令行传输 ...
随机推荐
- 34.angularJS的{{}}和ng-bind
转自:https://www.cnblogs.com/best/tag/Angular/ 1. <html> <head> <meta charset="utf ...
- [JZOJ3382] [NOIP2013模拟] 七夕祭 解题报告
Description 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子.于是TYVJ今年举办了一次线下七夕祭.Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩. ...
- Android属性动画-Interpolator和ViewPropertyAnimator的用法
Interpolator的用法 Interpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果.那么什么叫做非线性运 ...
- Python中的self(Python笔记)
self Python中类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值.这个特别的变量指对象本身,按 ...
- vuejs on
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- T_SQL 日期函数
日期函数基数表达式的日期和时间或者是从时间间隔中返回值. GETDATE(),返回当前系统的日期和时间.例: SELECT GETDATE(); 结果为:2010-05-18 15:53:08.92 ...
- Element UI的Table用法
Table 表格 用于展示多条结构类似的数据,可对数据进行排序.筛选.对比或其他自定义操作. ¶基础表格 基 2016-05-02 王小虎 上海市普陀区金沙江路 1518 弄 2016-05-04 王 ...
- gcd步数
题目描述 一个有趣的函数F(a,b),表示对于数对(a,b)调用辗转相除法的步数为多少 例如 (24,40)....0 (16,24).....1 (8,16).....2 (0,8)....3,即f ...
- JZOJ5821手机信号
用set维护,(l,r,v),注意边界,保证了两个端点l,r一定有信号站 增加有三种可能,1.直接加(没有影响),2.将原本的一个区间变成两个 3.将原本的一个区间变成三个 删除有三种情况,1.全包含 ...
- 免费录屏软件之OBS Studio
好久没有再博客活动啦,今天给大家推荐一下录屏软件吧!首先我个人最喜欢的OBS Studio就说说它吧 1.免费.开源.功能强大.易上手 下面是下载地址: 官网下载 : https://ob ...