android 流量统计
由于自己手机每月只有100M流量 最近总是不够用 所以 想研究一下android的流量统计 这样的话就能随时了解自己使用流量的记录
之初也咨询了一些朋友 发现研究这方面的人比较少
在网上也搜罗到一些资料 最基本的都是这些
TrafficStats类
其中的重要方法有如下:
01
|
static long getMobileRxBytes() //获取通过Mobile连接收到的字节总数,不包含WiFi
|
02
|
static long getMobileRxPackets() //获取Mobile连接收到的数据包总数
|
03
|
static long getMobileTxBytes() //Mobile发送的总字节数
|
04
|
static long getMobileTxPackets() //Mobile发送的总数据包数
|
05
|
static long getTotalRxBytes() //获取总的接受字节数,包含Mobile和WiFi等
|
06
|
static long getTotalRxPackets() //总的接受数据包数,包含Mobile和WiFi等
|
07
|
static long getTotalTxBytes() //总的发送字节数,包含Mobile和WiFi等
|
08
|
static long getTotalTxPackets() //发送的总数据包数,包含Mobile和WiFi等
|
09
|
static long getUidRxBytes( int uid) //获取某个网络UID的接受字节数
|
10
|
static long getUidTxBytes( int uid) //获取某个网络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 流量统计相关推荐
- Android流量统计TrafficStats类
对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析. android.n ...
- android 双卡流量统计,android流量统计
android流量统计 (2012-07-31 12:28:34) 标签: 杂谈 研究过一段时间的android流量统计 发个自己的总结帖 1 android有一个TrafficStats类可以直接获 ...
- android页面统计代码,android流量统计(示例代码)
android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. static l ...
- android 流量统计工具,Android 统计应用流量的使用情况
Android 获取应用流量的使用情况有两种方法 TrafficStats NetworkStatsManager 是Android 6.0(API23)中新增加的类 这次我们使用的是第二种方法,记录 ...
- Android流量统计
项目中需要对Android设备进行流量统计来进行资费结算,所以对Android设备流量统计进行了一些调研.发现流量统计主流上有两种方式 使用系统统计类TrafficStats获取 通过系统文件解析读取 ...
- android 流量统计助手,流量统计 My Data Manager v7.3.1
更新时间:2017-02-19 资费提示:免费版 当前版本:7.3.1 软件语言:中文 软件类别:计费统计 软件大小:7.24 MB 适用固件:2.2及更高固件 内置广告:没有广告 开发商:Mobid ...
- android 流量统计换算,iOS 统计流量信息(转)
在开发中,有时候需要获取流量统计信息.研究发现:通过函数getifaddrs来得到系统网络接口的信息,网络接口的信息,包含在if_data字段中, 有很多信息, 但我现在只关心ifi_ibytes, ...
- android 流量统计不准确_汽车里程表上显示的百公里油耗准确吗?是不是真的是欢乐表...
汽车表显油耗准不准需要根据不同的实际工况来确定,如果是长期保持匀速行驶状态,那么表显油耗更接近实际油耗,但如果是混合工况下.走走停停,那么表现油耗就没准了,而这个时候表显油耗会比实际油耗低,所以表现油 ...
- android 流量统计换算,什么是流量?如何计算流量?流量的单位如何换算
什么是流量?如何计算流量?流量的单位如何换算 上网流量通常用"位"(bit),"字节"(Byte),KB,MB,GB,TB等来表示.它是计算机信息技术用于计量存 ...
最新文章
- c语言编写系统服务程序,C语言Windows服务程序编写-ServiceMain
- java填空题 在非静态成员方法中_Java程序设计填空和改错题(参考答案)
- linux多线程基本编程
- MySQL数据库篇之初识数据库
- 51CTO的技术门诊谈OSSIM
- css基础内容之background
- 成功演示六要素之三——具体
- 企业微信网页授权初试
- Windows NT 架构
- Pathon基础篇数据类型之——数值、字符串与列表内容
- 萧瑜 第一次博客随笔
- 2018.12.31 NOIP训练 czy的后宫6(线性dp)
- 解决Homebrew报错Error: Failure while executing;
- Java concurrent包中常用的类
- 0x80073712(0x80073712解决方法)
- PAT甲级考试题库题目分类
- 微信网页开发-长按二维码无法识别问题解决
- 刘知远:NLP研究入门之道(三)如何通过文献掌握学术动态
- 【转载】SharpDevelop开发教程
- 微博相互关注互粉mysql表实现_新浪微博的“关注功能”数据库是如何设计的