Android、Windows和Web三大平台自动化框架API通信协议

这篇博客详细介绍了AndroidBot、WindowsBot和WebBot的开源协议,为使用这三个自动化框架的开发者提供通信协议的使用须知。
摘要由CSDN通过智能技术生成

使用须知


Aibot能力:

        1、AndroidBot,底层自主研发,支持安卓原生APPH5界面元素和图色定位。元素元素定位速度是Appium框架的的10倍,2340*1080 图色定位仅需要50毫秒!

        2、WindowsBot,底层自主研发,支持Windows应用、.NET、WinForm、WPFQTJAVA(Swing和AWTGUI)和Electron 等语言开发的窗口界面元素和图色定位,独家xpath算法 简洁急速,

        元素/图色定位速度分别是可视化RPA3倍和20倍!

        3、WebBot,底层自主研发,支持chromium内核的所有浏览器和应用。C/C++语言基于浏览器内核协议研发而成的一款web自动化框架。速度是selenium 10倍!

        4、Android远程投屏,底层自主研发,可在一台电脑监控观察多台安卓RPA机器人运行状态并批量管理操作

        5、自建OCR服务器,支持文字识别和定位,免费且不限制使用次数!

        6、自研AiboteScriptUI界面开发工具,提供人机交互功能,打包exe发布机器人可以在离线环境运行!

AndoridBot开源协议


Aibote安卓云端自动化框架,采用云端服务模式构建。由安卓手机客户端主动连接服务器/电脑服务端程序,

服务端应采用多线程TCP协议和多个安卓设备通信。构架模式决定了自动化代码部署在云端,能有效防止脚本被第三方恶意破解。

结合Aibote远程投屏技术,可直接连接远程用户设备做自动化机器人编写,完美解决远程自动化测试需求。独家图色定位算法,

50毫秒以内的速度遍历查找2340*1080分辨率的设备。为了让更多人体验到我们产品,我们决议在此公布框架协议,

希望有更多开发者能完善并封装成各种计算机语言,封装请参考nodejs版的函数说明



发送命令协议格式:len/len/len...\ndata

//len:函数名和参数的(字节)长度,统一为十进制 字符串类型

//data:函数名和参数数据 类型为 字符串或字节类型(string/byte)



接收命令协议格式:len/data

//len:返回数据包的(字节)长度

//data:返回的数据,类型为字符串或字节类型(string/byte)



协议示例:

//截图保存

sendData("saveScreenshot", "/storage/emulated/0/Android/data/com.aibot.client/files/1.png", 80, 150, 30, 30, 0, 127, 255);

// 参数一:函数名称

// 参数二:保存的图片路径(手机)

// 参数三:矩形左上角x坐标

// 参数四:矩形左上角y坐标

// 参数五:矩形右下角x坐标

// 参数六:矩形右下角y坐标

// 参数七:二值化算法类型

// 参数八:二值化阈值

// 参数九:二值化最大值

发送数据包:14/61/2/3/2/2/1/3/3\nsaveScreenshot/storage/emulated/0/Android/data/com.aibot.client/files/1.png8015030300127255

返回数据包:"false"或者 "true"



//获取色值

sendData("getColor", 100, 200);

// 参数一:函数名称

// 参数二:x坐标

// 参数三:y坐标

数据包:8/3/3\ngetColor100200

返回数据包:#000000



//找图

sendData("findImage", "/storage/emulated/0/Android/data/com.aibot.client/files/1.png", 0, 0, 0, 0, 0.95, 0, 0, 0);

// 参数一:函数名称

// 参数二:保存的图片路径(手机)

// 参数三:矩形左上角x坐标

// 参数四:矩形左上角y坐标

// 参数五:矩形右下角x坐标

// 参数六:矩形右下角y坐标

// 参数七:相似度

// 参数八:二值化算法类型

// 参数九:二值化阈值

// 参数十:二值化最大值

数据包:9/61/1/1/1/1/4/1/1/1\nfindImage/storage/emulated/0/Android/data/com.aibot.client/files/1.png00000.95000

返回数据包:成功"x|y" 失败"-1.0|-1.0"



//找图2

sendData("matchTemplate", "/storage/emulated/0/Android/data/com.aibot.client/files/1.png", 0, 0, 0, 0, 0.95, 0, 0, 1);

// 参数一:函数名称

// 参数二:保存的图片路径(手机)

// 参数三:矩形左上角x坐标

// 参数四:矩形左上角y坐标

// 参数五:矩形右下角x坐标

// 参数六:矩形右下角y坐标

// 参数七:相似度

// 参数八:二值化阈值

// 参数九:二值化最大值

// 参数十:多个坐标点

数据包:13/61/1/1/1/1/4/1/1/1\nmatchTemplate/storage/emulated/0/Android/data/com.aibot.client/files/1.png00000.95001

返回数据包:单坐标点成功"x|y"  多坐标点成功 "x1|y1/x2|y2..."  失败"-1.0|-1.0"



