Monkey是一个工程,生成伟随机事件流(在一段时间内完全不重复的事件流),由种子生成。可以模拟用户,点击,触屏等。最好用来做压力测试。无法做功能测试。

adb shell monkey -p -v -s -throttle 延时 --pct-touch 某个事件百分比 --pct-trackball 轨迹球可以解决解锁是圆环的(这个轨迹球用monkeyrunner更合适) --pct-syskeys 有80+系统事件,这个参数会给一个值,如果不想进行交互,这项变成0即可。

分析Monkey源码:

-v -v -v 表示进入一级目录(的Activity) 二级目录(的Activity) 三级目录(的Activity) 找到主入口Activity

MonkeyActivityEvent类:负责进入apk的主界面。工作流程:首先生成Intent事件,Intent.ACTION_MAIN会告诉程序这个动作在主Activity里。

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

这两句相当于“洗衣服”,ACTION_MAIN要在CATEGORY_lAUNCHER时进去。

intent.setcomponent(mApp);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 设置Intent启动模式

Monkey如何发送键盘啊,触屏啊一系列事件,或者滑动啊,drag等?这和Monkeyrunner很相像,首先要定义超类MonkeyEvent.java,里面有很多抽象方法。Monkeyrunner是Monkey的改进版。所有的xxEvent都是实现了方法。比如说调用键盘事件,首先要传一个事件,事件默认的就是-1,表示什么都没有:

private KeyEvent getEvent(){

  if (mDeviced < 0){

    return new KeyEvent(mAction,mKeyCode);}

}

其中mAction表示内定的事件,默认是-1;定义了很多常量,比如home键是4 ,等等;mKeyCode表示按下去或者抬起来;

MonkeyMotionEvent.java 对应的是开发文档中的 --pct-Montion 这里面很多都是实现的隐藏性接口,

init进程启动 - 启动zygote

最新文章

  1. Visual studio 生成事件的使用 、xcopy 实现 dll 复制操作、
  2. DBAccess
  3. POJ 3181 Dollar Dayz (完全背包,大数据运算)
  4. linux 内核调试方法
  5. discuz默认模板文件结构详解-模板文件夹介绍
  6. 2017qq红包雨最强攻略,
  7. WordPress安装官方文档教程
  8. .Net Core Web/Console 下使用Nlog
  9. webpack4.0各个击破(9)—— karma篇
  10. PS教您与粗壮的胳膊拜拜
  11. 使用 ZipArchive 生成Zip文件备注
  12. Kali Linux Vmware虚拟机(新手)安装
  13. 小妖精的完美游戏教室——人工智能,A*算法,结点篇
  14. 从零开始学安全(二十三)●用PHP编写留言板
  15. Segmentation metrics
  16. docker基本命令使用
  17. Maven 项目中的 pom.xml 文件内容说明
  18. debian下erlang新版本安装
  19. go exec:exit status 64
  20. rolling方式修改oplog

热门文章

  1. linux 下启动tomcat 时没有执行权限
  2. 简单数学算法demo和窗口跳转,关闭,弹框
  3. mysql查看sql执行情况的几种方法
  4. Reciting(second)
  5. &lt;JAVA - 大作业(1)文本编辑器 &gt;
  6. selenium,webdriver模仿浏览器访问百度 基础1
  7. select下拉框选中其中一个值
  8. Cocos2d Box2D之静态刚体
  9. Dubbo 系列(07-2)集群容错 - 服务路由
  10. Python基础代码1