お茶漬けぶろぐ

Androidエミュレータでのネットワーク

Android Studioを使ってAndroidアプリを作っているのだけど、そのときにAndroidエミュレータを使うことになると思うんすよね。
んで、今回作っているのは自作Webアプリケーションのクライアント。WebアプリケーションにはAPIを用意していて、そこを突っつくようなアプリを作れば良いという状態。
んで、まぁ実際に動いているWebアプリケーションを突っつくのも良くないので、手元のマシンにテスト用にWebアプリを起こして、そこにAndroidエミュレータから通信を投げつけたいというやつ。
ホストマシンで動いているので、エミュレータからどうやってそこまで通信するの?という話をメモ書きしておく。まぁ、公式のドキュメントを見れば載ってるんだけどね、覚えておくためのってやつよ…

本題

Android Emulator のネットワークを設定する | Android デベロッパー | Android Developers

エミュレータは10.0.2/24なネットワークに参加していることになっている。これを管理するルータはエミュレータが勝手に管理しているようで、ユーザは気にする必要は無い。
んで、どういうアドレスがあるの〜?というと、以下のような感じ。(抜粋)

今回はホストマシンでWebアプリケーションが稼働しているので、通信先として指定するべきなのは、127.0.0.1ではなく、10.0.2.2になる。
「これもしかしてなんかそういうやつあるだろ〜」と思って調べたのだけど、調べる前は、ホストマシンのアドレスが変わるたびに通信先のアドレスを変えていたので、いやアホですね。

ちなみに、複数のデバイスを起動していても、それぞれにネットワークが構成されるみたいで、全部のデバイスが10.0.2.15になるらしい。へ〜。ま、今回の自分の目的と一切重ならないので、いつかそういう状況があったら思い出すようにしよう…

おわり

暫く開発作業やってて、毎回毎回アドレス書き換えるの絶対有り得んやろと思って調べたら、案の定っていうところでした。最初に気付くべきだったのかもだが、まぁしゃーないね。
あと全然関係ないけど、Android Studio普通に重くないっすか?M1が乗ってるMacBook Proで作業しているのだけど、ただコードを眺めるだけでももっさりもさもさで、割とストレスがたまる。なんでなんじゃろうなぁ…

< コマンドラインで重複を排除する

AndroidのGoogle Chromeでタブを同期する >