android 流量监控类TrafficStas

TrafficStats类存在好几个查看流量的方法
getMobileRxBytes()
getTotalRxBytes()
getUidRxBytes() && getUidTxBytes函数
测试时发现各进程getUidRxBytes的值的总值与MobileRxBytes不一致
查看了下getUidRxBytes() && getUidTxBytes函数native 代码发现此方法通过读取
"/proc/uid_stat/%d/tcp_rcv" 和"/proc/uid_stat/%d/tcp_snd"文件来获取流量 ,其中%d为进程uid。
这两个文件为非标准linux内核文件,由android内核层/kernel/net/Socket.c 的__sock_sendmsg函数负责写入,
用户层套接字通信在内核层最终会调用此函数 (包括本地套接字和网络套接字),
因此根据TrafficStats.getUidRxBytes() && getUidTxBytes获取的流量既包括了网络流量亦包括了本地流量

而MobileRxBytes
读取的sys/class/net/rmnet0/statistics/rx_bytes
读取的sys/class/net/ppp0/statistics/rx_bytes
此为linux标准内核,略过
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值