2011-08-29 40 views
8

我的开发机器同时连接到两个不同的网络。一个是通过以太网(eth0),另一个是WiFi(en1)。在这种情况下,Android模拟器似乎总是希望在eth0上联系网络。当从命令行启动模拟器时,是否有一个选项可以告诉它在开发计算机上使用特定的网络接口(我的情况是en1)?如何指定Android模拟器应在我的开发机器上使用哪个网络接口?

看来这应该是可以通过参数你可以传递给-qemu标记。但是,使用此标志时,仿真器的当前版本不会启动。

回答

5

如果您只与特定地址或子网通信,则可以使用路由添加命令在主机上设置适当的路由。语法Windows和Linux略有不同:

Linux的

路由添加-net 目标IP子网掩码255.255.255.0指标1个GW EN1

的Windows

路由添加target-ip mask 255.255.255.0 en1-gw-address metric 1 -p

您可能需要根据需要调整网络掩码值(255.255.255.0)。

+0

我正在寻找一种方法将所有HTTP请求路由到任何可能的地址,从Android模拟器到en1。 – elevine

+0

然后你可以使用免费的网络代理。将模拟器配置为使用具有_http-proxy_选项的代理,并通过en1为代理的ip配置路由。 – mattlaabs

+0

这是一个好主意。你能建议一个易于安装的代理吗? – elevine

1

恕我直言,因为仿真器使用一个虚拟路由器,而不是在开发PC的物理网络接口

有这个链接仔细一看,这是不可能的 - 有关于
http://developer.android.com/guide/developing/devices/emulator.html#emulatornetworking

一些详细信息
+1

那么该虚拟路由器如何决定在您的开发机器上使用哪个网络接口?换句话说,当您启动模拟器时,您可以使用-http-proxy开关指定代理。我没有看到选择网络接口的类似选项,但预计会存在。 – elevine

+0

我不太确定,但我想这与路由在PC上定义的方式有关 – DonGru

+0

看来这应该可以通过args传递给-qemu标志。但是,使用此标志时,仿真器的当前版本不会启动。 – elevine

相关问题