通过 ADB 将数据从 Android Activity 发送到 PC

fir*_*ven 4 android tcp adb android-activity

是否可以将数据从 android Activity 发送到 adb ?我想通过 ADB 启动一个活动并向其传递一些数据,执行操作,然后读取结果。做这个的最好方式是什么 ?

例如: adb.exe shell am start -n com.example/com.example.Adder --ei operand1 10 --ei operand2 20 这会添加 10 + 20 .. 并存储总数 30。我如何获取该值?

我的研究中的这些建议不是一个选项: 1.写入文件,然后使用 pull 从 adb 读取它[手机没有 SD 卡,并且 android 4.3 存在一个错误,这意味着 run-as 命令不起作用] 2.打开一个套接字并通过它发送数据[我不想依赖网络]

更新:所以我已经能够按照 Chris 的建议通过 adbforward 做一些事情。我首先启动adb转发:adb转发tcp:10000 tcp:10000;

然后在我的 android 应用程序上..我创建一个服务器套接字并在 serverSocket.accept(); 处阻塞;然后客户端连接......然后您可以像使用 TCP/IP 套接字一样来回发送数据。

我现在只有一个问题,ADB 中没有记录该问题;一旦设置了转发,即使 Android 端尚未设置,客户端似乎也会连接到服务器套接字。为什么会这样,一旦我的 clientSocket 连接到这个“影子”套接字,是否可以检测到 serverSocket 尚未设置?

jpi*_*a11 6

我有一个已经做到这一点的代码,请阅读我的博客,是西班牙语的,但该代码是通用语言:D

我通过 JavaScript 使用 webSockets、Android 设备中的 WebSocket 服务器和网页中的 WebSocket 客户端。

Android 设备必须处于 USB 调试模式,并且必须在 PC 的命令行中执行“adbforward tcp:38300 tcp:38300”以创建允许 WebSocket 连接的“隧道”。