2011-08-29 26 views
8

私の開発マシンは、2つの異なるネットワークに同時に接続されています。 1つはイーサネット(eth0)経由で、もう1つはWiFi(en1)です。このような状況では、Androidエミュレータは常にeth0上のネットワークにアクセスしたいと思われます。コマンドラインからエミュレータを起動するときに、開発マシン上の特定のネットワークインターフェイス(私の場合はen1)を使用するよう指示するオプションはありますか?Androidエミュレータが開発マシンで使用するネットワークインターフェイスを指定する方法を教えてください。

これはargsを通じて可能であるはずです。-qemuフラグに渡すことができます。ただし、このフラグを使用すると、エミュレータの現在のバージョンは起動しません。

答えて

5

特定のアドレスまたはサブネットとのみ通信する場合は、route addコマンドを使用して、ホストマシンで適切なルートを設定できます。

ルートが

のWindows

ルートアドオン-net ターゲット-IPネットマスク255.255.255.0メトリック1つのGWのEN1を追加

Linuxの場合:構文は、WindowsとLinuxのため若干異なりtarget-ipマスク255.255.255.0 en1-gw-addressメトリック1 -p

必要に応じてネットマスク値(255.255.255.0)を調整したい場合があります。

+0

私はすべてのHTTP要求を、可能なアドレスに、Androidエミュレータからen1にルーティングする方法を探しています。 – elevine

+0

その後、無料のWebプロキシを使用できます。 _http-proxy_オプションでプロキシを使用するようにエミュレータを設定し、プロキシのIPに対してen1経由でルートを設定します。 – 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

関連する問題