Mam przeczucie, że to możliwe, ale nie jestem do końca pewien, gdzie są przechowywane informacje.Śledzenie statystyk sieci (netstats) przy użyciu ADB
Chcę uzyskać statystyki do góry/w dół dla konkretnych aplikacji, ale chcę to zrobić za pomocą ADB, a nie wireshark lub netty.
wiem, że mogę zobaczyć vmData użyciu
adb shell
cd proc
cd pid#
cat status
i wiem, że mogę zobaczyć netstats używając:
ADB Shell dumpsys netstats details full
który daje mi te 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 to wygląda na połączony netstat, który nie rozróżnia między aplikacjami.
Moje pytanie brzmi, czy istnieje sposób na zobaczenie ruchu sieciowego przez unikalne nazwy PID lub aplikacji, po prostu używając wiersza polecenia?
EDIT
Dobrze zrobiłem kilka dobrych krokami
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 podwójnym sprawdzeniu tych liczb za pomocą programów takich jak "Użycie w sieci" z rynku Android, odkryłem, że te liczby są sumą w górę iw dół na całym urządzeniu.
Wciąż pozostawia mi to, jak/gdzie do cholery są programy takie jak "Wykorzystanie sieci" i "Części zapasowe", pobierając z nich swoje informacje?
Wow, ogromne ilości przydatnych informacji tutaj . Dzięki za zamieszczenie tego. –
Dziękuję, jeśli jest coś jeszcze, co musisz wiedzieć lub masz jakieś pytania, daj mi znać. Prawdopodobnie napisałem coś dla niego lub wskazałem właściwy kierunek. – Nefariis
@Nefarii Robię coś bardzo podobnego, ale bez uprawnień superużytkownika, jest jakikolwiek sposób na osiągnięcie tego samego bez su – SwiftParser