Android 流量統計TrafficStats總結
阿新 • • 發佈:2019-01-25
流量統計TrafficStats總結
近日,入職了新公司,然後被要求做一個類似於流量監控的應用軟體,之後我在網上查詢了一下有關於網路流量監控的相關的程式碼,找到了實現網路流量的類TrafficStats類,接下來我就我這幾天用到的有關於這個類的的方法做一個總結:
1. 類的方法:
getMobileRxBytes();
getMobileTxBytes();
這兩個方法主要用於取得2G/3G流量接收到和向伺服器傳輸的資料的總數,返回值是long型,是static方法。如果android系統不支援,或者其他原因導致的不支援,那麼TrafficStats類的靜態屬性UNSUPPORTED就會被返回。
getTotalRxBytes();
getTotalTxBytes();
這兩個方法主要用於取得總的接受和向伺服器上傳的資料的總數(包括Wifi和2G/3G流量),返回值是long型,是static方法。如果android系統不支援,或者其他原因導致的不支援,那麼TrafficStats類的靜態屬性UNSUPPORTED就會被返回。
getMobileRxPackets();
getMobileTxPackets();
這兩個方法主要用於取得2G/3G網路所接收到和上傳上去的資料包的總量,返回值是long,是static方法。如果android系統不支援,或者其他原因導致的不支援,那麼TrafficStats類的靜態屬性UNSUPPORTED就會被返回。
getUidRxBytes(int uid);
getUidTxBytes(int uid);
這兩個方法主要用於計算某一個應用所接收到和上傳上去的資料的總量,返回值是long,是static方法。如果android系統不支援,或者由於其他原因導致的不支援,那麼TrafficStats類的靜態屬性UNSUPPORTED就會被返回。此方法返回的資料有點詭異,當應用剛剛啟動的時候,這兩個方法已經含有一定量的值,目前並未能確定這兩個方法取得的資料究竟是什麼。但是當需要取得瞬時的資料,那麼可以相隔一定的時間相減,得到一定時間內某一個應用所收到或者上傳的資料。其中的uid是指應用程式的uid。
getUidRxPackets(int uid);
getUidTxPackets(int uid);
這兩個方法主要用於計算某一個應用所接收到和上傳上去的資料的總量,返回值是long,是static方法。如果android系統不支援,或者由於其他原因導致的不支援,那麼TrafficStats類的靜態屬性UNSUPPORTED就會被返回。此方法我沒有用過,所以返回的資料是否存在什麼不太清楚的地方,還有待日後探究。其中的uid是指應用程式的uid。
其他還有些API 14才加入進去的方法,我都沒有接觸過,有待日後研究。