本章我们重点环绕处理网络过来的命令的MonkeySourceNetwork这个事件源来阐述学习Monkey是怎样处理MonkeyRunner过来的命令的。以下总结下MonkeyRunner从启动Monkey開始到怎样处理完毕一个命令的流程总结例如以下:
- MonkeyRunner通过ADB发送shell命令”monkey --port 12345”来启动Monkey
- Monkey启动运行进入runMonkeyCycles方法来循环获取并运行事件
- runMonkeyCycles方法首先依据启动命令行參数”--port”推断须要初始化MonkeySourceNetwork事件源来处理网络过来的命令
- 初始化事件源后。runMonkeyCycles调用事件源的getNextEvent来尝试获取一个事件来运行
- 事件源在尝试获得一个事件的时候先去命令队列查看里面有没有事件,有的话就直接返回给runMonkeyCycles运行进行事件注入,没有的话就继续往下走:
- 从与Monkey网络client连接的Socket端口获得一行命令字串
- 将该命令字串的命令解析出来,然后參考COMMAND_MAP获得该命令相应的命令翻译对象
- 调用该命令翻译对象的translateCommand方法来依据命令和命令參数建立相应的事件对象
- 将该事件增加到命令队列
- 进入runMonkeyCycles的下一个循环来获取事件运行
最后请看以下的流程图对整个命令获取。翻译,建立事件。注入事件的流程的描写叙述:
图6-8-1 网络事件处理流程图
注:很多其它文章请关注公众号:techgogogo或个人博客http://techgogogo.com。当然。也很欢迎您直接微信(zhubaitian1)勾搭。本文由天地会珠海分舵原创。转载请自觉,是否投诉维权看心情。