上2篇写了dfs算法和matchTemplete模板匹配 成功的拿到了游戏的二维数组地图并且得出了解
但是电脑没有手,所以只能通过软件去模拟触摸屏幕,也就是adb了
adb全称 Android Debug Bridge
是电脑用来调试手机用的,功能非常的丰富,比如gps位置模拟等等,我们做游戏辅助主要用的是触摸屏幕模拟+手机屏幕截屏+文件传输
首先是给计算机安装adb
这个百度搜一下网上的资料很多
安装后在命令行输入 adb 效果如图
可以看到adb 支持的命令是非常多的,有很多的功能,大家有兴趣可以去研究一下
然后就是手机和电脑的连接了
首先手机需要开发开发者模式
这里以三星为例
打开手机的
设置–>关于手机–>软件信息–>编译编号
在编译编号上面点击3次 打开开发者模式
返回设置一级界面,找到最下面的开发者选项,点击进进入
找到 USB调试 把 USB调试打开
然后把手机和电脑通过usb线进行连接
在电脑上新开一个命令行窗口
输入
adb devices
看到类似下图 则表示连接成功了
ok
我们把我们用到的3个命令讲一下
1.第一个是模拟触摸的命令
adb shell input tap x y
x 和 y 表示屏幕上的 x y 坐标 和 游戏地图一样都是以屏幕左上角作为坐标原点,越往下y越大,越往右,x越大
比如
adb shell input tap 500 500
2.第二个命令是手机截图命令
adb shell screencap -p /sdcard/screen.png
这个命令会把手机屏幕的显示内容截屏,并把内容保存到手机存储中
这里有一个问题一直比较好奇就是路径的问题
/sdcard/screen.png 按照这个路径截图 ,会保存到手机内部存储的根目录,但是sdcard 不应该是外部的存储卡么.
有哪位知道的大佬可以点拨一下.
还好这个路径不需要我们担忧啥的,既然 /sdcard/screen.png 是保存在内部存储的根目录,那我们直接从根目录取文件 就行了.
3.手机文件上传电脑命令
adb pull /sdcard/screen.png .
这个命令会把手机存储的根目录下的screen.png文件 上传到电脑执行这个命令行的目录下
ok 这个是比较轻松愉快的,到这里几乎的命令使用就已经结束了
接下来来唠嗑唠嗑
在我上大一的时候那个时候接触Android开发,当然那个时候是个菜鸡,我记得老师说过安卓是基于linux开发的,只不过那个时候linux不承认,后来Android 火了,linux也就往脸上贴金了.
为什么说这个了, 我想说的是 其实我们的Android 手机本身也是一个定制化的Linux系统,所以你也可以像使用linux 命令那样使用它.
比如 我们上面的
adb shell input tap x y
我们的安卓手机本身就是一台Linux,只不过他比我们常用的阿里云 百度云 多了一些 硬件 比如 摄像头 指纹传感器 屏幕 等等,所以它就支持了一些特殊的命令.
那就来个常用的试试?
比如
free -h
查看内存
可以看到我手机的内存是3.4G
如果想省去前面的 adb shell
可以先输入adb shell 然后再 free -h
ok 到这里基本上就全部结束了.大家整合一下代码基本上都可以把程序跑起来
但是在我实际跑的时候发现了一个问题,那就是通过 adb shell input tap x y 进行模拟触摸屏幕 速度实在是太慢了
大概0.8s 左右 完成一次触摸, 有的时候一个地图那么多的方块, 光是模拟点击就需要大约20s 甚至更长,效率实在是太低了
下一章我们来讲讲 如何来加快模拟点击屏幕,达到更高的效率.
今天是大年初一,祝大家新年快乐