//找动态图

sendData("findAnimation", 100, 0, 0, 0, 0);

// 参数一:函数名称

// 参数二:前后两张图相隔的时间,单位毫秒

// 参数三:矩形左上角x坐标

// 参数四:矩形左上角y坐标

// 参数五:矩形右下角x坐标

// 参数六:矩形右下角y坐标

数据包:13/3/0/0/0/0\nfindAnimation1000000

返回数据包:单坐标点成功"x|y"  多坐标点成功 "x1|y1/x2|y2..."  失败"-1.0|-1.0"



//找色

sendData("findColor", "#e8f2f8", "1020#e7f0f7", 0, 0, 0, 0, 1);

// 参数一:函数名称

// 参数二:主颜色值

// 参数三:相对偏移的颜色点,以 "x坐标+y坐标+色值" 字符串形式

// 参数四:矩形左上角x坐标

// 参数五:矩形左上角y坐标

// 参数六:矩形右下角x坐标

// 参数七:矩形右下角y坐标

// 参数八:相似度

数据包:9/7/11/1/1/1/1/1\nfindColor#e8f2f81020#e7f0f700001

返回数据包:成功"x|y" 失败"-1.0|-1.0"



//比色

sendData("compareColor", 100, 200, "#e8f2f8", "1020#e7f0f7", 0, 0, 0, 0, 1);

// 参数一:函数名称

// 参数二:主颜色值所在的X坐标

// 参数三:主颜色值所在的Y坐标

// 参数四:主颜色值

// 参数五:相对偏移的颜色点,以 "x坐标+y坐标+色值" 字符串形式

// 参数六:矩形左上角x坐标

// 参数七:矩形左上角y坐标

// 参数八:矩形右下角x坐标

// 参数九:矩形右下角y坐标

// 参数十:相似度

数据包:12/3/3/7/11/1/1/1/1/1\ncompareColor100200#e8f2f81020#e7f0f700001

返回数据包:"false"或者 "true"



//手指按下

sendData("press", 10, 20, 3000);

// 参数一:函数名称

// 参数二:x坐标

// 参数三:y坐标

// 参数四:按下持续时间

数据包:5/2/2/4\npress10203000

返回数据包:"false"或者 "true"



//手指移动

sendData("move", 10, 20, 3000);

// 参数一:函数名称

// 参数二:x坐标

// 参数三:y坐标

// 参数四:移动持续时间

数据包:4/2/2/4\nmove10203000

返回数据包:"false"或者 "true"



//手指抬起

sendData("release");

// 参数一:函数名称

数据包:7\nrelease

返回数据包:"false"或者 "true"



//点击坐标

sendData("click", 200, 500);

// 参数一:函数名称

// 参数二:x坐标

// 参数三:y坐标

数据包:5/3/3\nclick200500

返回数据包:"false"或者 "true"



//双击坐标

sendData("doubleClick", 200, 500);

// 参数一:函数名称

// 参数二:x坐标

// 参数三:y坐标

数据包:11/3/3\ndoubleClick200500

返回数据包:"false"或者 "true"



//长按坐标

sendData("longClick", 10, 20, 3000);

// 参数一:函数名称

// 参数二:x坐标

// 参数三:y坐标

// 参数四:长按持续时间

数据包:9/2/2/4\nlongClick10203000

返回数据包:"false"或者 "true"



//滑动坐标

sendData("swipe", 10, 10, 200, 200, 1000);

// 参数一:函数名称

// 参数二:开始x坐标

// 参数三:开始y坐标

// 参数四:结束x坐标

// 参数五:结束y坐标

// 参数六:滑动耗时

数据包:5/2/2/3/3/4\nswipe10102002001000

返回数据包:"false"或者 "true"



//执行手势

sendData("dispatchGesture", "1000/1558\n100/100\n799/800\n234/89", 3000);

// 参数一:函数名称

// 参数二:执行手势坐标位, 以"/"分割横纵坐标 "\n"分割坐标点。注意:末尾坐标点没有\n结束

// 参数三:手势耗时

数据包:15/35/4\ndispatchGesture1000/1558\n100/100\n799/800\n234/893000

返回数据包:"false"或者 "true"



//发送文本

sendData("sendKeys", "aibot");

// 参数一:函数名称

// 参数二:文本内容

数据包:8/5\nsendKeysaibot

返回数据包:"false"或者 "true"



//返回

sendData("back");

// 参数一:函数名称

数据包:4\nback

返回数据包:"false"或者 "true"



//home

sendData("home");

// 参数一:函数名称

数据包:4\nhome

返回数据包:"false"或者 "true"



//最近任务列表

sendData("recents");

// 参数一:函数名称

数据包:7\nrecents

返回数据包:"false"或者 "true"



//发送按键

sendData("sendVk", 187);

// 参数一:函数名称

// 参数二:虚拟键值 按键对照表 https://blog.csdn.net/yaoyaozaiye/article/details/122826340

数据包:6
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值