我的目标是编写一个在手机上运行的应用程序,让用户从APK列表中进行选择,然后将选择的应用程序安装到同一网络上的Android Things设备上。
我们实际上可以忘记Android Things,因为相同的代码可以在两部手机之间工作,只是因为目标可以通过许多其他方式接收APK,例如附件,BT等除了最近宣布的Android Things Console之外,AT设备只有ADB用于定期本地开发。因此,我希望复制PC安装它的顺序,即" adb connect,adb install ..."等,但从手机本身。我们可以假设所涉及的所有设备都已植根。
在我看来,这意味着我的应用程序必须将这些命令作为一个过程发出,但我很难让它完全正常工作。当我发出" adb help"我收回了帮助信息,当我发出" adb reboot"设备重新启动,所以我认为我在正确的路线上。当我尝试除了那些我什么也得不回的东西之外 - " adb shell ping -c 1 192.168.62.40"失败了,但PC上的ADB可以。此外,它非常好奇" adb版本"从终端再次没问题就失败了。
起初我以为手机可能只有一个" adb lite"安装了刚好足以使它们作为adb目标工作,但是使用PC上的shell显示情况并非如此。
这是我尝试的代码:
:norm! normal-command-here
答案 0 :(得分:5)
问题在于adb
客户端(用于与ADB 服务器通信,后者与开发计算机上的设备进行通信)未安装在Android设备上。但是,adbd
守护程序(用于在adb
客户端和设备之间进行通信)可以在Android系统上找到。
有一些选项可以帮助您在Android设备上使用adb
客户端:
adb
sources on GitHub。adb
客户端
adb
“客户”。由于adb
客户端和adbd
守护程序通过USB或TCP进行通信,因此您可以尝试模拟通信协议以在设备上打开读/写流。有关客户端守护程序通信协议here的更多信息。我正在处理的这个库可能会对您有所帮助:eviltak/adb-nmap 快速和脏选项是从源构建adb
客户端并推送到设备。也就是说, if 你可以在Android设备上构建它。
第二种选择可能是最耗时的,但可能是最“干净”的选择。但是,您必须模拟adb
身份验证系统,正确处理流等等,这可能很麻烦。来源会帮助你。
在任何一种情况下,GitHub adb
源目录都应该包含您未来漫长道路所需的一切。如果没有,那么你必须自己解决这个问题。