gpt4 book ai didi

java - 如何使用adb端口转发?

转载 作者:行者123 更新时间:2023-11-29 18:55:17 27 4
gpt4 key购买 nike

我正在为 Android Studio 创建一个调试插件,这将启动一个服务器并监听一个端口。通过 USB 连接的设备(运行 adb deamon 的移动设备)。

我的应用程序将发送一些文件、请求、日志数据到端口。这是我的概念。

所以我想通过USB发送。在进行一些挖掘时,我发现 ADB 端口转发/反向 是解决此问题的方法。但是我不理解使用 adb 进行端口转发的整个概念。

  1. 我想在开发机器和移动设备上启动 ServerSocket 吗?

  2. 如果是这样,我启动了 ServerSocket: on port 8080 和设备 ServerSocket: on 9090 然后执行 adb forward tcp:8080 tcp:9090 会被转移到开发机器上的 8080 吗?

  3. 他们如何转发或重定向到机器端口?

  4. 如何从 java 代码执行 adb 命令?

最终目标是我想从手机到开发机器与我的应用程序/库进行通信。

我对网络和这类事情一窍不通。

提前致谢。

最佳答案

我建议您阅读并按照 this 中解释的步骤进行操作教程。当我为 PC 游戏编写 android 游戏 Controller 时,本教程对我很有帮助,其中 android 应用程序通过 USB 向 PC 发送输入(使用 adb)

  1. 我想在开发机器和移动设备上启动 ServerSocket 吗?

不,只有一侧必须打开 ServerSocket(对我来说,在 Android 设备上打开 ServerSocket 并使用来自 PC 的客户端套接字进行连接非常有效)

  1. 如果是这样,我在端口 8080 上启动 ServerSocket:在端口 8080 上启动设备 ServerSocket:在 9090 上然后执行 adb forward tcp:8080 tcp:9090 将转移到开发机器上的 8080/strong>?

不知道在开发机器上打开 ServerSocket 是否适合你,当我使用 adb 时它对我不起作用。确保您正在执行以下步骤

一个。在一侧打开 ServerSocket 并监听连接 (ServerSocker.accept()) 说端口号 38100

从开发机器执行 adb 命令 forward tcp:38300 tcp:38100

然后在客户端调用 socket = new Socket("localhost", 38300);

传输数据

  1. 如何从 java 代码执行 adb 命令?

使用java运行时类

String adbPath = "C:\\android-sdk-windows\\tools\\adb.exe";
Runtime.getRuntime().exec(adbPath + " forward tcp:38300 tcp:38100");

参见 Execute external program from java

关于java - 如何使用adb端口转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50019517/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com