700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 自己动手开发安卓版按键精灵

自己动手开发安卓版按键精灵

时间:2018-12-03 14:23:19

相关推荐

自己动手开发安卓版按键精灵

update:.04.30

时隔多年,以前觉得实现起来很麻烦的功能,趁着五一假期,花了几个小时简单实现了一下,代码链接:/ITAnt/AutoTask/tree/master

有编译好的apk,直接戳这里下载

第一步. 获取(并记录)点击的位置

1.找出我们的安卓设备名称

adb shell

getevent -p

查看哪个设备包含event 体系里 宽(0035)和高(0036),那么这个设备就是我们的安卓手机,例如这里的设备名称为/dev/input/event8

计算比例:

rateW = 720(手机屏幕的宽) / 719(event里0035的max) ≈ 1

rateH = 1280(手机屏幕的高) / 1279(event里0036的max) ≈ 1

2.然后不断监听我们的设备被点击了哪些位置:

getevent /dev/input/event8 | grep -e “0035” -e “0036”

把0035和0036后面的位置数据从16进制转化为10进制

width = 0x14e = 11616 + 416 + 14 = 334

height = 0x2c1 = 21616 + 1216 + 1 = 705

这是在event体系里的位置,将其转化为屏幕位置

screenW = widthrateW = 3341 = 334

screenH = heightrateH = 7051 = 705

在这里,保存点击的位置及顺序。

第二步. 模拟发送事件

getevent/sendevent是android系统下的一个工具,可以模拟多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。getevent用于获取当前系统input设备的一些参数和实时事件的数据;sendevent用于发送input事件,这俩命令的作用就是相当于解放了手,可以通过命令直接调用Linux底层来控制手机,工具的源码位于Android SDK的system/core/toolbox下(sendevent.c getevent.c)。

发送键盘事件

用法说明:

adb shell input keyevent “value”

input text

input keyevent

input tap

input swipe

如上,input后可以跟很多参数, text相当于输入内容,keyevent相当于手机物理或是屏幕按键,tap相当于touch事件,swipe相当于滑动~~是不是很赞?先列举 input keyevent 几个比较常用的code值:

input keyevent 3 // Home

input keyevent 4 // Back

input keyevent 19 //Up

input keyevent 20 //Down

input keyevent 21 //Left

input keyevent 22 //Right

input keyevent 23 //Select/Ok

input keyevent 24 //Volume+

input keyevent 25 // Volume-

input keyevent 82 // Menu 菜单

附:input keyevent所对应全部key值:

KeyCode Keyevent Value

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

整个思路是这样的:

录制过程:

点击“开始录制点击脚本”-- 选择应用 – 打开应用(记住所打开的应用的包名) – 按音量“加”开始监听,申请屏幕长亮,记录点击的坐标及顺序 – 按音量“加”停止监听,保存脚本,释放屏幕长亮。

运行过程:

点击某一个脚本 – 设置循环次数 – 设置每一次点击的时间间隔 – 设置每一次循环的时间间隔 – 打开目标应用 – 点击音量“减”开始运行 – 申请屏幕长亮 – 点击音量“减”停止运行,释放屏幕长亮。

供参考的文章:

/liu_zhen_wei/article/details/12559277

/hellowxwworld/article/details/10733567

/question/402614310.html

/mad1989/article/details/38109689

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。