Androidエミュレータとの間で送受信されるネットワークトラフィックを監視するにはどうすればよいですか?
11 に答える
Android エミュレーターからネットワーク トラフィックを直接キャプチャするには、次の 2 つの方法があります。
エミュレータでARM 互換の tcpdump バイナリをコピーして実行し、SD カードに出力を書き込みます (例: など
tcpdump -s0 -w /sdcard/emulator.cap
)。実行
emulator -tcpdump emulator.cap -avd my_avd
して、エミュレーターのすべてのトラフィックを PC 上のローカル ファイルに書き込みます。
どちらの場合も、通常どおり tcpdump または Wireshark を使用して pcap ファイルを分析できます。
OS X の場合、 Charlesを使用できます。シンプルで使いやすいです。
詳細については、Android Emulator と Charles Proxyのブログ投稿をご覧ください。
はい、Wireshark は機能します。
同じ src IP から送信されているため、エミュレータ トラフィックのみを除外する簡単な方法はないと思います。
おそらく最良の方法は、非常にベアな VMware 環境をセットアップし、そこでエミュレーターのみを実行することです。少なくとも、バックグラウンド トラフィックが多すぎないようにする方法です。
-tcpdump
Android Studio の現在のリリースでは、引数が正しく適用されませんでした。次のように、関連するパラメーターを qemu に渡すことで、ダンプをキャプチャすることができました。
tools/emulator -engine classic -tcpdump dump.cap -avd myAvd
コマンドでエミュレータを起動できます-avd Adfmf -http-proxy http://SYSTEM_IP:PORT
。HTTP アナライザーを使用しましたが、それ以外でも機能するはずです。詳細はこちら:
http://stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html
http://docs.mitmproxy.org/en/stable/install.htmlを使用でき ます
セットアップが簡単で、追加の微調整は必要ありません。
さまざまなツールを試してみましたが、本当に優れていて簡単であることがわかりました。