第6章8节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-小结
来源:互联网 发布:女生围巾品牌 知乎 编辑:程序博客网 时间:2024/06/16 13:10
本章我们重点围绕处理网络过来的命令的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)勾搭。本文由天地会珠海分舵原创。转载请自觉,是否投诉维权看心情。
1 0
- 第6章8节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-小结
- 第6章1节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览
- 第6章5节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-事件
- 第6章7节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-注入按键事件实例
- 第6章6节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令队列
- 第6章2节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-获取命令字串
- 第6章3节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令翻译类
- 第6章4节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-翻译命令字串
- 第5章6节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 初始化事件源(原创)
- 第5章7节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 循环获取并执行事件 - runMonkeyCycles(原创)
- 第5章2节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动流程概览(原创)
- 第5章1节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 官方简介(原创)
- 第5章3节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动脚本(原创)
- 第8章6节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动Monkey
- 第5章4节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 命令行参数解析(原创)
- 第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用(原创)
- 第8章7节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-小结
- Monkey源码分析之事件源
- C语言程序设计整理(2)
- 4.3.4 磁盘组织与管理
- sublime 调用 shell
- 第6章7节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-注入按键事件实例
- iOS拨打电话
- 第6章8节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-小结
- android Service onStartCommand intent为nullhttp://hold-on.iteye.com/blog/2024926
- mysql 创建表时以UTF8编码
- C#的Activator.CreateInstance方法
- git版本控制开发流程小结笔记(一)
- linux SVN服务器创建版本库
- servlet向jsp传数据
- 第8章1节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行环境初始化
- c++ primer plus 第六章变成练习 第7题