MonkeyScript API 文档

一、前言

本文档记录了和 MonkeyScript 相关的 API 文档,由承香墨影整理。所有 API 描述均来自 MonkeySourceScript.java 。

也可以自行查看源码,在线阅读地址:

http://androidxref.com/5.1.1_r6/xref/development/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java

希望在阅读本文档前,你已经掌握了基本的 Monkey Script 的操作,可以在本公众号回复『MonkeyScript如何写脚本』

二、MonkeyScript API

1、点击事件(DispatchPointer)

DispatchPointer 命令用于向一个指定的坐标位置,发送单个手势消息,一般用它来模拟点击的操作。

它完整的方法签名是:

DispatchPointer ( downTime , eventTime , action , x , y , pressure , size , metaState , xPrecision , yPrecision , device , edgeFlags)

其实这么多参数,只需要关注action 、 x 、y 三个参数即可。

  • action :事件是按下还是抬起,0 表示按下,1 表示抬起。
  • x、y:表示当前事件触发的X轴和Y轴的坐标。

也就是说,两个 DispatchPointer 命令加在一起,分别表示 按下 和 抬起 ,这表示一次点击操作,其余的参数,统一设置为 0 即可。

2、按键事件(DispatchKey)

DispatchKey 主要是用于发送一些 Android 标准的 EventKey 按键消息。但是需要写对应的值。

它的方法签名如下:

DiapatchKey ( downTime ,eventTime ,action ,code ,repeat ,metaState ,device ,scancode)

DispatchKey 实际上也只需要关注,action、code、repeat即可。

  • action : 消息的类型。0 表示按下,1 表示抬起。
  • code:按键的值。参考KeyEvent。
  • repeat:按键重复的次数

具体的键值,可以通过官网查询:

https://developer.android.com/reference/android/view/KeyEvent.html

3、轨迹球(DispatchTrackball)

DispatchTrackball 命令用于像一个指定位置发送单个轨迹球的消息。它的方法前面也与 DispatchPointer 一样。

4、旋转屏幕(RotateScreen)

RotateScreen 命令用于发送旋转测试设备屏幕方式的事件。

它的方法签名如下:

RotateScreen ( rotationDegree , persist)

其中的参数:

  • rotateDegree:旋转的角度。
  • persist:是否保持旋转前的状态。0 为不保持,1 为保持。

rotateDegree,可配置的角度可以参考 android.view.Surface里的常量进行配置,可选的角度有 4 个:

  • ROTATION_0
  • ROTATION_90
  • ROTATION_180
  • ROTATION_270

5、软键盘开关(DispatchFlip)

DispatchFlip 命令用于打开或者关闭软键盘。它的方法签名如下:

DispatchFlip (keyboardOpen)

其中的参数,true 表示打开,false 表示关闭。

6、键盘事件(DispatchPress)

DispatchPress 命令用于模拟敲击键盘的事件。

它的方法签名如下:

DispatchPress( keyName )

7、启动Activity(LaunchActivity)

LaunchActivity 命令用于打开任意应用的一个页面,但是前提条件是打开的Activity 需要属性 android:exported 被设定为true,才可以通过 LaunchActivity 打开。它的方法签名如下:

LaunchActivity ( pkg_name , act_name )

它的两个参数,分别表示打开的 App 的包名和打开的 Activity 的名称。

8、等待(UserWait)

UserWait 命令用于让脚本中断执行一段时间。因为是脚本执行,多个事件之间执行的速度会非常的快,有时候我们需要等待一些事件触发之后的结果返回,需要等待一段时间之后,再继续执行脚本,这个时候就可以使用 UserWait 。

它的方法签名如下:

UserWait ( sleepTime )

sleepTime 的单位是毫秒。

9、输入字符串(DispatchString)

DispatchString 命令用于向 Shell 输入一个字符串。

它的方法签名如下:

DispatchString( input )

没什么好解释的, input 就是一个字符串即可,但是 MS 对中文的支持并不好,所以尽量输入英文的测试数据。

10、长按(LongPress)

LongPress 命令用于模拟长按时间,标准为长按 2s 。它是一个无参的方法,直接调用即可。

11、运行 Shell 命令(RunCmd)

RunCmd 命令用于在设备上运行 shell 命令。当然这些 shell 命令必须是当前待测试设备支持的 shell 命令。

它的方法签名如下:

RunCmd ( cmd )  

参数 cmd 就是需要执行的 shell 命令。

12、手指单击(Tap)

Tap 命令用于模拟一次手指单击事件。

它的方法签名如下:

Tap( x ,y ,tapDuration)

tapDuration 参数,表示当前单击的持续时间,可选参数。

13、唤醒设备并解锁(DeviceWakeUp)

DeviceWakeUp 命令可以唤醒设备,并进行解锁。当然需要是一个无加密的设备才可以,有数字密码或者图形密码,都会导致失败。

14、等待5s(ProfileWait)

ProfileWait 命令和 UserWait 类似,但是它已经设定好等待的时长,就是 5s ,直接调用即可。

15、长按消息(PressAndHold)

PressAndHold 命令用于模拟一个长按事件,和 LongPress 类似,但是它是可以定制长按时长的。

它的方法签名如下:

PressAndHold( x, y, pressDuration)

16、拖拽(Drag)

Drag 命令用于模拟一个按住拖拽的动作。

它的方法签名如下:

Drag( xStart, yStart, xEnd, yEnd, stepCount)

前面四个参数分别表示了事件开始的坐标点,和结束的坐标点。唯一需要解释的是stepCount ,因为拖拽事件是一组连续的事件,这个参数可以指定当前拖拽事件,是由多少个小事件组成的,越多,越连贯。

17、缩放事件(PinchZoom)

PinchZoom 命令用于模拟缩放手势。

它的方法签名如下:

PinchZoom( pt1xStart, pt1yStart, pt1xEnd, pt1yEnd, pt2xStart, pt2yStart, pt2xEnd, pt2yEnd, stepCount)

它的参数分别表示了两个手指的开始位置和结束位置,并且设定了完成了多少次缩放操作。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值