在Android7.0及以上，可以不需要root权限做到任意坐标的点击，滑动和手势模拟，并且比使用root权限的延迟更短。

**注意以下命令只有Android7.0及以上才有效**

### click(x, y)
* x \<Number\> 要点击的坐标的x值
* y \<Number\> 要点击的坐标的y值

模拟点击坐标(x, y)，并返回是否点击成功。只有在点击执行完成后脚本才继续执行。

一般而言，只有点击过程(大约150毫秒)中被其他事件中断(例如用户自行点击)才会点击失败。

> 可以在开发者选项中启用指针位置来查看坐标

### longClick(x, y)

* x \<Number\> 要长按的坐标的x值
* y \<Number\> 要长按的坐标的y值

模拟长按坐标(x, y), 并 返回是否成功。只有在长按执行完成（大约600毫秒）时脚本才会继续执行。

一般而言，只有长按过程中被其他事件中断(例如用户自行点击)才会长按失败。

### press(x, y, duration)

* x \<Number\> 要按住的坐标的x值
* y \<Number\> 要按住的坐标的y值
* duration \<Number\> 按住时长，单位毫秒

模拟按住坐标(x, y), 并返回是否成功。只有按住操作执行完成时脚本才会继续执行。

如果按住时间过短，那么会被系统认为是点击；如果时长超过500毫秒，则认为是长按。

一般而言，只有按住过程中被其他事件中断才会操作失败。

### swipe(x1, y1, x2, y2, duration)

* x1 \<Number\> 滑动的起始坐标的x值
* y1 \<Number\> 滑动的起始坐标的y值
* x2 \<Number\> 滑动的结束坐标的x值
* y2 \<Number\> 滑动的结束坐标的y值
* duration \<Number\> 滑动时长，单位毫秒

模拟从坐标(x1, y1)滑动到坐标(x2, y2)，并返回是否成功。只有滑动操作执行完成时脚本才会继续执行。

一般而言，只有滑动过程中被其他事件中断才会滑动失败。

### gesture(duration, \[x1, y1\], \[x2, y2\], ...)

* duration \<Number\> 手势的时长
* \[x, y\] \<Array\> 手势滑动路径的一系列坐标

模拟手势操作。例如`gesture(1000, [0, 0], [500, 500], [500, 1000])`为模拟一个从(0, 0)到(500, 500)到(500, 100)的手势操作，时长为2秒。

### gestures(\[delay, duration, \[x1, y1\], \[x2, y2\], ...], \[delay, duration, \[x3, y3\], \[x4, y4\], ...\], ...)

同时模拟多个手势。每个手势的参数为\[delay, duration, 坐标\], delay为延迟多久(毫秒)才执行该手势；duration为手势执行时长；坐标为手势经过的点的坐标。其中delay参数可以省略，默认为0。

参见示例。


### setScreenMetrics(width, height)

* width \<Number\> 屏幕宽度，单位像素
* height <\Number\> 屏幕高度，单位像素

设置脚本坐标点击所适合的屏幕宽高。如果脚本运行时，屏幕宽度不一致会自动放缩坐标。

例如在1920*1080的设备中，某个操作的代码为
```
setScreenMetrics(1080, 1920);
click(800, 200);
longClick(300, 500);
```
那么在其他设备上AutoJs会自动放缩坐标以便脚本仍然有效。




