Android流量統計知識點
1、流量統計不能在模擬器上模擬,必須通過真機調試
2、Windows通過MAC網卡來統計流量的大小
android通過讀取文件(linux)中的流量數據來獲取流量的使用情況
3、文件位置
/proc/uid_stat/
該文件夾下有好多以APP的UID編號的文件夾,每個文件夾下又分別有tcp_rcv和tcp_snd兩個文件夾,分別是下載和上傳的流量
這些文件夾中的數據會動態增加
4、讀取流量數據的方法
1、通過IO流讀取
例如:
Filedir = new File("/proc/uid_stat/");
//各個APP的UID
File[] files =dir.listFiles();
for(inti=0;i<files.length;i++){
Stringuid = files[i].getName();
list.add(Integer.parseInt(uid));
}
File file = new File("/proc/uid_stat/" + uid + "/tcp_rcv");//該UID對應的APP的下載的總流量
2、TrafficStats(靜態類)
TrafficStats.getTotalTxBytes(); |
獲取總共的發送(上傳)的流量(包括3G,4G,WIFI) |
TrafficStats.getTotalRxBytes(); |
獲取總共的接收(下載)的流量(包括3G,4G,WIFI) |
獲取手機的接收(下載)的流量(不包括WIFI) |
|
獲取包的個數 |
|
getUidTxBytes(int uid) |
Return number of bytes transmitted by the given UID since device boot. |
3、
5、android系統每個APP的UID
packageInfo.applicationInfo.uid; |
獲取到安裝的APP的UID(int類型的數字) |
android系統的UID是1000,不是java程序,是C程序
系統的核心APP是UID以1000開頭的,用戶安裝的和非核心的APP是以10000開頭的UID,如果某一個APP被卸載了,其他APP又安裝了,那麼就會用最近被卸載的那個APP的UID,並且UID自增長