Android(安卓)上网流量监控方法
16lz
2021-01-26
一.下提供两种方法获取上网流量相关信息。
利用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中方法以便扩展及异常处理。
利用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(安卓)反编译APK详解
- (9)Android之路====Android系统OTA更新
- Android之WebView和js交互-调用失败的看这里
- Android(安卓)8.0以后获取SSID为的解决方式
- Android(安卓)5.0之后如何获取topStack
- springmvc dubbo整合cms内容发布平台ios android
- Android(安卓)电子签名/手写签名 保存到相册详解
- Android(安卓)Internet应用实现获取天气预报的示例代码
- Android滚动截屏,ScrollView截屏