我有一種感覺,這是可能的,我只是不太確定信息的保存位置。使用ADB跟蹤應用程序的網絡統計數據(netstats)
我想獲得特定應用程序的上/下統計數據,但我想使用ADB而不是wireshark或netty。
我知道我可以使用
adb shell
cd proc
cd pid#
cat status
看到vmData,我知道我可以用看netstats:
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市場上的「Network Usage」程序再次檢查這些數字後,我發現這些數字是整個設備上下的總數。
因此,它仍然讓我感受到,「網絡使用」和「備件」等程序如何從何處獲取信息?
哇,大量有用的信息在這裏。感謝您發佈此信息。 –
謝謝,如果您還有其他問題需要了解或有任何疑問,請告訴我。機會是我爲它編寫了一些東西,或者可以指出你正確的方向。 – Nefariis
@Nefarii我正在做一個非常類似的事情,但沒有超級用戶權限,有沒有什麼辦法可以達到同樣的效果呢? – SwiftParser