我有一种感觉这是可能的,只是不太确定信息存储在哪里。
我想使用 ADB 而不是 wireshark 或 netty 获取特定应用程序的上/下统计信息。
我知道可以使用 vmData 查看
adb shell
cd proc
cd pid#
cat status
我知道可以使用以下方式查看网络统计信息:
ADB Shell dumpsys netstats details full
它给我这些结果:
Dev stats:
Pending bytes: 1410076
Complete history:
ident=[[type=MOBILE, subType=COMBINED, subscriberId=310260...]] uid=-1 set=ALL tag=0x0
NetworkStatsHistory: bucketDuration=3600000
bucketStart=1349211600000 activeTime=3600000 rxBytes=19656154 rxPackets=16897 txBytes=615620 txPackets=8084 operations=0
bucketStart=1349215200000 activeTime=3600000 rxBytes=28854708 rxPackets=23363 txBytes=1037409 txPackets=12206 operations=0
bucketStart=1349218800000 activeTime=3600000 rxBytes=1839274 rxPackets=1565 txBytes=89791 txPackets=914 operations=0
bucketStart=1349222400000 activeTime=3600000 rxBytes=17421 rxPackets=88 txBytes=18376 txPackets=95 operations=0
bucketStart=1349226000000 activeTime=3600000 rxBytes=506966 rxPackets=788 txBytes=96491 txPackets=859 operations=0
很遗憾,这似乎是一个不区分应用程序的综合netstat。
所以我的问题是,有没有一种方法可以通过唯一的PID#或应用程序名称查看网络流量,只需使用命令提示符即可?
编辑
好吧,我取得了一些进展
使用此代码
adb shell cat proc/1638(thePID)/net/dev > C:\netstats.txt
我可以获取这些信息:
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 3564 28 0 0 0 0 0 0 3564 28 0 0 0 0 0 0
dummy0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rmnet0: 117062940 191775 0 0 0 0 0 0 19344640 177574 0 0 0 0 0 0
rmnet1: 2925492 5450 0 0 0 0 0 0 1448544 5664 0 0 0 0 0 0
rmnet2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rmnet3: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rmnet4: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rmnet5: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rmnet6: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rmnet7: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
sit0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vip0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
不幸的是,我再次通过像Android市场上的“网络使用”这样的程序仔细核对这些数字后发现,这些数字是整个设备上下行的总和。
所以,我仍然不知道“网络使用”和“备用零件”等程序从哪里获取它们的信息。