一 Android与流量相关的文件:
/proc/net/dev,记录各个网络接口(wlan, ccmni1,lo,ifb,tunl,sit,ip6tnl,p2p)发送、接收流量的值。
/proc/uid_stat/app_uid,該路徑下有兩個文件:tcp_snd,tcp_rcv,記錄了app_uid所代表的的應用程序發送、接收的流量值。
二 Android中与流量监控开发相关的类:TrafficStats
2.1 函數說明(以Rx做說明,Tx的類似):
TrafficStats.getTotalRxBytes()
獲取總的接收字節數,包括mobile和wifi的。對應於文檔:/proc/net/dev中“Receive Bytes”下所有接口的數據值。
TrafficStats.getMobileRxBytes()
獲取mobile總的接收字節數;mobile指的是是使用移動網絡產生的字節數。對應於文檔:/proc/net/dev中“Receive Bytes”下“ccmni1”接口的數據值。
TrafficStats.getUidRxBytes(appUid)
獲取某個App從所有網絡接口接收到的所有字節數,包括网络流量、本地流量,本地流量指的是进程间socket通信所消耗的字节数。對應于文檔:/proc/uid_stat/app_uid/ tcp_rcv中的数值。
三 问题
如何获取某个应用移动网络、WLAN网络下产生的字节数。