android如何开发流量监控软件

news/2024/10/18 7:47:49/

http://xlover.iteye.com/blog/1358301

最近在测试中经常要去查看一个进程的流量。所以了解了一下这方面的知识!在此总结一下

 Android流量监控主要是有两种方法:

 

一.抓包

这个方法获取的流量更加精准,但是难度应该大点。本人没有了解过,所以在此略过。

 

 

二.读取linux本地文件

Android是基于linux的一个操作系统。

在Android中,你用Root Explorer去查看系统文件的话,与流量监控相关的会有这么几个文件



/proc/net/dev这个文件中具体记录的暂时不是非常清楚,可能是整个系统的一个流量情况。


/proc/uid_stat/%d" 和"/proc/uid_stat/%d" %d为进程的UID。这个文件里只有两项数据tcp_rcv和tcp_snd。

看命名大家应该就能看出代表什么,一个代表总的接受字节数,一个代表总的发送字节数。


这两个文件为非标准linux内核文件,由android内核层/kernel/net/Socket.c 的__sock_sendmsg函数负责写入, 用户层套接字通信在内核层最终会调用此函数 (包括本地套接字和网络套接字)。

 而Android在2.3之前是没有封装响应的流量监控API的。在2.3之后呢,把数据流量监控封装到了Android.net.TrafficStats类中。其原理就是读取上文提到的那几处文件。其中有的方法也是读取的别的文件。

 

其主要的方法

static long getMobileRxBytes()//获取通过Mobile连接收到的字节总数,但不包含WiFi
static long getMobileRxPackets()//获取Mobile连接收到的数据包总数
static long getMobileTxBytes()//Mobile发送的总字节数
static long getMobileTxPackets()//Mobile发送的总数据包数
static long getTotalRxBytes()//获取总的接受字节数,包含Mobile和WiFi等
static long getTotalRxPackets()//总的接受数据包数,包含Mobile和WiFi等
static long getTotalTxBytes()//总的发送字节数,包含Mobile和WiFi等
static long getTotalTxPackets()//发送的总数据包数,包含Mobile和WiFi等
static long getUidRxBytes(int uid)//获取某个网络UID的接受字节数
static long getUidTxBytes(int uid) //获取某个网络UID的发送字节数

 

返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计,可能是因为系统版本低。

 

 getUidRxBytes(int uid)此方法就是根据uid去查找系统中响应的文件,并读取响应的值。


这其中可能遇到的问题是:没有wifi的情况下,各进程获得的getUidRxBytes之和与getMobileRxBytes所返回的值不相等。原因在于getUidRxBytes使读取上文提到的文件。而getMobileRxBytes读取的是sys/class/net/rmnet0/statistics/rx_bytes 和sys/class/net/ppp0/statistics/rx_bytes 。这俩文件。而且在getUidRxBytes返回的值中包含了本地通信的流量,比如本地进程间的socket通信。所以这两个值加起来有所出入!



http://www.ppmy.cn/news/429037.html

相关文章

免费网络管理流量监控软件大比拼

对于中小企业来说我们这些网管员希望能够找到免费的流量监控软件,前一阶段笔者为各位介绍了多款免费流量监控软件,并对这些软件的实际使用步骤和应用方法 进行了阐述,那么究竟这些流量监控软件哪个具有最佳性能呢?今天我们就来进行…

高流量的客户服务软件排名

经济社会的发展使得客户对企业所提供的服务要求愈加严格。对于希望带来更加卓越的客户体验的企业来说,客户服务系统变得越来越重要。客户服务系统不仅能帮助企业优化客户服务,还能够帮助提升人员效率。但是,市场上这么多款客户服务软件&#…

iftop工具(网卡流量监控软件)的使用

直接运行iftop&#xff0c;不加任何参数 界面显示 界面上面显示的是类似刻度尺的刻度范围&#xff0c;为显示流量图形的长条作标尺用的。 中间的< >这两个左右箭头&#xff0c;表示的是流量的方向。 TX&#xff1a;发送流量 RX&#xff1a;接收流量 TOTAL&#xff1a;总…

一款小巧、开源免费、可观性强的流量监控软件——TrafficMonitor

名人说:君子生非异也,善假于物也。——荀子 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) o(‐^▽^‐)o很高兴你打开了这篇博客,跟着步骤一步步尝试安装吧。✧ 目录 背景缘由一、简单介绍二、下载安装三、使用示例★如有疑问,欢迎评论,博主看到即回!当然,期待…

几款比较有名的刷流量软件

谨记&#xff1a;刷流量一直是提高网店或者网站不是很正规的方法&#xff0c;虽然流量很快会上去&#xff0c;但也要合理使用或使用其他正规的方法提高流量&#xff01; 为网站刷流量,提高网站的排名,就要用到刷流量软件,主要有流量精灵,飞速流量专家和天河流量王是三款比较有名…

企业网络流量分析监控软件

企业依靠自己的网络来满足不断增长的业务需求。随着云应用程序的使用增加&#xff0c;网络流量性能受到了冲击&#xff0c;监控变得更加复杂。确保无拥塞网络是非常重要的&#xff0c;这样业务关键的活动就可以在没有任何干扰的情况下完成。然而&#xff0c;说起来容易做起来难…

有哪些好用的实时网络流量监控软件

实时网络流量监控 当企业网络繁忙时&#xff0c;网络中应用的总体带宽速度会急剧下降。实时监控网络流量可以帮助解决问题。实时网络流量监控工具通过密切监控进出数据速度来收集基于IP的网络流量数据。此外&#xff0c;这些工具可以帮助网络管理员监控源IP和目标IP&#xff0…

几种开源的网络流量监控软件

目前有许多开源的网络流量监控工具&#xff0c;如WinCap、MRTG、Cacti、Nagios等&#xff1a; 1、WinpCap WinpCap 是一个免费、公共的网络访问系统&#xff0c;主要是 Windows32平台下用于抓包和分析&#xff0c;同时提供了一个强大的编程接口&#xff0c;容易在各个操作系统之…