Happy My Life

日常とか技術とか

1台のPCでAndroidエミュレータ&サーバを開発する時に注意する事

たまに忘れるので、メモとして。

例えば1台のPCでAndroid emulatorとPHPなどのWeb Server側の両方を平行して制作していたとする。

この時に、何も考えてないとAndroid エミュレータからサーバに接続しようととして、Android エミュレータIPアドレスlocalhost(127.0.0.1)を指定してしまう。

実はこれは意味がない。何故ならlocalhostだと自分自身(つまりAndroidエミュレータ)を指すから。なので、当然サーバーにはアクセスできない。

で、その解決方法は以下の通り。

解決方法

このあたりは、Android エミュレータではちゃんと考えられており、特別なIPアドレスが用意されている。先の例では「10.0.2.2」を指定するとサーバに接続できる。このような特別なIPアドレスは他にもいろいろ用意されている。


IPアドレス 概略
10.0.2.1 ルータ/ゲートウェイアドレス
10.0.2.2 エミュレータが起動しているPCを指すlPアドレス
10.0.2.3 DNS サーバ
10.0.2.4/10.0.2.5/10.0.2.6 セカンドDNSサーバ、サードDNSサーバ...
10.0.2.7 エミュレータバイスethernet interface
127.0.0.1 エミュレータのloopback

これらはAndroid Emulator | Android Developersに書かれている。

こういう誰でも困りそうな事は大抵ちゃんと対策されているものなので、困った時はちゃんとマニュアル読みましょうー。