Android平台下开发中,使用最多的是adb shell,可以通过USB或WIFI来与设备连接调试,而在ADB的SHELL命令行下,有时为了进行强度测试,需要用到模拟事件,用于模拟键盘、指针移动、输入文字等功能,刚好在adb shell下有如下命令可用:
1、模拟键盘输入事件
执行adb shell input命令(该命令实现源码在frameworks/base/cmds/input/),有如下帮助提示:
usage: input [text|keyevent]
input text <string>
input keyevent <event_code>
其中,input text <string>用于模拟输入一串字符,该功能与当前输入法相关连,如果是英文输入法,则表示输入的是英文字母,如果是中文输入法,则表示输入的是拼音字母,此时会有相应的中文输入提示。
而input keyevent <event_code>则模拟输入一个事件,需要输入的是对应的事件码,可模拟输入字符、按菜单、返回等键。相应的事件码可frameworks/base/core/java/android/view/KeyEvent.java文件,不同的Android版本代表是不一样的。
2、模拟触摸屏点击、划动事件
使用sendevent命令可实现该功能,源码在system/core/toolbox/目录下,相应的命令格式如下:
use: sendevent device type code value
其中,device为相应的event设备,可在/dev/input/eventX找到,可用getevent命令获得;
type可由linux内核源码include/linux/input.h文件获得,常用的有EV_KEY、EV_REL、EV_ABS、EV_SYN,分别对就键盘按键、绝对坐标、相对坐标、同步事件;
不同type事件可用的code不一样,可从input.h中获得;
3、参考网址