如何在ADB shell和Android应用之间来回发送消息?

时间:2012-06-18 02:43:14

标签: android android-intent adb

我一直在寻找答案或过去3天,还没有找到一个有效的答案。我正在尝试编写一个可以通过自定义命令从ADB控制的Android应用程序。无论如何,我可以在应用程序和ADB shell之间发回字符串吗?

提前致谢,对不起我的noob qustion。

1 个答案:

答案 0 :(得分:9)

当然,有几种方法可以做到这一点。

  • 您可以使用unix域套接字,并从Android应用程序和您将通过滥用ndk构建的命令行可执行文件打开它,推送到设备上依赖于版本的位置(/ data /本地,/ sqlite_stmt_journals等)并运行。编辑:在最近的Android版本中,可能没有这样的可写/可执行目录。您可能必须让应用程序自己将可执行文件写入其私有目录,并对其设置全局读取和执行权限。进一步编辑:adb也可以转发unix套接字。

  • 与互联网套接字相同,只是现在您可以选择设置前进的adb端口(前提是Android应用程序是'服务器端),以便从开发机器上运行的进程进行通信直接使用Android应用程序,而不通过adb shell传递数据。除非声明互联网许可是令人反感的(它应该比让你的PC端应用程序“驱动”adb更少关注)这可能是最接近“官方”功能并且具有最少的Android版本依赖性的方法。它也可以简单地适应通过wifi进行通信。

  • 您可以使用一对fifos并使用shell命令进行写入和读取(为了便于携带,请在应用程序的私有存储中创建它们,但要使它们在世界上可读/可写)

  • 你可以用pty玩一些游戏

  • 我可以假设您将文件用作邮箱

  • 您可以使用'am'命令发送Intents(至少用于启动Android应用程序,如果通信效率不高)