我一直在寻找答案或过去三天,但尚未找到有效的答案。我正在尝试编写一个可以使用自定义命令从ADB控制的Android应用。无论如何,我可以在应用程序和ADB Shell之间来回发送字符串吗?
在此先感谢您,对我的菜鸟问题表示抱歉。
当然,有几种方法可以做到这一点。
您可以使用unix域套接字,并通过android应用程序和通过滥用ndk构建的命令行可执行文件打开它,并推送到设备上与版本相关的位置(/data/local,/sqlite_stmt_journals,等)并运行。编辑:在较新的android版本中,可能没有这样的可写/可执行目录。您可能必须让应用程序本身将可执行文件写到其私有(private)目录中,并对其设置全局读取和执行权限。进一步编辑:adb也可以转发unix套接字。 与Internet套接字相同,只是现在您可以选择设置adb端口转发(前提是android应用为“服务器”端),以便与android应用直接从开发计算机上运行的进程进行通信,而不通过adb shell传递数据。除非声明互联网许可令人反感(与其让您的PC端应用程序“驱动” adb引起关注,否则这应该是最不用担心的方法),这可能是最接近“官方”功能并且对Android版本的依赖性最小的方法。它也可以轻松适应通过wifi进行通信。 您可以使用一对fifos并使用shell命令对其进行读写(出于可移植性,请在应用程序的专用存储中创建它们,但使其在世界范围内可读/可写)您也许可以使用pty 玩一些游戏您可以假设将文件用作邮箱您可以使用“am”命令发送Intent(如果通信效率低下,则至少可用于启动android应用)