update:2022.04.30

时隔多年,以前觉得实现起来很麻烦的功能,趁着五一假期,花了几个小时简单实现了一下,代码链接:https://github.com/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 = 2
1616 + 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

整个思路是这样的:
录制过程:
点击“开始录制点击脚本”-- 选择应用 – 打开应用(记住所打开的应用的包名) – 按音量“加”开始监听,申请屏幕长亮,记录点击的坐标及顺序 – 按音量“加”停止监听,保存脚本,释放屏幕长亮。
运行过程:
点击某一个脚本 – 设置循环次数 – 设置每一次点击的时间间隔 – 设置每一次循环的时间间隔 – 打开目标应用 – 点击音量“减”开始运行 – 申请屏幕长亮 – 点击音量“减”停止运行,释放屏幕长亮。

供参考的文章:
http://blog.csdn.net/liu_zhen_wei/article/details/12559277
http://blog.csdn.net/hellowxwworld/article/details/10733567
https://zhidao.baidu.com/question/402614310.html
http://blog.csdn.net/mad1989/article/details/38109689

自己动手开发安卓版按键精灵相关推荐

  1. 自己开发iOS版按键精灵--TTouch

    利用闲余时间,把之前的按键录制和播放整理了一些,开发了一个iOS版按键录制.播放的越狱APP,类似按键精灵.触动精灵等按键类的基本功能.脚本采用lua语法格式,可直接执行lua脚本,通过lua和obj ...

  2. 安卓版按键精灵内存读取游戏人物的坐标详细教程

    按键精灵手机官方一直表示按键精灵为绿色软件,官方论坛会屏蔽掉相关讨论.而且市场上只有某猿的教程,感觉用按键精灵写的内存脚本现在还没有推广开来,大多数人都是不清楚,很多人用GG自带的lua或者Xscri ...

  3. android 多个按键精灵,给大家分享一个,按键精灵安卓版,找多图, 以及找多图返回多个坐标的,相信大家绝对用得到 _ 按键精灵手机版 - 按键精灵论坛...

    大家感觉有用的回复多多支持一下,下面这个找图代码,是我平时写代码,都用到的,我感觉不错,毕竟用起来有大漠的感觉,哈哈 //TracePrint "--" Dim 找图组合,图片数组 ...

  4. python和按键精灵自动化测试_高级版按键精灵,同时也是UI自动化测试的好帮手 - SIKULI...

    一个具有一定规模的网络服务在新版本的上线前,一定会进行详细的 QA 测试,但目前的测试工具大多是以代码的测试为主,只有少数的工具能够支持 UI 上的测试,而 SIKULI 便是自动化 UI 测试的好帮 ...

  5. android x86 按键精灵,界面版按键精灵的使用【包含内置浏览器、打开程序的方法】...

    包含界面的脚本.....................................................自己拖拽包,根据这里的控件名命名,然后自己拖拽 '打开九阴真经 Event Fo ...

  6. android 的函数调用,安卓版在函数内部调用子程序,子程序如何能得到函数过程中得到的变量 _ 按键精灵手机版 - 按键精灵论坛...

    Function head() Dim intX,intY FindPic 169,863,319,1420,"Attachment:11.png","000000&qu ...

  7. java版安卓按键精灵_纯Java实现跨平台鼠标键盘模拟、找图找色,Java版按键精灵...

    由原本的Java使用JNI调用dll实现模拟辅助操作,升级到纯Java来实现,最新:https://github.com/xnx3/xnx3 仙人辅助_寻仙自动打怪 /** * 鼠标.键盘.延迟等基本 ...

  8. 屌丝也能开发安卓版2048(App Inventor)

    想编写安卓游戏.java太难.来试试App Inventor.尽管有人觉得他是中学生的玩具,可是也能编写2048这种火爆游戏,不须要太复杂的算法. 整个游戏有几个模块: 一.游戏初始化 数列转化为图形 ...

  9. win10丐版按键精灵AutoMaster1.0

    目录 前言 效果 代码说明 前言 这几天捣鼓win下的自动控制鼠标点击和键盘输入,想自动化执行一些任务.于是用python写了一个自动点击.效果如下: 效果 1.启动效果 页面实现录制脚本.启动脚本. ...

  10. java 鼠标精灵_纯Java实现跨平台鼠标键盘模拟、找图找色,Java版按键精灵

    由原本的Java使用JNI调用dll实现模拟辅助操作,升级到纯Java来实现,最新: https://github.com/xnx3/xnx3 1.[代码][Java]代码 /** * 鼠标.键盘.延 ...

最新文章

  1. 力扣(LeetCode)刷题,简单+中等题(第29期)
  2. Linux期末复习题库(1)
  3. 从源码分析DEARGUI之add_progress_bar
  4. 操作和维护经常使用的命令
  5. 服务器控件 原生html,应用样式到HTML服务器控件
  6. 基础的shell编程问题(二)
  7. 信息学奥赛C++语言:输出亲朋字符串
  8. Fantageek翻译系列之《使用Autolayout显示变化高度的UITableViewCell》
  9. java暂停脚本_用Rhino解析Java中的JavaScript:暂停/恢复脚本
  10. 使用不同的膨胀和腐蚀方法对图像进行处理
  11. java 利用时间生成主键
  12. 全球光伏产业战加剧:美国考虑对进口太阳能电池施加紧急关税
  13. OpenCV学习:找出人脸,同时比较两张图片中的人脸相似度
  14. matlab 带积分的方程,在Matlab中实现积分方程的迭代解
  15. 三洋p6系列伺服电机说明书_松下A6系列驱动器电路板坏了维修_常州凌科自动化科技有限公司...
  16. 【中国农业银行风险管理部总经理 田继敏】筑牢IT风险第二道防线 保障银行信息科技安全
  17. 蓝色动力(DVD版)GHOSTXP SP3纯净选择版V2012.06
  18. HomeKit 开发指南(中文版)
  19. 自监督学习中的 Contrastive Learning 对比学习(持续更新)
  20. python documents in chinese_基于 Python 的简单自然语言处理实践

热门文章

  1. 计算机网络(第7版) - 第七章 网络安全 - 习题
  2. 针对所维修的计算机 维修人员必须,医院各科室电脑管理制度_医院临床科室管理制度...
  3. 程序与生活:你是软件程序员还是软件工程师?
  4. 用 CSS 实现 AirDrop 动效
  5. 对微软winsock PC端开发蓝牙疑问
  6. iframe异步加载技术及性能转
  7. Arthas线上代码诊断神器-定位问题
  8. 什么是飞书机器人?如何定时发送飞书机器人消息?
  9. mysql 基础 打油诗
  10. 完美解码播放器(PotPlayer)关闭自动播放下一首的方法(找了好久)