由于自己手机每月只有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 这两个字段了

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

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

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

大致研究的结果就是这些

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

android 流量统计相关推荐

  1. Android流量统计TrafficStats类

    对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析. android.n ...

  2. android 双卡流量统计,android流量统计

    android流量统计 (2012-07-31 12:28:34) 标签: 杂谈 研究过一段时间的android流量统计 发个自己的总结帖 1 android有一个TrafficStats类可以直接获 ...

  3. android页面统计代码,android流量统计(示例代码)

    android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. static l ...

  4. android 流量统计工具,Android 统计应用流量的使用情况

    Android 获取应用流量的使用情况有两种方法 TrafficStats NetworkStatsManager 是Android 6.0(API23)中新增加的类 这次我们使用的是第二种方法,记录 ...

  5. Android流量统计

    项目中需要对Android设备进行流量统计来进行资费结算,所以对Android设备流量统计进行了一些调研.发现流量统计主流上有两种方式 使用系统统计类TrafficStats获取 通过系统文件解析读取 ...

  6. android 流量统计助手,流量统计 My Data Manager v7.3.1

    更新时间:2017-02-19 资费提示:免费版 当前版本:7.3.1 软件语言:中文 软件类别:计费统计 软件大小:7.24 MB 适用固件:2.2及更高固件 内置广告:没有广告 开发商:Mobid ...

  7. android 流量统计换算,iOS 统计流量信息(转)

    在开发中,有时候需要获取流量统计信息.研究发现:通过函数getifaddrs来得到系统网络接口的信息,网络接口的信息,包含在if_data字段中, 有很多信息, 但我现在只关心ifi_ibytes, ...

  8. android 流量统计不准确_汽车里程表上显示的百公里油耗准确吗?是不是真的是欢乐表...

    汽车表显油耗准不准需要根据不同的实际工况来确定,如果是长期保持匀速行驶状态,那么表显油耗更接近实际油耗,但如果是混合工况下.走走停停,那么表现油耗就没准了,而这个时候表显油耗会比实际油耗低,所以表现油 ...

  9. android 流量统计换算,什么是流量?如何计算流量?流量的单位如何换算

    什么是流量?如何计算流量?流量的单位如何换算 上网流量通常用"位"(bit),"字节"(Byte),KB,MB,GB,TB等来表示.它是计算机信息技术用于计量存 ...

最新文章

  1. c语言编写系统服务程序,C语言Windows服务程序编写-ServiceMain
  2. java填空题 在非静态成员方法中_Java程序设计填空和改错题(参考答案)
  3. linux多线程基本编程
  4. MySQL数据库篇之初识数据库
  5. 51CTO的技术门诊谈OSSIM
  6. css基础内容之background
  7. 成功演示六要素之三——具体
  8. 企业微信网页授权初试
  9. Windows NT 架构
  10. Pathon基础篇数据类型之——数值、字符串与列表内容
  11. 萧瑜 第一次博客随笔
  12. 2018.12.31 NOIP训练 czy的后宫6(线性dp)
  13. 解决Homebrew报错Error: Failure while executing;
  14. Java concurrent包中常用的类
  15. 0x80073712(0x80073712解决方法)
  16. PAT甲级考试题库题目分类
  17. 微信网页开发-长按二维码无法识别问题解决
  18. 刘知远:NLP研究入门之道(三)如何通过文献掌握学术动态
  19. 【转载】SharpDevelop开发教程
  20. 微博相互关注互粉mysql表实现_新浪微博的“关注功能”数据库是如何设计的

热门文章

  1. 想成为UI设计师都需要学习哪些软件工具
  2. 赛迪智库丨在符合伦理规范下做好AI全球化治理
  3. 嵌入式实时操作系统μC/OS II(一)
  4. 正态分布的参数含义μ,σ
  5. mri造影剂是用计算机控制滴注,CT、磁共振检查为什么要注射造影剂?
  6. 【Python】phonenumbers
  7. 【聊天机器人】NLP知识
  8. 优先级调度算法实现_《操作系统原理》实验一:进程调度
  9. ios 应用内跳转微信
  10. 为什么土豆网王微会放弃自己原有的立场,跟优酷合并?合并后有何影响? .