在Android中,有些场景需要使用代码来模拟人的操作,比如微信自动抢红包、UI测试等都需要模拟实现点击事件(Click)、触摸事件(Touch)、键盘事件(KeyBoard)等。那么,有没有现成的方案可以实现呢?答案当然是肯定的啦,往下看。
经过调研发现,给系统模拟注入输入事件有如下几种方式:
一、使用shell命令
使用android自带的adb shell,里面自带一个input工具,使用方法如下:
adb shell #进入系统
input keyevent KEYCODE_BACK #模拟按返回键
input keyevent KEYCODE_HOME #模拟按Home键
还可以直接输入点击屏幕的事件,模拟点击屏幕:
input tap 100 200 #在屏幕坐标(100, 200)处点击
详细的用法如下:
二、使用 Instrumentation
Instrumentation本身是Android用来做测试的工具,可以通过它监测系统与应用程序之间的交互。详情可以参考官方文档[Test Your App]。我们这里只关注怎么使用Instrumentation产生发送按键或者触屏事件。
它可以发送按键:
Instrumentation mInst = new Instrumentation();
mInst.sendKeyDownUpSync