Android 如何使用adb套接字从手机中获取结果?

Android 如何使用adb套接字从手机中获取结果?,android,adb,Android,Adb,我已经编写了一个可执行文件,并将其推入/system/bin 运行该文件后,它将在float中给出一个结果 现在在PC端,我想得到这个结果 首先,我将这个浮点数写入一个文件,并使用“adb pull”来拉取这个文件,然后读取这个文件。 因为我需要经常做这个操作,可能每秒2次。这会导致手机性能不佳 当我使用adb套接字时,它是否影响很小? 我的可执行文件应该输出到哪里? 如何得到结果 谢谢。 詹姆斯。如果你让电话保持连接,你可能就这么做了 adb shell /system/bin/myexecu

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

运行该文件后,它将在float中给出一个结果

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

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

当我使用adb套接字时,它是否影响很小? 我的可执行文件应该输出到哪里? 如何得到结果

谢谢。
詹姆斯。

如果你让电话保持连接,你可能就这么做了

adb shell /system/bin/myexecutable
让你的二进制文件输出到标准输出。只要你的程序运行得很快,每秒两次应该不会太快。否则,你可以这样做

adb shell cat /somewhere/myoutfile

查看当前文件中的内容。

如果有可用的ADB连接,您可以使用
logcat
作为从Android应用程序向桌面计算机获取数据的媒介

我的想法是有两部分:

  • 使用logcat将您的应用程序输出记录到Android端的唯一标记上。比如说,

    Log.d("MyAppOutput", "This is the output I am looking for");
    
  • 在桌面端,您可以运行专门查找该标记的命令行,如:

    adb logcat -s MyAppOutput
    

  • 我相信这可以让你近实时地阅读Android应用程序的结果。如果您需要知道日志消息的时间戳,可以添加
    -v time
    参数,在每条消息前面加上时间戳。

    我想使用结果,而adb shell命令在我频繁使用时会导致手机性能不佳。这让我惊讶的是,您的性能不佳。你能量化一下吗?但是,如果你想使用结果,你可以很容易地做到这一点——只要在你想的任何地方通过管道传输任一命令的输出。我不知道“只要在你想的任何地方通过管道传输任一命令的输出”是什么意思。PC的操作系统是win7。在我的应用程序中,有一个计时器(1秒),如果它定期调用adb shell命令,可能会导致应用程序没有响应。啊,我的坏。我假设linux系统中的管道是有意义的。在我的系统上,每秒运行一次adb shell不是问题。。。很抱歉,我不能提供更多帮助。我没有Android应用程序,可执行文件只是获取CPU使用率,现在我正在尝试编写服务器以监控端口,在PC端,发送命令通知服务器发送结果。由于您的问题表明您已编写可执行文件,我假设您可以访问源代码。无法修改可执行文件以将其输出写入logcat而不是文件。它可以在一个循环中运行,并每秒多次写入logcat,以便您的PC应用程序读取。这意味着你永远不需要提取任何文件,只需要不断跟踪logcat。我的可执行文件是用C语言编写的,如何将其输出修改为Locat?我认为在手机中运行循环的后台进程可能会消耗手机有限的CPU和内存。我假设您使用的是NDK。检查此链接()以写入logcat。如果bg进程只是在500毫秒后醒来并运行快速扫描然后睡觉,那么它不应该消耗手机的资源。当然,它不会比当前的实现有更多的负载。这个想法对我帮助很大,所以我给了它+1。虽然它似乎不能回答这个问题。但我寻找了一种简单的方法来检查我的应用程序是否在android上启动并正常运行。这是我检查的好方法