说到远程真机控制,实际上Github上最著名的是STF工程,我们在Github(github.com)上,可以查到是有几个核心组件模块的1. openstf/minicap 主要负责截图,生成视频流2. openstf/minitouch 主要负责控制
我们分别来说一下核心工作原理
1. Minitouch的原理
我们的Android设备是可以通过adb shell命令实时看到我们的触屏信息的(命令是:adb shell -> getevent),如果您手边有Android设备的话,连接好USB,打开USB调试模式,确保使用adb devcies可以找到您的这部手机之后,您可以尝试使用adb shell进入Android的shell模式,再输入getevent -l,之后只要您操作手机屏幕,您就可以在电脑上看到类似于下面的内容(我手边目前没有Android手机,借用了https://blog.csdn.net/mcgrady_tracy/article/details/46514755这个地址的一张图,您也可以参考这个文档,了解更过关于getevent的概念),很明显的能看出来,我点击的X,Y的坐标是什么。
相对应的,有getevent,就有sendevent,我们可以使用get出来的event按照相同的顺序,时间间隔等条件,再send回去。
而这个sendevent就是minitouch的核心工作原理,我们可以看一下minitouch的源码:
2. Minicap的原理
还是看源码:
Minicap是通过访问Android设备中的graphics/fb0或者是其他的DisplayID来获取屏幕缓存的,由于是直接获取缓存,所以效率非常高。(这块可以简单了解一下这个文档:https://blog.csdn.net/a1w0n/article/details/37727971)