前言
这是我假期练手小项目——钢琴块2(别踩白块儿2)自动程序——的前置科技树,主要是为了实现对屏幕的抓取和点击操作。
android
截屏和模拟点击通常的方法是使用
python+adb
。确实,
adb
简单快速通用性强,我一开始也是以为
adb
能够很快解决我的问题,一小时搞定然后专心写算法。但实际运用过程当中,发现
adb
的最大缺陷就是速度太慢,截图需要一秒,点击需要
500ms
。如果说只是触犯了一个
C++
学习者的洁癖就算了,但是由于
“
钢琴块
2”
是个需要快速反应的游戏,所以完全无法满足要求。迫不得已自己造了个轮子。
作为一篇总结,本文将会详细总结所有我知道的方法。
测试平台为win10 x64 1709 + VS2013 + python3.6.2,安卓设备分别为雷电模拟器(android 5.1.1),Total Control(远程桌面)和Mi 5s(android 7.0 ,MIUI 9.1.3.0)。
adb
adb全名Andorid Debug Bridge. 顾名思义, 这是一个Debug工具.
然而, 为何称之为Bridge呢? 因为adb是一个标准的CS结构的工具, 是要连接开发电脑和你的调试手机的.包含如下几个部分:
Client端, 运行在开发机器中, 即你的开发PC机. 用来发送adb命令.
Deamon守护进程, 运行在调试设备中, 即的调试手机或模拟器.
Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Deamon之间的通信.
然而, 为何称之为Bridge呢? 因为adb是一个标准的CS结构的工具, 是要连接开发电脑和你的调试手机的.包含如下几个部分:
Client端, 运行在开发机器中, 即你的开发PC机. 用来发送adb命令.
Deamon守护进程, 运行在调试设备中, 即的调试手机或模拟器.
Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Deamon之间的通信.