前言
通过adb shell input
可以模拟android各种输入事件,比如文字、按键、触摸等等。
adb shell input
Usage: input [<source ] <command [<arg ...]
The sources are:
keyboard
mouse
joystick
touchnavigation
touchpad
trackball
dpad
stylus
gamepad
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)
基本用法
usage: input [text|keyevent] input text <string input keyevent <event_code
输入文字
列子:
adb shell input text sample-text
而包含字符可以使用引号包裹,其中%s代表空格。
adb shell input text "insert%syour%stext%shere"
模拟按键
通过adb shell input keyevent
可以模拟按键,后面跟按键code。比如:
adb shell input keyevent 82
所有按键code列表如下:
0 — “KEYCODE_0” 1 — “KEYCODE_SOFT_LEFT” 2 — “KEYCODE_SOFT_RIGHT” 3 — “KEYCODE_HOME” 4 — “KEYCODE_BACK” 5 — “KEYCODE_CALL” 6 — “KEYCODE_ENDCALL” 7 — “KEYCODE_0” 8 — “KEYCODE_1” 9 — “KEYCODE_2” 10 — “KEYCODE_3” 11 — “KEYCODE_4” 12 — “KEYCODE_5” 13 — “KEYCODE_6” 14 — “KEYCODE_7” 15 — “KEYCODE_8” 16 — “KEYCODE_9” 17 — “KEYCODE_STAR” 18 — “KEYCODE_POUND” 19 — “KEYCODE_DPAD_UP” 20 — “KEYCODE_DPAD_DOWN” 21 — “KEYCODE_DPAD_LEFT” 22 — “KEYCODE_DPAD_RIGHT” 23 — “KEYCODE_DPAD_CENTER” 24 — “KEYCODE_VOLUME_UP” 25 — “KEYCODE_VOLUME_DOWN” 26 — “KEYCODE_POWER” 27 — “KEYCODE_CAMERA” 28 — “KEYCODE_CLEAR” 29 — “KEYCODE_A” 30 — “KEYCODE_B” 31 — “KEYCODE_C” 32 — “KEYCODE_D” 33 — “KEYCODE_E” 34 — “KEYCODE_F” 35 — “KEYCODE_G” 36 — “KEYCODE_H” 37 — “KEYCODE_I” 38 — “KEYCODE_J” 39 — “KEYCODE_K” 40 — “KEYCODE_L” 41 — “KEYCODE_M” 42 — “KEYCODE_N” 43 — “KEYCODE_O” 44 — “KEYCODE_P” 45 — “KEYCODE_Q” 46 — “KEYCODE_R” 47 — “KEYCODE_S” 48 — “KEYCODE_T” 49 — “KEYCODE_U” 50 — “KEYCODE_V” 51 — “KEYCODE_W” 52 — “KEYCODE_X” 53 — “KEYCODE_Y” 54 — “KEYCODE_Z” 55 — “KEYCODE_COMMA” 56 — “KEYCODE_PERIOD” 57 — “KEYCODE_ALT_LEFT” 58 — “KEYCODE_ALT_RIGHT” 59 — “KEYCODE_SHIFT_LEFT” 60 — “KEYCODE_SHIFT_RIGHT” 61 — “KEYCODE_TAB” 62 — “KEYCODE_SPACE” 63 — “KEYCODE_SYM” 64 — “KEYCODE_EXPLORER” 65 — “KEYCODE_ENVELOPE” 66 — “KEYCODE_ENTER” 67 — “KEYCODE_DEL” 68 — “KEYCODE_GRAVE” 69 — “KEYCODE_MINUS” 70 — “KEYCODE_EQUALS” 71 — “KEYCODE_LEFT_BRACKET” 72 — “KEYCODE_RIGHT_BRACKET” 73 — “KEYCODE_BACKSLASH” 74 — “KEYCODE_SEMICOLON” 75 — “KEYCODE_APOSTROPHE” 76 — “KEYCODE_SLASH” 77 — “KEYCODE_AT” 78 — “KEYCODE_NUM” 79 — “KEYCODE_HEADSETHOOK” 80 — “KEYCODE_FOCUS” 81 — “KEYCODE_PLUS” 82 — “KEYCODE_MENU” 83 — “KEYCODE_NOTIFICATION” 84 — “KEYCODE_SEARCH” 85 — “KEYCODE_MEDIA_PLAY_PAUSE” 86 — “KEYCODE_MEDIA_STOP” 87 — “KEYCODE_MEDIA_NEXT” 88 — “KEYCODE_MEDIA_PREVIOUS” 89 — “KEYCODE_MEDIA_REWIND” 90 — “KEYCODE_MEDIA_FAST_FORWARD” 91 — “KEYCODE_MUTE” 92 — “KEYCODE_PAGE_UP” 93 — “KEYCODE_PAGE_DOWN” 94 — “KEYCODE_PICTSYMBOLS” … 122 — “KEYCODE_MOVE_HOME” 123 — “KEYCODE_MOVE_END”
最新的可以参考官方文档:https://developer.android.com/reference/android/view/KeyEvent.html
模拟触摸
通过 tap可以模拟触摸事件,参数是<x, y
adb shell input tap 500 1450
滑动则可以通过swipe模拟,参数是<x1 y1 x2 y2 time
adb shell input swipe 100 500 100 1450 100
巧妙使用swipe也可以模拟长按事件:
adb shell input swipe 100 500 100 500 250
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。