开发背景uiautomator是Android平台上用于UI自动化测试的框架,可模拟用户对设备屏幕的各种操作,如点击、输入、滑动等。Python中有相对成熟的解决方案,普遍应用于自动化测试中。项目地址:
引用站外地址
uiautomator2
codeskyblue
然而,近期在C#项目的开发进程中,我始终未能找到合适的解决方案。基于此状况,我计划借鉴该项目,着手打造一个C#版本的项目。
原理研究首先先了解一下,该项目实现UIAutomator的原理。
简单来说,其实现原理是:在手机内开启一个rpc服务,然后PC端借助adb forward(安卓调试桥端口转发功能)将该服务在手机中的端口转发至本地。随后,PC端向此服务发送诸如点击、输入之类的请求,手机中的该服务便会执行相应操作来完成这些请求。
尝试一下通过以下指令,将U2.jar导入到设备中并启动一个端口固定为9008的服务端
12ad ...
介绍adb(Android Debug Bridge)是Android开发工具包(SDK)中的一个命令行工具,用于在计算机和Android设备之间进行通信和交互。它允许开发人员安装、调试和管理Android应用程序,以及在设备和计算机之间传输文件。
安装步骤安装SDK从android官方网站(SDK 平台工具版本说明 | Android Studio | Android Developers)中下载Android SDK,可以仅下载SDK中的Platform-Tools,Platform-Tools包含了adb与fastboot。
设置环境变量为了使系统中的任意位置都能使用adb,需要对环境变量进行设置。
右键点击此电脑或计算机,选择属性,进入高级系统设置,点击环境变量。在系统变量栏中,找到Path并双击。
点击新建,添加Platform-Tools路径,如下图。
保存。
打开命令提示符(cmd),输入adb version,如果返回类似下面的结果,则表示配置成功。
12345C:\Users\qiata>adb versionAndroid Debug Bridge ve ...
代码片段
未读开发背景一般来说,我们可以通过adb shell screencap指令来截取android设备中的图像,但是获取到的是完整的图像。当我们需要进行图像识别的操作时,需要获取指定区域的图像来进行对比。
功能实现C#部分代码如下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566/// <summary>/// 对指定设备进行屏幕截图并裁剪指定区域,然后将裁剪后的图像保存到指定路径。/// </summary>/// <param name="x">裁剪区域左上角的x坐标。</param>/// <param name="y">裁剪区域左上角的y坐标。</param>/// <param name="width">裁剪区域的宽度。</param> ...
开发背景51单片机需要接收电脑端发送的指令,来控制继电器的通断,从而控制连接电脑端的USB数据线的通断。
指令配置如下
12AT+USB=1 // 连接usbAT+USB=0 // 断开usb
功能实现具体代码如下
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127#include <reg52.h>#include <string.h>#define uchar unsigned char#define uint unsigned intuint dataCount; ...
问题背景系统高级启动选项中,有时找不到“禁用驱动强制签名”的选项。
问题原因一般来说,是由于恢复环境的丢失,WINER.wim丢失造成的。该镜像存在于C盘根目录的Recovery文件夹,该文件夹被删除或精简。
解决方法
首先WIN+X 打开终端(管理员)
输入 reagentc /info 并回车,查看WINER.wim文件是否真的丢失
1reagentc /info
如图所示Windows RE位置为空,说明文件丢失。
在系统盘根目录新建名为Recovery的文件夹,然后再在Recovery文件夹内新建名为WindowsRE的文件夹。完整路径即为C:\Recovery\WindowsRE。
从微软原版Windows ISO镜像中获取WinRE.wim映像,直接提取镜像中install.wim文件。或者也可以从没有丢失WINRE.wim镜像的电脑中拷贝一份。放在C:\Recovery\WindowsRE目录下。
再次WIN+X 打开终端(管理员),输入reagentc /setreimage /path C:\Recovery\WindowsR ...