Android模拟器:如何监控networkingstream量?
如何监视从我的Android模拟器发送和接收的networkingstream量?
有两种方法直接从Android模拟器捕获networkingstream量:
-
在仿真器上复制并运行ARM兼容的tcpdump二进制文件 ,将输出写入SD卡(可能是
tcpdump -s0 -w /sdcard/emulator.cap
)。 -
运行
emulator -tcpdump emulator.cap -avd my_avd
将所有模拟器的stream量写入PC上的本地文件
在这两种情况下,您都可以使用tcpdump或Wireshark来分析pcap文件。
也可以使用http代理来监视来自仿真器的http请求。 当启动一个新的仿真器来设置代理(例如打嗝 )来监控Androidstream量时,您可以传递-http-proxy
标志。 示例用法./emulator -http-proxy localhost:8080 -avd android2.2
。 请注意,在我的例子中,我使用Burp,它正在监听端口8080.更多信息可以在这里find。
对于OS X,您可以使用Charles ,它非常简单易用。
是的,wireshark将工作。
我不认为有任何简单的方法来过滤掉模拟器的stream量,因为它来自同一个src IP。
也许最好的办法是build立一个非常纯粹的VMware环境,并且只能在那里运行模拟器,至less不会有太多的背景stream量。
您可以使用Fiddler来监控httpstream量:
您也可以在这里使用Fiddler2。
当前版本的Android Studio没有正确应用-tcpdump
参数。 我仍然能够通过将相关parameter passing给qemu来捕获转储,如下所示:
tools/emulator -engine classic -tcpdump dump.cap -avd myAvd
您可以使用命令-avd Adfmf -http-proxy http://SYSTEM_IP:PORT
启动模拟器。 我使用HTTP分析器,但它应该为其他任何工作。 更多细节可以在这里find: http : //stick2code.blogspot.in/2014/04/intercept-http-requests-sent-from-app.html
您可以监控Android Studio的networkingstream量。 转到Android监视器并打开networking选项卡。