一.下提供两种方法获取上网流量相关信息。
利用TrafficStats(2.2版本以上)
TrafficStats类存在好几个查看流量的方法,具体说明参照SDK。
getMobileRxBytes
getTotalRxBytes
getUidRxBytes() && getUidTxBytes函数
二.读取系统文件
获取某个应用对应的上传和下载流量:
“/proc/uid_stat/%d/tcp_rcv” 和”/proc/uid_stat/%d/tcp_snd”文件
其中%d为进程uid。
uid_stat下有些手机会找不到下面的uid目录,那是因为有个宏被关闭了(并不是所有的系统都会打开那个宏,要看厂商)
获取总流量:
/sys/class/net/ ***/statistics/rx_bytes
/sys/class/net/ ***/statistics/tx_bytes
/sys/class/net/ 此为linux标准内核,所有版本都一致。
*** 跟版本相关的路径。
例如:
/sys/class/net/rmnet0
/sys/class/net/tiwlan0
其中:
tiwlan0 是 Wifi
rmnet0 是 GPRS
//下载和上传
/statistics/rx_bytes
/statistics/tx_bytes
总结:流量监控不同版本差异相当较大,建议用第2中方法以便扩展及异常处理。