第6章8节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-小结
2015-12-08 08:44
204 查看
本章我们重点围绕处理网络过来的命令的MonkeySourceNetwork这个事件源来阐述学习Monkey是如何处理MonkeyRunner过来的命令的。以下总结下MonkeyRunner从启动Monkey开始到如何处理完成一个命令的流程总结如下:MonkeyRunner通过ADB发送shell命令”monkey --port 12345”来启动Monkey
Monkey启动运行进入runMonkeyCycles方法来循环获取并执行事件
runMonkeyCycles方法首先根据启动命令行参数”--port”判断需要初始化MonkeySourceNetwork事件源来处理网络过来的命令
初始化事件源后,runMonkeyCycles调用事件源的getNextEvent来尝试获取一个事件来执行
事件源在尝试获得一个事件的时候先去命令队列查看里面有没有事件,有的话就直接返回给runMonkeyCycles执行进行事件注入,没有的话就继续往下走:从与Monkey网络客户端连接的Socket端口获得一行命令字串
将该命令字串的命令解析出来,然后参考COMMAND_MAP获得该命令对应的命令翻译对象
调用该命令翻译对象的translateCommand方法来根据命令和命令参数建立对应的事件对象
将该事件加入到命令队列
进入runMonkeyCycles的下一个循环来获取事件执行
最后请看下面的流程图对整个命令获取,翻译,建立事件,注入事件的流程的描述:
图6-8-1 网络事件处理流程图注:更多文章请关注公众号:techgogogo或个人博客http://techgogogo.com。当然,也非常欢迎您直接微信(zhubaitian1)勾搭。本文由天地会珠海分舵原创。转载请自觉,是否投诉维权看心情。
Monkey启动运行进入runMonkeyCycles方法来循环获取并执行事件
runMonkeyCycles方法首先根据启动命令行参数”--port”判断需要初始化MonkeySourceNetwork事件源来处理网络过来的命令
初始化事件源后,runMonkeyCycles调用事件源的getNextEvent来尝试获取一个事件来执行
事件源在尝试获得一个事件的时候先去命令队列查看里面有没有事件,有的话就直接返回给runMonkeyCycles执行进行事件注入,没有的话就继续往下走:从与Monkey网络客户端连接的Socket端口获得一行命令字串
将该命令字串的命令解析出来,然后参考COMMAND_MAP获得该命令对应的命令翻译对象
调用该命令翻译对象的translateCommand方法来根据命令和命令参数建立对应的事件对象
将该事件加入到命令队列
进入runMonkeyCycles的下一个循环来获取事件执行
最后请看下面的流程图对整个命令获取,翻译,建立事件,注入事件的流程的描述:
图6-8-1 网络事件处理流程图注:更多文章请关注公众号:techgogogo或个人博客http://techgogogo.com。当然,也非常欢迎您直接微信(zhubaitian1)勾搭。本文由天地会珠海分舵原创。转载请自觉,是否投诉维权看心情。
相关文章推荐
- iOS基础-pch头文件
- 第6章7节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-注入按键事件实例
- Xcode7.1(无效的URL)Invalid parameter not satisfying: URLString -- @ShinePug
- "org.eclipse.wst.validation" has been removed
- 设计模式之简单工厂模式
- 在.net中调用无参及有参的存储过程
- 第6章6节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令队列
- 第6章5节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-事件
- Win10第三次免费升级又开始了 仍是悄悄下载
- 面向对象
- 类的定义、方法练习
- 第6章4节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-翻译命令字串
- 互联网造车 一个外行的外挂畅想
- 安装工具的代理设置
- Car 加油
- 第6章2节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-获取命令字串
- memcached下载地址 php 5.3~5.6
- Live555研究之一 源代码编译
- centos 安装VNC_seerver
- Pdf解密软件