Android adb input 命令介绍

input命令是用来向设备发送模拟操作的命令: 
因为版本不同,input命令也有所不同 
以下为Android 4.0的input命令:

usage:input text <string>
      input keyevent <key code number or name>
      input tap <x> <y>
      input swipe <x1> <y1> <x2> <y2>
  • 1
  • 2
  • 3
  • 4
  • 5

以下是Android 4.4+的input命令:

usage: input ...
       input text <string>
       input keyevent <key code number or name>
       input [touchscreen|touchpad|touchnavigation] tap <x> <y>
       input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)]
       input trackball press
       input trackball roll <dx> <dy>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

明显两个版本的input命令是有差异的,在使用的时候一定要记得查询清楚所使用的Android版本!


1、input text 
该命令主要是用于向获得焦点的EditText控件输入内容!

adb shell input text "hello,world"
  • 1

该方法只能对EditText输入AscII码的字符,对于UTF-8的字符是无法输入的!(汉字是不要想用这个命令输入的) 
关于某些程序希望实现到类似于按键精灵功能自动向文本框输入汉字的功能,可以使用一个比较取巧的办法。 
可以到github上参考https://github.com/senzhk/ADBKeyBoard~~(不要问我是怎么知道的T_T)

2、input keyevent 
该命令主要是向系统发送一个按键指令,实现模拟用户在键盘上的按键动作。

adb shell input keyevent 4
or
adb shell input keyevent "KEYCODE_BACK"
  • 1
  • 2
  • 3

下面附一个从网上扒到的 按键code 与 按键名的对应关系表

0 –> “KEYCODE_UNKNOWN” 
1 –> “KEYCODE_MENU” 
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 –> “TAG_LAST_KEYCODE” 
感谢http://blog.csdn.net/yicao821/article/details/7327953 博主提供!!666666666……

3、input [touchscreen|touchpad|touchnavigation] tap 
该命令是用于向设备[屏幕、触摸板、导航键]发送一个点击操作的指令。参数是X Y。一般设备都是屏幕……

adb shell input tap 100 100 
  • 1

屏幕位置坐标的拾取,可以打开 设置-开发者选项-指针位置开关!打开之后就会有拾取的功能了哦!

4、input [touchscreen|touchpad|touchnavigation] swipe [duration(ms)] 
向设备发送一个滑动的指令,并且可以选择设置滑动的时长。 
这个指令乍一看不就是个滑动嘛……233333……其实还有一个特殊的操作,长按。 
这个指令在4.4+的机器上,可以实现长按的哦!

//滑动
adb shell input swipe 100 100 200 200 300 //从 100 100 经历300毫秒滑动到 200 200 
//长按
adb shell input swipe 100 100 100 100 1000 //在 100 100 位置长按 1000毫秒
  • 1
  • 2
  • 3
  • 4

看,这次就明白了,长按就是一种特殊的滑动,即位置不变的滑动哦!

5、input trackball press 
这个命令是模拟轨迹球发送点击命令 
因为现在手机设备上没有轨迹球,然并卵……

6、input trackball roll 
这个命令是模拟轨迹球发送滚动命令 
同样,然并卵……

posted @ 2018-02-07 22:34  程序员修练之路  阅读(721)  评论(0编辑  收藏  举报