本章我们重点环绕处理网络过来的命令的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)勾搭。本文由天地会珠海分舵原创。转载请自觉,是否投诉维权看心情。

最新文章

  1. 0033 Java学习笔记-反射-初步1
  2. MongoDB实现分页(两种方法)
  3. Windows平台分布式网站系统应用(转)
  4. 借助mosquitto“实时”远程监控服务器数据库运行状态
  5. WebGrid Enterprise免费下载
  6. 三,对于printf函数和C语言编程的初步拓展
  7. Linux中统计某个文件夹的大小
  8. jtree(选择框)
  9. EasyNetQ之多态发布和订阅
  10. 表达式求值(二叉树方法/C++语言描述)(三)
  11. C#连接oracle数据库步骤
  12. bzoj 3930: [CQOI2015]选数
  13. java类(Class)的概念;对象的概念,声明类的属性 和方法,局部变量和成员变量,面向对象编程思维,抽象的概念
  14. Mac/Linux 常用命令
  15. linux快捷键 常用快捷键
  16. Java 猜字谜游戏
  17. shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用
  18. JFinal Web开发学习(一)开启HelloWorld
  19. IDEA 2017的插件mybatis plugin
  20. hdu 1024 最大M子段dp

热门文章

  1. HDU 1338 Game Prediction【贪心】
  2. SQL 自动记录存储过程,表,函数的创建修改和删除 -相当于SVN一样
  3. Manacher笔记
  4. vue源码之响应式数据
  5. C#串口调试工具 (WPF/MVVM结构完整示例版)
  6. mysql5.7 安装方法 (跟旧的不一样了)
  7. ETL-informatica进阶资料整理
  8. SpringMVC+Jquery -页面异步载入数据
  9. [Webpack + React] Import CSS Modules with TypeScript and webpack
  10. sass07 函数