我正在为Android Studio创建调试插件,这将启动服务器并侦听端口。该设备(移动与adb deamon运行)通过USB连接。
我的应用程序将发送一些文件,请求,只将数据记录到端口。这是我的概念。
所以我想通过USB发送它。虽然我发现了一些挖掘 ADB端口转发/反转的答案。但我并不了解使用adb的端口转发的整个概念。
我想在开发机器和移动设备上启动ServerSocket
吗?
如果是,我启动ServerSocket: on port 8080
和设备ServerSocket: on 9090
然后执行adb forward tcp:8080 tcp:9090
将转移到开发机器上的8080
?
他们如何转发或重定向到机器端口?
如何从java代码执行adb命令?
最终目标是我想与我的应用程序/库通信,从手机到开发机器。
我是网络和这类事情的小伙子。
提前致谢。
答案 0 :(得分:1)
我建议您阅读并遵循this教程中说明的步骤。当我为PC游戏编写安卓游戏控制器时,这个教程真的帮助了我,其中android应用程序通过USB向PC发送输入(使用adb)
不,只有一方必须打开ServerSocket(对我来说在Android设备上打开ServerSocket并使用来自PC的客户端套接字连接工作完美)
不知道在开发机器上打开ServerSocket是否适合你,当我使用adb时它对我不起作用。确保您正在执行以下步骤
一个。一边打开ServerSocket并侦听连接(ServerSocker.accept())说端口号为38100
湾从开发机器执行adb命令forward tcp:38300 tcp:38100
℃。然后在客户端致电socket = new Socket("localhost", 38300);
d。传输数据
使用java Runtime类
String adbPath = "C:\\android-sdk-windows\\tools\\adb.exe";
Runtime.getRuntime().exec(adbPath + " forward tcp:38300 tcp:38100");