android 模拟电脑按键精灵,Android 模拟点击 按键精灵 ADB方案

本文介绍了如何利用ADB在Android设备上模拟点击、输入文本、按键操作,包括执行ADB指令进行屏幕点击、滑动,以及模拟手机的各种按键如Home、Menu等。这种方法适用于需要对设备进行自动化控制的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 模拟点击的方案

模拟MotionEvent

ADB控制

Instrumentation

通过使用sendevent

这里我们只讨论ADB控制方案,因为这个方案可以点击本APP以外的东西

前提条件:Room权限

你可以下载“雷电模拟器”等其他第三方模拟器,这些模拟器都是默认开启Room的。

你也可以使用小米手机,解锁申请解锁小米手机 (miui.com) 然后获取room权限听说解锁后不保修,请谨慎解锁

正文

0.检查是否拥有Root权限

1.代码执行ADB

/**

* 执行ADB指令,不返回结果

*

* @param cmd

*/

private void execShellCmd(String cmd) {

try {

// 申请获取root权限,这一步很重要,不然会没有作用

Process process = Runtime.getRuntime().exec("su");

// 获取输出流

OutputStream outputStream = process.getOutputStream();

DataOutputStream dataOutputStream = new DataOutputStream(outputStream);

dataOutputStream.writeBytes(cmd);

dataOutputStream.flush();

dataOutputStream.close();

outputStream.close();

} catch (Throwable t) {

Log.e("liu0408", "t = " + t.getMessage());

}

}

/**

* 执行ADB指令,返回结果

*

* @param cmd

*/

public static String execShellCmd(String cmd) {

String result = "";

DataOutputStream dos = null;

DataInputStream dis = null;

try {

Process p = Runtime.getRuntime().exec("su");// 经过Root处理的android系统即有su命令

dos = new DataOutputStream(p.getOutputStream());

dis = new DataInputStream(p.getInputStream());

dos.writeBytes(cmd + "\n");

dos.flush();

dos.writeBytes("exit\n");

dos.flush();

String line;

while ((line = dis.readLine()) != null) {

result += line;

}

p.waitFor();

} catch (Exception e) {

} finally {

try {

if (dos != null) {

dos.close();

}

if (dis != null) {

dis.close();

}

} catch (Exception e) {

}

}

return result;

}

示例:点击屏幕 210代表X点 970代表Y点

execShellCmd("input tap 210 970");

其他ADB指令

输入内容

input text "你好"

点击

input tap 933 184

滑动

input swipe

模拟 手机的按键

//点击Home键

input keyevent 3

KEYCODE_MENU 1

KEYCODE_SOFT_RIGHT 2

KEYCODE_HOME 3

KEYCODE_BACK 4

KEYCODE_CALL 5

KEYCODE_ENDCALL 6

KEYCODE_0 7

KEYCODE_1 8

KEYCODE_2 9

KEYCODE_3 10

KEYCODE_4 11

KEYCODE_5 12

KEYCODE_6 13

KEYCODE_7 14

KEYCODE_8 15

KEYCODE_9 16

KEYCODE_STAR 17

KEYCODE_POUND 18

KEYCODE_DPAD_UP 19

KEYCODE_DPAD_DOWN 20

KEYCODE_DPAD_LEFT 21

KEYCODE_DPAD_RIGHT 22

KEYCODE_DPAD_CENTER 23

KEYCODE_VOLUME_UP 24

KEYCODE_VOLUME_DOWN 25

KEYCODE_POWER 26

KEYCODE_CAMERA 27

KEYCODE_CLEAR 28

KEYCODE_A 29

KEYCODE_B 30

KEYCODE_C 31

KEYCODE_D 32

KEYCODE_E 33

KEYCODE_F 34

KEYCODE_G 35

KEYCODE_H 36

KEYCODE_I 37

KEYCODE_J 38

KEYCODE_K 39

KEYCODE_L 40

KEYCODE_M 41

KEYCODE_N 42

KEYCODE_O 43

KEYCODE_P 44

KEYCODE_Q 45

KEYCODE_R 46

KEYCODE_S 47

KEYCODE_T 48

KEYCODE_U 49

KEYCODE_V 50

KEYCODE_W 51

KEYCODE_X 52

KEYCODE_Y 53

KEYCODE_Z 54

KEYCODE_COMMA 55

KEYCODE_PERIOD 56

KEYCODE_ALT_LEFT 57

KEYCODE_ALT_RIGHT 58

KEYCODE_SHIFT_LEFT 59

KEYCODE_SHIFT_RIGHT 60

KEYCODE_TAB 61

KEYCODE_SPACE 62

KEYCODE_SYM 63

KEYCODE_EXPLORER 64

KEYCODE_ENVELOPE 65

KEYCODE_ENTER 66

KEYCODE_DEL 67

KEYCODE_GRAVE 68

KEYCODE_MINUS 69

KEYCODE_EQUALS 70

KEYCODE_LEFT_BRACKET 71

KEYCODE_RIGHT_BRACKET 72

KEYCODE_BACKSLASH 73

KEYCODE_SEMICOLON 74

KEYCODE_APOSTROPHE 75

KEYCODE_SLASH 76

KEYCODE_AT 77

KEYCODE_NUM 78

KEYCODE_HEADSETHOOK 79

KEYCODE_FOCUS 80

KEYCODE_PLUS 81

KEYCODE_MENU 82

KEYCODE_NOTIFICATION 83

KEYCODE_SEARCH 84

TAG_LAST_KEYCODE 85

以上基本就可以解决大部分问题了,感兴趣想瞎聊的给我邮件,我看见了就回复你742831652@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值