1

我已经编写了一个可执行文件,并将其推送到 /system/bin。

运行文件后,它会给出一个浮点数的结果。

现在在PC端,我想得到这个结果。

首先我将这个浮点数写入一个文件并使用'adb pull'来拉这个文件,然后读取文件。因为我需要经常做这个操作,可能每秒2次。这会导致手机性能不佳。

使用 adb socket 会不会影响不大?我的可执行文件应该在哪里输出?adb socket如何得到结果?

谢谢。詹姆士。

4

3 回答 3

1

如果你让电话保持连接,你可能只是这样做

adb shell /system/bin/myexecutable

并让您的二进制文件将其输出打印到标准输出。只要你的程序运行得很快,每秒两次不应该太快。否则,你可以做

adb shell cat /somewhere/myoutfile

查看当前文件中的内容。

于 2012-08-20T08:40:42.703 回答
1

如果有可用的 ADB 连接,您可能会logcat用作将数据从 Android 应用程序获取到桌面计算机的媒介。

我的想法是有两个部分:

  1. 使用 logcat 将您的应用程序输出记录到 Android 端的唯一 TAG。例如,

    Log.d("MyAppOutput", "This is the output I am looking for");
    
  2. 在桌面端,您可以运行专门针对该 TAG 的命令行,例如:

    adb logcat -s MyAppOutput
    

我相信这将使您能够近乎实时地从 Android 应用程序中读取结果。如果您需要知道日志消息的时间戳,可以添加-v time参数为每条消息添加时间戳。

于 2012-08-20T08:50:01.120 回答
0

我之前也有同样的问题,您不需要将结果输出到文件,只需将结果输出到套接字端口,然后使用 adb forward 通过 adb 套接字在您的 pc 上获取结果。这就是您需要的解决方案。

adb 转发 tcp:18000 tcp:19000

这条命令的意思是,pc 的 tcp 端口 18000 绑定到设备的 tcp 端口 19000,如果你向 pc 的 18000 端口发送数据,你可以从设备的 19000 获取数据。反之亦然。

于 2021-11-05T00:53:51.747 回答