android 流量统计

由于自己手机每月只有100M流量  最近总是不够用  所以 想研究一下android的流量统计  这样的话就能随时了解自己使用流量的记录

之初也咨询了一些朋友  发现研究这方面的人比较少

在网上也搜罗到一些资料  最基本的都是这些

TrafficStats类

其中的重要方法有如下:

01 staticlong  getMobileRxBytes()  //获取通过Mobile连接收到的字节总数,不包含WiFi  
02 staticlong  getMobileRxPackets()  //获取Mobile连接收到的数据包总数  
03 staticlong  getMobileTxBytes()  //Mobile发送的总字节数  
04 staticlong  getMobileTxPackets()  //Mobile发送的总数据包数  
05 staticlong  getTotalRxBytes()  //获取总的接受字节数,包含Mobile和WiFi等  
06 staticlong  getTotalRxPackets()  //总的接受数据包数,包含Mobile和WiFi等  
07 staticlong  getTotalTxBytes()  //总的发送字节数,包含Mobile和WiFi等  
08 staticlong  getTotalTxPackets()  //发送的总数据包数,包含Mobile和WiFi等   
09 staticlong  getUidRxBytes(intuid)  //获取某个网络UID的接受字节数  
10 staticlong  getUidTxBytes(intuid) //获取某个网络UID的发送字节数

备注:TrafficStats类在Android 2.2 API Level(8)之后出现。

但是这些方法 获取到的流量数据都是从手机上次开机到当前的流量使用情况   

所以需要准确记录流量数据  就必须监听手机的开机和关机    

关机的时候 将数据都存储起来   下次开机后通过以上方法获取到的数据 在叠加上


但是 我发现在这些方法里 就缺少我最需要的那个方法    

我想获取某个app接受和发送的 2G/3G流量  不包含wifi  但是这些方法里没有  看来 我需要另外寻找办法了


于是我又去咨询朋友   遇上一个前同事正好在研究这个。 算是帮上我大忙了。

他 给我的建议是  获取流量信息 可以去读取系统文件 /proc/net/dev

/proc/net/xt_qtaguid/stats 这个文件则包含了每个app使用数据的情况  这下算是找到办法了

stats文件大致是这样的




剩下的就是如何去读取这个文件了。

在网上搜了搜 

用FileReader来读取文件

DEV_FILE = “/proc/net/xt_qtaguid/stats

FileReader fstream = null;
		try {
			fstream = new FileReader(DEV_FILE);

		} catch (FileNotFoundException e) {
			DisplayToast("Could not read " + DEV_FILE);

		}
		BufferedReader in = new BufferedReader(fstream, 500);

这样再用while循环去读取in里每行的数据

上图中


这是表头   iface 则代表流量的类型 为rmnet就是2G/3G流量   wlan 是wifi流量 

手机  打开wifi的时候 就只有wlan    打开数据的时候 就只有2G/3G

  而流量的具体数据 就要获取rx_bytes   和   tx_bytes 这两个字段了  

整个表 字段很多 其他的暂时没研究

读取这个文件的时候  我看网上 的办法也都是这样 循环读取每行数据  然后创建很多个数组去保存每行数据  

然后   需要的数据  就从相应的数组里去取。

大致研究的结果就是这些

最近因为工作比较忙 就没有继续研究下去了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值