linux 系統下所有的資訊都是以檔案的形式存在的,所以應用程式的流量資訊也會被儲存在作業系統的檔案中。android 2.2 版本以前的系統的流量資訊都存放在 proc/net/dev(或者 proc/self/net/dev)檔案下,讀取檔案然後對其進行解析就行了。讀取某乙個應用的流量,則讀取proc/uid_stat/uid /tcp_rcv 檔案進行解析(注:模擬器下不存在這個目錄)。如需檢視某個應用的流量資訊,可以通過以下命令來實現:
adb devices 列出所有裝置adb -s 裝置名稱 shell 進入對應的裝置
cd proc 進入裝置的屬性目錄
cd uid_stat 進入 user id 狀態目錄,每個應用程式在安裝的時候系統會為每個應用分配乙個對應的 uid
ls 列出 uid_stat 目錄下所有應用對應的 user id 目錄
cd uid 進入對應應用的 uid 目錄
ls 檢視對應 uid 目錄下的 tcp_rcv 和 tcp_snd 目錄
cat tcp_rcv 檢視該應用接收的資料資訊
cat tcp_snd 檢視該應用傳送的資料資訊
android 2.2 版本中加入了 trafficstats 類來實現對流量統計的操作,其實 trafficstats 類自身也是依靠讀取 linux 下儲存流量資訊的檔案並進行解析來實現的。android.net.trafficstats 類中提供了多種靜態方法,可以直接呼叫獲取,返回型別均為 long 型,如果返回值等於 -1 代表 unsupported,表示當前裝置不支援統計,這裡需要注意的是,
通過 trafficstats 獲取的資料在手機重啟的時候會被清空,所以,如果要對流量進行持續的統計需要將資料儲存到資料庫中,在手機重啟時將資料讀出進行累加即可。trafficstats 類的靜態方法如下:
packagecn.sunzn.trafficmanger;
import
import
android.net.trafficstats;
import
android.os.bundle;
import
android.view.menu;
public
class mainactivity extends
activity
public
boolean
oncreateoptionsmenu(menu menu)
}
android流量監測的實現原理
2.2版本以前的,系統的流量資訊都存放在proc net dev 或者proc self net dev 檔案下,讀取檔案然後對其進行解析就行了。讀取某乙個應用的流量,則讀取proc uid stat uid tcp rcv檔案進行解析 據說模擬器下是沒有這個目錄檔案的 對於android流量統計來...
關於網路流量的實時監測
這個問題考慮了很長時間了,但一直沒有親自動手準備,還是查查相關資料吧.記錄幾個關鍵字,以備以後使用 sniffer 實時監測軟體 使用的相關技術主要有 1.winpcap 乙個比較通用的庫,相信做過抓包的工具大多數人都不會太陌生 2.raw socket 在2000以後的版本都支援此項功能,2000...
分享乙個linux的流量監測工具!!!(3)
這個配置檔案監控了 vsftpd,sshd,mysql,apache,postfix 服務,設定 web監控的埠是 2812 設定lvsheat qq.com 將接受到警告郵件。配置apache 的檢查資訊 mkdir var www monit echo hello var www monit t...