python + adb 实现控制手机
Posted moying-wq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python + adb 实现控制手机相关的知识,希望对你有一定的参考价值。
1、USB连接手机,手机打开USB调试模式,小米手机可能还要打开允许通过USB调试修改权限或者模拟点击
以通过如下ADB命令实现PC对Android手机的模拟输入,点击,滑动等事件,进而对Android手机的操作与控制。
1: adb shell input keyevent keycode
这条命令模拟Android手机按下了event_code对应的按键。
event_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"
2:adb
shell input tap
这条命令模拟Android手机在屏幕坐标(X,Y)处进行了点击操作。
3:adb shell input swipe
这条命令模拟Android手机从屏幕坐标(X1,Y1)滑动到坐标(X2,Y2)的操作。
4、uiautomator dump dump: creates an XML dump of current UI hierarchy 这个命令是用来成成当前界面的UI层次,并用XML格式进行展示 。这样就可以获取各个组件的位置了
注:如果PC要想同时控制多台Android手机,必须在adb 后面添加-s
例如:adb -s 13b6e4c4 shell input tap 400 400
表示对13b6e4c4这台Android手机进行在屏幕上(400,400)坐标位置进行模拟的点击事件。
举例:
一、直接在cmd中操作手机
1、打开cmd,进入到当前文件夹中,输入命令 adb devices 查看当前与电脑连接的设备(前提是,手机打开usb调试模式),可以查看已连接成功的手机。
2、 若手机成功连接,输入命令 adb shell input tap 100 100 , 表示点击屏幕上坐标为(100,100)的点,如果不知道需要点击的点的具体位置的话可以在手机开发者模式中设置。
二、使用python脚本自动运行cmd 命令
1. 在adb文件夹下建立一个python文件
以上是关于python + adb 实现控制手机的主要内容,如果未能解决你的问题,请参考以下文章