Android 上网流量监控方法

一.下提供两种方法获取上网流量相关信息。
利用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中方法以便扩展及异常处理。

你可能感兴趣的:(android)