老李推荐:第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
2015-12-31 17:28
295 查看
老李推荐:第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。最后我们对MonkeyRunner启动的过程做一个总结,当然,其中也包括启动Monkey,虽然它不属于启动过程的一部分:
monkeyrunner这个shell脚本会先设置一些运行环境的系统属性保存到JVM的System.Propery里面
然后该脚本会通过java -jar直接运行sdk下面的monkeyruner.jar
然后操作系统直接回调到monkeyrunner在MonkeyRunnerStarter里面的入口函数main
入口函数会先尝试实例化MonkeyRunnerStarter的实例
实例化MonkeyRunnerStarter时会去实例化ChimpChat这个类
实例化ChimpChat这个类的时候会去创建AndroidDebugBridge对象启动一个ADB服务器进程来进行与adb服务器以及目标设备的adb守护进程通讯
实例化ChimpChat时还会在上面创建的AndroidDebugBridge对象的基础上创建DeviceMonitor对象并启动一个线程来监控和维护连接到主机PC的代表Android设备的Device列表,因为监控设备时需要通过往ADB服务器发送不同的监控命令来实现的。比如监控设备的时候需要往ADB服务器发送”host: track-devices”主机服务请求来周期性获取ADB服务器发送过来的最新设备列表;监控每个可调试进程需要发送”track-jdwp”来周期性获取进程PID信息。
在以上都准备好后就会尝试启动jython编译器的console或者直接调用jython编译器去解析执行脚本
在上面的整个MonkeyRunner的启动过程中并没有包含monkey的启动,monkey的启动是在用户编写脚本时候调用MonkeyRunner类的waitForConnection所牵涉的一系列调用过程中启动的,同时waitForConnection还会创建两个很重要的设备对象,一个是专门接受处理monkey请求的ChimpManager对象;一个是囊括了往monkey发送请求和往ADB服务器Device发送请求的AdbChimpDevice类的实例对象
相关文章推荐
- CMake编译opencv
- iOS用URL调用系统短信、电话、邮件
- android sdcard存储方案三(基于fuse文件系统):
- Paiting Series 1: Part 2
- 【经典工具】:如何通过程序获得系统时间
- My 2016
- Android基础之Activity
- js日期比较
- 老李推荐:第8章6节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动Monkey 4
- [LeetCode][JavaScript]Balanced Binary Tree
- Veeam Backup & Replication 8 安装配置
- 快速入门Spine
- find regex
- Oracle数据库备份与恢复--Windows批处理+定时任务计划(V1.0)
- Eclipse快速开发快捷键
- SQLSERVER 索引
- 老李推荐:第8章6节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动Monkey 3
- 老李推荐:第8章6节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动Monkey 2
- C语言实现顺序表的增删查改以及排序
- ubuntu 14.04 LTS 安装nginx+mariaDB+php7+YAF