跟踪使用亚行应用程序的网络统计数据(netstats)统计数据、应用程序、网络、netstats

2023-09-13 00:11:22 作者:我们不要再相爱了

我有一种感觉,这是可能的,我只是不太肯定的信息保存。

I have a feeling this is possible, I'm just not quite sure where the information is held.

我想向上/向下的统计数据为特定应用程序,但我想它使用亚行和不Wireshark的或网状的事情。

I want to get the up/down statistics for specific applications, but I want to do it using ADB and not wireshark or netty.

我知道我可以看到vmData使用

I know I can see the vmData using

adb shell
cd proc
cd pid#
cat status 

和我知道我可以用看netstats:

and I know I can see the netstats using:

ADB Shell dumpsys netstats details full

这给了我这些结果:

which gives me these results:

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不应用程序之间的区别。

Unfortunately this looks like a combined netstat that does not differentiate between applications.

所以我的问题,是有没有办法看到网络流量由唯一的PID#'s或应用程序的名称,只需要使用命令提示符?

So my question, is there a way to see network traffic by unique PID#'s or application names, by simply using the command prompt?

修改的

好吧,我做了一些很好的进展

Alright I made some good strides

通过这个code

 adb shell cat proc/1638(thePID)/net/dev > C:\netstats.txt 

我能得到这样的信息:

I can get this information:

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 Market的地方网络使用节目,我发现,这些数字的总数是和整个装置下来。

Unfortunately after double checking these numbers with programs like "Network Usage" from the android market place, I discovered that these numbers are the total up and down across the entire device.

所以它仍然给我留下,如何/在哪里到底是像网络使用和备件从得到他们的信息的程序?

So it still leaves me with, how/where the heck are programs like "Network Usage" and "Spare Parts" getting their information from?

推荐答案

嗯,我想通了其中的零部件和网络使用从他们的信息。

Well I figured out where "spare parts" and "Net Usage" get their information from.

adb shell cat proc/uid_stat/(uid#)/tcp_rcv
adb shell cat proc/uid_stat/(uid#)/tcp_snd

我和他们是如何做的,虽然看到的问题是,这只占TCP使用和不占和UDP使用。

The Problem I see with how they are doing it though is that this only accounts for TCP usage and does not account for and UDP usage.

要弄清楚总tx_bytes和rx_bytes的唯一方法是通过这个命令。

The only way to figure out the total tx_bytes and rx_bytes is through this command.

adb shell cat /proc/net/xt_qtaguid/stats

或者,如果你想将其转换为文本文件,并查看它更容易。

or if you would like to convert it to a text file and view it easier.

adb shell cat /proc/net/xt_qtaguid/stats > C:\Netstats.txt

这给你的东西,看起来像这样:

This gives you something that looks like this:

------ QTAGUID STATS INFO (su root cat /proc/net/xt_qtaguid/stats) ------

idx iface acct_tag_hex uid_tag_int cnt_set rx_bytes rx_packets tx_bytes tx_packets     rx_tcp_bytes rx_tcp_packets rx_udp_bytes rx_udp_packets rx_other_bytes   rx_other_packets tx_tcp_bytes tx_tcp_packets tx_udp_bytes tx_udp_packets tx_other_bytes tx_other_packets
2 rmnet0 0x0 0 0 18393 326 8506 166 10889 267 7504 59 0 0 4180 101 3397 54 929 11
3 rmnet0 0x0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 rmnet0 0x0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 rmnet0 0x0 1000 1 7181 14 1834 19 7023 12 158 2 0 0 1616 16 218 3 0 0
6 rmnet0 0x0 10001 0 5723 19 3162 26 5723 19 0 0 0 0 3162 26 0 0 0 0
7 rmnet0 0x0 10001 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8 rmnet0 0x0 10007 0 1895740 1570 44556 898 1895740 1570 0 0 0 0 44556 898 0 0 0 0
9 rmnet0 0x0 10007 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 rmnet0 0x0 10019 0 5319 12 2546 14 5319 12 0 0 0 0 2546 14 0 0 0 0
11 rmnet0 0x0 10019 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12 rmnet0 0x0 10026 0 6866 19 2846 24 6866 19 0 0 0 0 2846 24 0 0 0 0
13 rmnet0 0x0 10026 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

以上(1000,10001等),第四个选项卡的UID号。最简单的方法来找出应用程序属于什么UID号码是:

The fourth tab over (1000, 10001, etc) is the UID number. The easiest way to find out what application belongs to what UID number is:

adb shell dumpsys package > C:\apps.txt

再往包:部分,然后它的第一行中的进程名称标为用户ID =下来后

Go down to the "Package:" section, and then its the first line down after the process name labeled "userid=".

现在看上面的图,你想知道的主要的两个数字中的第6号(rx_bytes)和8号(tx_bytes)。这两个数字应该是在进出所有字节的准确描述,对于任何特定的应用

Now to read the above chart, the main two numbers that you want to know are the 6th number in (the rx_bytes) and the 8th number in (the tx_bytes). Those two numbers should be an accurate portrayal of all the bytes in and out, for any particular application.

享受。