简介
input可以用来模拟各种输入设备的输入操作。
命令说明
Usage: input [<source>] <command> [<arg>...]
The sources are:
trackball
joystick
touchnavigation
mouse
keyboard
gamepad
touchpad
dpad
stylus
touchscreen
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
部分参数说明
- source对应各种输入源。一般开发中都是用默认值即可。也就是说一般使用中我们的参数中并没有source。
输入命令中text 和 keyevent是通用的;tap和swipe适用于触摸屏;而press和roll用于有触摸球的设备,由于使用的很少,因此不做说明。
模拟输入文本(text)
用法与事例
主要用于在输入框中输入内容。命令很简单。例如:
adb shell input text "hello,world"
注意事项
- 使用的前提是当前要输入的位置已经获得了焦点。
- 特殊字符的输入:adb shell input text中空格、’'、&都是有特殊含义的特殊字符,无法直接输入,要想输入只能使用keyevent。
- 输入过程中左移右移、删除等都需要使用keyevent。
模拟按键(keyevent)
用法与事例
主要用于模拟键盘的输入,因此是在用键盘的地方才用得到。例如:
adb shell input keyevent 67
常用按键:
按键键码 | 功能 | 对应Android定义KeyEvent |
---|---|---|
1 | 按menu键 | KEYCODE_MENU |
3 | 按home键 | KEYCODE_HOME |
4 | 按back键 | KEYCODE_BACK |
21 | 光标左移 | KEYCODE_DPAD_LEFT |
22 | 光标右移 | KEYCODE_DPAD_RIGHT |
67 | 按删除按钮 | KEYCODE_DEL |
完整按键键码查询
http://developer.android.com/reference/android/view/KeyEvent.html
模拟屏幕滑动(swipe)
用法与事例
主要用于模拟手指在屏幕的滑动。例如:
adb shell input swipe 0 20 300 500 #意思从屏幕(0,20)滑动到(300,500)
参数含义
- 四个参数,分别是其实位置的横竖坐标和结束位置的横竖坐标
- 参数的意思是模拟在屏幕上的直线滑动
- 参数可以正值,可以负值
模拟屏幕轻触(tap)
用法与事例
主要用于模拟手指在屏幕的轻触点击。例如:
adb shell input tap 100 400
参数含义
- 两个参数,先横后竖
- 参数的意思是模拟在屏幕上点击的位置。
adb 截屏并保存图片到电脑
adb shell screencap /sdcard/a.png // 截屏并保存到手机上
adb pull /sdcard/a.png // 复制图片到电脑