最近玩手游,发现现在的手游设定都有类似的套路,剧情模式练级,副本模式刷合成材料,团队打boss,充值抽英雄碎片,充值可以让变强的速度更快,不想充钱就每天固定刷些副本积攒。剧情模式玩完之后,就是无聊的刷副本,最终都沦为反复的滑屏切屏动作。又又想到能不能自动刷了。
上网搜索了一番后,接触到开源软件AndroidScreencast,可以将安卓手机通过USB连接电脑后,进行投屏,可以用电脑来控制。
AndroidScreencast
-
下载:https://github.com/xSAVIKx/AndroidScreencast/releases
-
安装设置 :
解压缩后,修改文件app.properties,设置
设置adb pathadb.path=./adb.exe
因为是java运行程序,电脑需事先安装Java SDK 13.1,记得设置JAVA_HOME环境变量,或者将java运行路径添加到PATH环境变量中。 -
手机设置,确保电脑可以adb连接手机:
-
开启USB调试
进入开发者选项,开启USB调试 开启USB
-
设置 允许通过USB控制手机
有的手机可能需要此设置,如果PC上点击后手机无反应,请自行检查,开发者选项下面是否有类似设置。 image.png
- adb连接
PC连接手机后,在安装包目录下启动CMD,执行adb devices
查看是否存在手机 adb devices
-
-
启动运行:
image.png
在在安装包目录下启动CMD,执行
java -jar androidscreencast-0.0.16s-executable.jar
用鼠标点击屏幕,会出现下面类似input命令打印,同时可以看看手机屏幕反应
image.png -
软件运行原理简介:
- 实时获取安卓手机截屏
- PC同步绘制
- PC上鼠标按键动作,转换成input 命令
input tap 1571 879 # 点击像素点对应屏幕位置 input swipe 566 620 441 1384 # 从像素点滑动到另一像素点 input keyevent 5 # 点击触发特定事件,如拨号,回到主页等
- 利用adb shell 执行input命令来操作手机
利用获取到的命令,来模拟手机操作,自动刷游戏副本
这个软件目前的屏幕实时刷新率较低,PC上控制时所显示的画面与实际手机画面有较明显的迟滞。
反复的动作,可以通过这个软件捕捉到相应input命令操作,然后进行组织,做成批处理脚本。
一个简单示例,王者荣耀刷关卡模式刷金币:
启动关卡任务后,记录每一次点击时触发的input命令,以及备注命令是对应什么操作的,最终的日志以及操作标注如下:
11:06:15 E/ddms: execute: called 'input tap 1571 879' from the Event Dispatch Thread! 开始
11:06:30 E/ddms: execute: called 'input tap 2086 50' from the Event Dispatch Thread! 第一次跳过
11:07:53 E/ddms: execute: called 'input tap 2072 34' from the Event Dispatch Thread! 第二次跳过
11:08:04 E/ddms: execute: called 'input tap 2072 34' from the Event Dispatch Thread! 第三次跳过
11:08:17 E/ddms: execute: called 'input tap 1065 964' from the Event Dispatch Thread! 任意键结束
11:08:34 E/ddms: execute: called 'input tap 1826 979' from the Event Dispatch Thread! 重新开始
上面既是一次完整的任务过程,最后写成Linux脚本test.sh如下:
定义函数task表示完成一次关卡,循环执行90次
#!/bin/bash
task() {
#点击开始
input tap 1571 879
sleep 15
#初始跳过
input tap 2086 50
sleep 81
#第二次跳过
input tap 2072 34
sleep 12
#第三次跳过
input tap 2072 34
sleep 12
#结束后,点击任意键
input tap 1065 964
sleep 7
#点击重新闯关
input tap 1826 979
sleep 4
}
N=0
while (( $N<90 ))
do
task
((N++))
done
adb push test00.sh sdcard/
将上面脚本拷贝到手机中,
adb shell
进入手机shell后执行该脚本
sh -x sdcard/test00.sh
网友评论