使用nodejs和adb shell 操作手机
intro
  一直在玩一款叫《云裳羽衣》的换装手游(不要问我为什么一个糙汉子玩换装游戏,只是比较喜欢古风和收集元素而已,所有非常合适)
  然而游戏中有一个的日常叫评选赛,就是点评别人的搭配。本来也没什么,奖励是固定的,随便点评就是了,问题出在数量上,一天一共要点评60次,再加上难熬加载的时间,使得这个日常烦人且无趣。
分析
  考虑到流程,每次出现需要点评的时候,先点击底部的评分,一般固定4分,然后点击跳过,加载下一条,然后循环操作。操作是固定的,那么就用电脑通过adb来替我们操作
知识点
- 使用node 的child_process来执行shell命令
child_process.exec(command[, options][, callback])
启动子进程来执行shell命令,可以通过回调参数来获取脚本shell执行结果
child_process.execfile(file[, args][, options][, callback])
与exec类型不同的是,它执行的不是shell命令而是一个可执行文件child_process.spawn(command[, args][, options])
仅仅执行一个shell命令,不需要获取执行结果child_process.fork(modulePath[, args][, options])
可以用node 执行的.js文件,也不需要获取执行结果。fork出来的子进程一定是node进程
在这里,我们使用exec就可以了
2. 使用adb shell 操作手机
由于我们只需要点击操作,所以shell语句如下adb shell input tap x y
最后两个为点击点的x坐标和y坐标
对于坐标,可以在开发者选项中打开指针位置,手机会顶部显示当前触控点的坐标
上代码
好了,内容就这些,剩下的就是写个循环,定时执行shell分别点击两个坐标点就行了,完整代码如下,测试后大概没啥问题🤣🤣🤣
1 | var process = require('child_process'); |
bat批处理版本
20190527更新
好吧 很多小伙伴没装node,那就给一个bat批处理吧
1 | @echo off |
复制后新建个文本文档,贴进去保存为bat格式运行,请先插上手机并启动adb,我的习惯是执行一遍adb devices,当然,前提是电脑上有adb……
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 鼠鼠在碎觉!
评论
WalineGitalk