首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 流量监控种TrafficStas

2012-09-02 
android 流量监控类TrafficStasTrafficStats类存在好几个查看流量的方法getMobileRxBytes()getTotalRxByte

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标准内核,略过
1 楼 timchen6824 2011-08-25   你好~~我想问下。有没有办法获得 自己应用的流量统计的数据
有的话   需要怎么做?  谢谢 2 楼 前前后左右右 2011-12-08   你好,请问本地流量是什么意思,是wifi吗,如果只统计移动网络的流量,应该读哪个文件 3 楼 aaapei 2011-12-22   timchen6824 写道你好~~我想问下。有没有办法获得 自己应用的流量统计的数据
有的话   需要怎么做?  谢谢
getUidRxBytes前前后左右右 写道你好,请问本地流量是什么意思,是wifi吗,如果只统计移动网络的流量,应该读哪个文件
本地进程的socket通信

热点排行