分享几种Android模拟点击方法

Home / Android 百晓生 2019-3-2 10132

在Android中一般常见有4种模拟点击方法。分别是MotionEvent、ADB控制、Instrumentation、sendevent。

MotionEvent非常强大,可以单击,双击,滑动,甚至多点触控,但是印象中它好像是只能针对自己的view做控制,无法操作其它app的view。

ADB控制也可以轻松实现以上操作,

//模拟输入“001” 
adb shell input text “001”
//模拟home按键 
adb shell input keyevent 3
//模拟点击(540, 1104)坐标 
adb shell input tap 540 1104
//模拟滑动,从(250,250)滑动到(300,300) 
adb shell input swipe 250 250 300 300

但是需要借助adb工具并且效率不是很高。

Instrumentation同样也只能点自己的app。

sendevent非常强大,它不仅局限于模拟点击,还能做出模拟硬件按钮操作,比如声音键的控制(可惜要ROOT权限)。这里重点讲解一下这个方法。以下内容摘自CSDN

getevent可以获取用户的点击事件.

1).在cmd窗口中输入命令:adb shell getevent    (输入adb命令的时候一定要配置android sdk环境变量)

2).点击我们app的确定按钮.就会获取设备汇报的事件.

3).我们可以看到点击一个按钮产生了12行信息,代表12个事件.  我来解释第一行信息: [设备名称] [类型] [code] [value]

     有哪些类型请参考博客:http://blog.csdn.net/kickxxx/article/details/7482392

/dev/input/event7: 0001 014a 00000001

/dev/input/event7: 0003 003a 00000001

/dev/input/event7: 0003 0035 00000172

/dev/input/event7: 0003 0036 00000129

/dev/input/event7: 0000 0002 00000000

/dev/input/event7: 0000 0000 00000000

/dev/input/event7: 0001 014a 00000000

/dev/input/event7: 0003 003a 00000000

/dev/input/event7: 0003 0035 00000172

/dev/input/event7: 0003 0036 00000129

/dev/input/event7: 0000 0002 00000000

/dev/input/event7: 0000 0000 00000000

sendEvent事件的使用

1).我们用getEvent获取的值是16进制的,而sendEvent输入的值是10进制的,我这里把这些值转换了,并且增加了前缀"adb shell sendevent".

adb shell sendevent /dev/input/event7 0001 330 00000001

adb shell sendevent /dev/input/event7 0003 58  00000001

adb shell sendevent /dev/input/event7 0003 0053 00000370

adb shell sendevent /dev/input/event7 0003 0054 00000297

adb shell sendevent /dev/input/event7 0000 0002 00000000

adb shell sendevent /dev/input/event7 0000 0000 00000000

adb shell sendevent /dev/input/event7 0001 0330 00000000

adb shell sendevent /dev/input/event7 0003 0058 00000000

adb shell sendevent /dev/input/event7 0003 0053 00000370

adb shell sendevent /dev/input/event7 0003 0054 00000297

adb shell sendevent /dev/input/event7 0000 0002 00000000

adb shell sendevent /dev/input/event7 0000 0000 00000000

2).我们看到上面最后面一栏中有370跟297两个数,这是是点击的坐标在屏幕的位置.如果我们用点击事件,只需要改变这两个值就可.

3).把这些命令复制到粘贴板,我们输入这些命令,效果图如下:

    

   

这里讲解了sendevent跟getevent的使用,如果我们要给输入框输入值,只需要一条命令就行.   adb shell input text 'ansen'

还有一些其他命令,参考博客:http://blog.sina.com.cn/s/blog_76550fd70101j2zs.html


本文链接:https://www.it72.com/12496.htm

推荐阅读
最新回复 (2)
返回