android流量監測的實現原理

2021-08-27 00:25:08 字數 971 閱讀 3597

2.2版本以前的,系統的流量資訊都存放在proc/net/dev(或者proc/self/net/dev)檔案下,讀取檔案然後對其進行解析就行了。

讀取某乙個應用的流量,則讀取proc/uid_stat/uid/tcp_rcv檔案進行解析(據說模擬器下是沒有這個目錄檔案的)

對於android流量統計來說在2.2版中加入了trafficstats類可以輕鬆獲取,其實本身trafficstats類也是讀取linux提供的檔案物件系統型別的文字進行解析。android.net.trafficstats類中,提供了多種靜態方法,可以直接呼叫獲取,返回型別均為long型,如果返回等於-1代表 unsupported 當前裝置不支援統計。

static long getmobilerxbytes() //獲取通過mobile連線收到的位元組總數,這裡android123提示大家不包含wifi

static long getmobilerxpackets() //獲取mobile連線收到的資料報總數

static long getmobiletxbytes() //mobile傳送的總位元組數

static long getmobiletxpackets() //mobile傳送的總資料報數

static long gettotalrxbytes() //獲取總的接受位元組數,包含mobile和wifi等

static long gettotalrxpackets() //總的接受資料報數,包含mobile和wifi等

static long gettotaltxbytes() //總的傳送位元組數,包含mobile和wifi等

static long gettotaltxpackets() //傳送的總資料報數,包含mobile和wifi等

static long getuidrxbytes(int uid) //獲取某個網路uid的接受位元組數

static long getuidtxbytes(int uid) //獲取某個網路uid的傳送位元組數

Android 程式設計下流量監測的實現原理

linux 系統下所有的資訊都是以檔案的形式存在的,所以應用程式的流量資訊也會被儲存在作業系統的檔案中。android 2.2 版本以前的系統的流量資訊都存放在 proc net dev 或者 proc self net dev 檔案下,讀取檔案然後對其進行解析就行了。讀取某乙個應用的流量,則讀取p...

關於網路流量的實時監測

這個問題考慮了很長時間了,但一直沒有親自動手準備,還是查查相關資料吧.記錄幾個關鍵字,以備以後使用 sniffer 實時監測軟體 使用的相關技術主要有 1.winpcap 乙個比較通用的庫,相信做過抓包的工具大多數人都不會太陌生 2.raw socket 在2000以後的版本都支援此項功能,2000...

android 阻止進入suspend的原因查詢

private static final boolean debug true private static final boolean debug spew debug false 修改為 private static final boolean debug true private static...