前言

通过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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对华域联盟的支持。

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。