adb socket通讯

53 篇文章 0 订阅
本文介绍了在机器人开发中如何利用adb的socket功能进行数据传输。通过adbforward命令建立PC与Android设备之间的端口转发,实现了PC与设备间的双向通信,避免了通过文件传输的不便。这种方法简化了在测试环节获取机器人内部运行结果的过程,适用于自动化测试和开发调试。
摘要由CSDN通过智能技术生成

android - How to use adb socket to get the result from the phone? - Stack Overflow

今天无意中在stack overflow上看到一个之前解决过的问题,想想还是总结一下,帮助遇到跟我同样问题的人。

之前在做机器人开发的时候,有一个测试环节,需要测试机器人的底盘、大脑,其中包括硬件和软件,机器人跟外界的连接有两个,一个是WiFi,一个是USB device口,WiFi在生产环节并不是很实用,在产线上的配网是通过摄像头扫码自动配网的,但是这个环节比较靠后,在刚SMT完成之后的测试时,摄像头是还没有安装的,如果要是在这个环节临时安装一个摄像头,还是比较繁琐的,摄像头比较精密,接口也不适宜频繁插拔,所以就只能使用USB口了。

这个USB口本来是用来给机器人刷写固件和应用程序的,后来产线可以直接在芯片SMT之前就刷写进去,所以这个口就只用于测试以及开发人员平时的调试了。平时我们都是adb shell登录到机器人,然后人工查看各种参数信息。但是用户测试,还真不知道该怎么做,一直都是使用shell和pull/push文件,如果在机器人里面运行一个自动test的程序,怎么才能把结果返回给PC呢?难道使用文件吗?感觉一点都不make sense。adb既然可以用来传输文件和shell操作,为什么不能实现数据通讯呢?本来usb device也是可以通讯的啊?!后来反复研究adb的相关使用,发现adb socket的使用就是为了数据传输使用的。

adb forward tcp:18000 tcp:19000

这个命令就是转发PC的一个端口数据到Android设备或者其他使用了adb的设备上的一个端口。这条命令的意思是,转发PC端口18000的数据到设备端的19000端口,也就是说,PC端的18000端口和设备端的19000端口绑定了,在PC上发给18000端口的数据,在设备端19000端口就可以收到,反之亦然。

剩下的事情就很简单了,无非就是网络通讯编程了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值