コンピューター好きのブログ

主にコンピューター・ラズパイと電子工作・オーディオ関連の記事を書いています。

Android Studioのエミュレーター上でアプリを起動し、ポート待ち受けするときの設定方法(Windows編)

Androidアプリ開発時の小ネタをひとつ。

サーバータイプのAndroidアプリを作成するとき、エミュレーター上で起動したアプリに外部ネットワークのマシンから接続したいときがあると思います。

そのときのWindowsでの設定方法を自身の備忘録も兼ねて記載します。

概要

外部ネットワークからエミュレーターに接続する場合、2段階でポートフォワーディングをする必要があります。

1段階目はローカルネットワークとエミュレーターのフォワーディングです。これにはadbコマンドを使います。

2段階目は外部ネットワークとローカルネットワークのフォワーディングです。Windowsの場合、netshコマンドを使います。

ローカル-エミュレーター間のポートフォワーディング

1.エミュレーターの状態を確認

> adb devices

List of devices attached
emulator-5554 device

エミュレーターが起動していれば上記のように表示されます。

 

2.ポートフォワーディングの設定

> adb forward tcp:ローカルの待ち受けポート tcp:エミュレーターの待ち受けポート

実行例:ローカルの待ち受けポートとエミュレーターの待ち受けポートが8000の場合

> adb forward tcp:8000 tcp:8000

エミュレーターを停止すると設定が消えるので、再起動した場合は再設定します。

設定の確認は下記のコマンドで行います。

> adb forward --list

emulator-5554 tcp:8000 tcp:8000

外部ネットワーク-ローカル間のポートフォワーディング

管理者権限でコマンドプロンプトを開き、下記を実行します。

> netsh interface portproxy add v4tov4 listenaddress=外部向けIPアドレス listenport=外部向け待ち受けポートアドレス connectaddress=127.0.0.1 connectport=ローカルの待ち受けポート

実行例:外部向けIPアドレスが192.168.0.3、外部向け待ち受けポートアドレスとローカルの待ち受けポートが8000の場合

> netsh interface portproxy add v4tov4 listenaddress=192.168.0.3 listenport=8000 connectaddress=127.0.0.1 connectport=8000

 

以上、小ネタでした~。

(c) 2018 toomath