Android 2.2之前對于Android2.2 的流量 版本以前的系統(tǒng)的流量信息都存放在 proc/net/dev(或者 proc/self/net/dev)文件下,讀取文件然后對其進(jìn)行解析就行了。讀取某一個應(yīng)用的流量,則讀取proc/uid_stat/uid /tcp_rcv 文件進(jìn)行解析(注:模擬器下不存在這個目錄)。如需查看某個應(yīng)用的流量信息,可以通過以下命令來實(shí)現(xiàn):
adb devices 列出所有設(shè)備
adb -s 設(shè)備名稱 shell 進(jìn)入對應(yīng)的設(shè)備
cd proc 進(jìn)入設(shè)備的屬性目錄
cd uid_stat 進(jìn)入 user id 狀態(tài)目錄,每個應(yīng)用程序在安裝的時候系統(tǒng)會為每個應(yīng)用分配一個對應(yīng)的 uid
ls 列出 uid_stat 目錄下所有應(yīng)用對應(yīng)的 user id 目錄
cd uid 進(jìn)入對應(yīng)應(yīng)用的 uid 目錄
ls 查看對應(yīng) uid 目錄下的 tcp_rcv 和 tcp_snd 目錄
cat tcp_rcv 查看該應(yīng)用接收的數(shù)據(jù)信息
cat tcp_snd 查看該應(yīng)用發(fā)送的數(shù)據(jù)信息
Android 2.2之后
我這里有兩種辦法:
第一種通過PID下面的net/dev先找到應(yīng)用的PID
adb shell ps

Paste_Image.png
這邊拿到PID:21896 然后在去/proc目錄下的PID/net/dev面可以看到:
adb shell cat /proc/"+Pid+"/net/dev"

Paste_Image.png
- 這邊的wlan0代表wifi 上傳下載量標(biāo)識! 上傳下載量單位是字節(jié)可以/1024換算成KB
- 這里可以看到下載的字節(jié)數(shù) 、數(shù)據(jù)包 和 發(fā)送的字節(jié)數(shù) 、數(shù)據(jù)包
- 小技巧:wlan0這些值如何初始化0 很簡單 你打開手機(jī)飛行模式再關(guān)掉就清0了
第二種 通過proc/net/xt_qtaguid/stats
- 在說第二種獲取流量方法之前先給這邊先給大家說下uid
uid的獲取可以在對應(yīng)的PID下面去查看status,里面會查到uid
adb shell cat /proc/<pid>/status

Paste_Image.png
拿到UID后呢繼續(xù):
adb shell cat /proc/net/xt_qtaguid/stats | grep uid
- 其中第6和8列為 rx_bytes(接收數(shù)據(jù))和tx_bytes(傳輸數(shù)據(jù))包含tcp,udp等所有網(wǎng)絡(luò)流量傳輸?shù)慕y(tǒng)計。一個uid可能對應(yīng)多個 進(jìn)程,所以這有兩行流量是累加的就求和就行。
推薦用第二種。原文來自:http://blog.csdn.net/wanglha/article/details/46042161