我意识到这个问题真的很老了,但我解决问题的方式略有不同,我花了一些时间来弄清楚这个简单的解决方案。
我通常使用Windows7 PC或笔记本电脑(取决于我工作的地方)作为我的前端,因为我喜欢GUI,但我更喜欢在无头Ubuntu服务器上进行所有编辑/编译/调试,因为所有的它提供的命令行功率。我的目标是尽可能地使每个Windows系统成为瘦客户端,而无需任何额外的服务(例如sshd)或防火墙漏洞。
所以这是senario:
System-A:运行Android模拟器的Windows7系统
System-B:安装了SDK的Ubuntu服务器
UL>
前面描述的问题是System-A上的模拟器绑定到localhost而不是外部以太网接口,因此System-B上的adb无法访问System-A上的模拟器。您需要做的就是在PuTTY中设置远程端口转发,以便与System-B建立SSH连接。诀窍是在创建两个隧道时检查“远程”单选按钮,以便隧道方向反转(从您登录的服务器隧道到您登录的客户端)。
最后,在建立SSH连接后,使用adb连接到System-B上的“localhost”: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上运行,而不是在启动SSH会话之前在System-B上运行:
首先,在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接下来,杀死System-B上的adb服务器
System-B$ adb kill-server最后,重新启动ssh会话到System-B并验证
System-B$ adb devices
List of devices attached
3435F6E6035B00EC device