Śledzenie statystyk sieciowych aplikacji (netstats) za pomocą ADB
Mam wrażenie, że jest to możliwe, po prostu nie jestem pewien, gdzie są przechowywane informacje.
Chcę uzyskać statystyki up / down dla konkretnych aplikacji, ale chcę to zrobić za pomocą ADB, a nie wireshark lub netty.
Wiem, że widzę vmData
adb shell
cd proc
cd pid#
cat status
i wiem, że mogę zobaczyć netstats używając:
ADB Shell dumpsys netstats details full
co daje mi następujące wyniki:
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
Niestety wygląda to jak połączony netstat, który nie rozróżnia aplikacji.
Więc moje pytanie: czy istnieje sposób, aby zobaczyć ruch sieciowy według unikalnych nazw PID # lub aplikacji, po prostu używając wiersza polecenia?
EDYTOWAĆ
W porządku zrobiłem kilka dobrych kroków
Z tym kodem
adb shell cat proc/1638(thePID)/net/dev > C:\netstats.txt
Mogę uzyskać te informacje:
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
Niestety po dwukrotnym sprawdzeniu tych numerów w programach takich jak „Network Usage” z rynku Android odkryłem, że te liczby są sumą w górę iw dół całego urządzenia.
Pozostaje mi więc, jak / gdzie do cholery są programy takie jak „Wykorzystanie sieci” i „Części zamienne”, które pobierają informacje?