基于adbkit的android设备管理(精简版stf)
起因
是看到stf(设备管理平台)有开源了adbkit这个精简的adb交互库,又觉得部署stf太麻烦了,就想着用adbkit实现一个精简的设备管理,用于自动化测试
思路
先引入adbkit
前期首先这是一个node项目,先引入adbkit
npm install adbkit --save
监听设备
把多个android手机插入同一台电脑,如果每次都用adb devices去查询,未免有些太过麻烦,而adbkit提供了监听的方法
const client = AdbInteraction.getInstance().getClient() client.trackDevices().then((tracker) => { tracker.on("add", async (device) => { console.log(device.id) } }
其中的device.id就是设备的serial号(即adb devices中的id)
设备管理
当设备连接后,可以在监听事件中对设备分配一个端口,并绑定端口
const client = AdbInteraction.getInstance().getClient() const bridge = {} client.trackDevices().then((tracker) => { tracker.on("add", async (device) => { // 指定一个端口,或者可以写一个方法去分配 const availablePort = 3000 // 创建一个adb usb连接 bridge[serial] = client.createTcpUsbBridge(serial, { auth: () => Promise.resolve() }) // 绑定端口 bridge[serial].listen(availablePort).on("error", (e) => { console.log("err" + e) }) // 设备信息写入数据库 // 如serial号,port号 } }
这里我们假设分配3001端口给刚刚连接到的设备,直接执行命令
adb connect ip:3001
这里的ip是插着android设备的那台主机,这样我们就成功连接了设备
管理多个设备
按照这个思路,我们可以同时开发出一套服务,通过调用接口来查询当前连接着的设备
我们选用koa2的框架
git clone https://github.com/javieraviles/node-typescript-koa-rest.git
然后进行这个项目的教学进行常规部署
npm install npm run watch-server
在controller层定义接口(有点像spring)
我们可以从controller定义一个接口,去从数据库中读取我们刚才保存过的数据
@request("get", "/devices") @summary("Find devices") public static async deviceList(ctx: any): Promise<void> { console.log(ctx.query.biz) ctx.status = 200; // 这里的数据来源于数据库,可自定义实现 ctx.body = DeviceDbManager.getInstance().fetchDeviceList(); }
我们可以返回这样的格式
[ { "serial": "#####", "ip": "192.168.x.x", "port": 3001, "connStatus": 1, "updateTime": "2023-08-31T04:53:55.113Z" } ]
至此就可以实现一个简单的设备管理,查询
也可以对设备进行借用、释放等操作
完整的项目也在这个地址分享 https://github.com/sonar-su/android-device-manager
以上就是基于adbkit的android设备管理(精简版stf)的详细内容,更多关于adbkit android设备管理的资料请关注脚本之家其它相关文章!
- Android设备adb连接后显示device unauthorized解决方案
- android中的adb命令学习
- 超详细的Android开发调试工具ADB命令及安装介绍
- android中adb命令最全总结
- 详解android adb常见用法
- adb通过wifi连接android设备流程解析
- Android adb命令中pm工具的作用及用法说明
- Android adb安装apk时提示Invalid APK file的问题
- Android user版通过adb_enable开启adb 调试 不提示对话框的流程分析
- Android PC端用ADB抓取指定应用日志实现步骤
- Android 实现永久性开启adb 的root权限
- 关于ADB的Android Debug Bridge(安卓调试桥)那些事
- Android客制化adb shell进去后显示shell@xxx的标识
- android设置adb自带screenrecord录屏命令
- Android 修改adb端口的方法
- Android中ADB命令用法大结局
- Android开启ADB网络调试方法
- Android ADB简介、安装及使用详解
相关文章
Android编程使用自定义shape实现shadow阴影效果的方法
这篇文章主要介绍了Android编程使用自定义shape实现shadow阴影效果的方法,涉及Android中xml文件布局的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-11-11
最新评论