我意识到这个问题确实是老了,但我解决了这个问题略有不同,我花了一段时间来弄清楚这个简单的解决方案。
我通常使用Windows7 PC或笔记本电脑(取决于我在哪里工作)作为我的前端,因为我喜欢GUI,但我更喜欢在无头Ubuntu服务器上执行所有编辑/编译/调试因为它提供的所有命令行功能。我的目标是让每个Windows系统尽可能多地使用瘦客户端,而无需任何额外的服务(如sshd)或防火墙漏洞。
因此,这里是塞纳里奥:
系统-A:Windows7系统与运行
系统B Android模拟器:用SDK Ubuntu的服务器安装
问题如前面描述System-A上的仿真器绑定到localhost,而不是外部以太网接口,因此System-B上的adb无法访问System-A上的仿真器。您只需在PuTTY中设置远程端口转发,即可将SSH连接到System-B。诀窍是在创建两条隧道时检查“远程”单选按钮,以便隧道方向反向(从登录的服务器到您登录的客户端的隧道)。
最后,对系统-B“localhost”的建立SSH连接后,与亚行进行连接:
System-B$ adb connect localhost
connected to localhost:5555
System-B$ adb devices
List of devices attached
localhost:5555 device
现在,您可以下载图像/调试正常,这是一个微不足道的如果您想将笔记本电脑取出并喝杯咖啡,则可以切换到其他Windows系统。
此外,通过以同样的方式隧道连接端口5037,您实际上可以转发adb服务器连接,以便您可以通过System-A上的USB连接真实的Android设备,并从System-B下载图像。为了达到此目的,需要确保adb服务器在System-A上运行,而不是在System-B上运行,然后开始SSH会话:
首先,在System-A上启动adb服务器(命令提示符)
C:\> adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
C:\> adb devices
List of devices attached
3435F6E6035B00EC device
接下来,杀死系统B的ADB服务器
System-B$ adb kill-server
最后,重新启动您的SSH会话系统-B和验证
System-B$ adb devices
List of devices attached
3435F6E6035B00EC device