`
xlover
  • 浏览: 245977 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android如何开发流量监控软件

 
阅读更多

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

 

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通信。所以这两个值加起来有所出入!

 

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 androidzd 2012-04-19  
有没有只记录网络流量不记录本地通信的流量的文件?   本地流量真让人头疼呃

相关推荐

    (安卓)流量监控App(AndroidStudio).zip

    (安卓)流量监控App(AndroidStudio).zip(安卓)流量监控App(AndroidStudio).zip(安卓)流量监控App(AndroidStudio).zip(安卓)流量监控App(AndroidStudio).zip(安卓)流量监控App(AndroidStudio).zip(安卓)流量监控App...

    基于Android系统流量监控的安全软件设计与研究.pdf

    "基于Android系统流量监控的安全软件设计与研究" 基于Android系统流量监控的安全软件设计与研究是当前信息技术发展的重要方向之一。随着Android系统的广泛应用,流量监控的安全软件设计变得越来越重要。该研究主要...

    Android网络流量监控软件源码

    总的来说,这个Android流量监控软件源码涵盖了Android网络编程、系统服务使用、UI设计、数据持久化以及后台服务等多个方面,是学习和实践Android开发的一个综合性项目。通过深入研究和理解,开发者不仅可以掌握网络...

    android 流量监控源码

    综上所述,这个"android 流量监控源码"项目涵盖了Android开发中的多个核心知识点,包括网络API的使用、数据持久化、UI设计、多线程编程以及事件驱动的架构模式等。对于希望学习Android系统级编程、优化流量管理或...

    Android应用源码流量监控流量沙漏瓶

    沙漏流量瓶,针对现在流量监控软件的不精确而推出的,本软件使用了友好,动感的界面,给用户带来一种时尚的气息,本软件使用了独特的算法,使得流量监控更为准确,特别是wifi与数据网络的分开监控,而且能够进行单个...

    android流量监控软件

    通过以上步骤,我们可以构建一个基本的Android流量监控软件,提供实时流量统计、历史数据查看以及流量预警等功能。结合源码分析,有助于深入理解Android系统如何与网络交互以及如何有效地管理应用数据使用。

    Android系统流量监控的安全软件开发设计分析.pdf

    Android系统流量监控的安全软件开发设计分析.pdf

    android流量监控项目

    综上所述,“android流量监控项目”涵盖了Android的网络API使用、数据持久化、UI设计、权限管理、服务与广播接收器等多个方面。通过学习和实践此类项目,开发者不仅可以提升自身技能,还能为用户提供实用的应用,...

    Android网路流量监控分析器

    基于Android设备的网路流量监控分析器实作 内容为ANDROID应用程序,欢迎下载到手机安装并提供建议 开发告一段落后后将开源 实现流量统计,并实作了悬浮窗口以显示即时网速 详细内容预览 ...

    android流量监控_悬浮窗

    本文将深入探讨“android流量监控_悬浮窗”这一主题,讲解如何实现一个能够实时显示网络下载速度的悬浮窗应用,并讨论相关技术细节。 首先,我们要知道在Android系统中,监测网络流量主要涉及两个核心组件:`...

    基于安卓的手机流量监控软件 文献综述

    基于Android的手机流量监控软件是针对现代移动设备中日益增长的网络使用需求而设计的解决方案。随着智能手机的普及,尤其是Android系统的广泛采用,用户对于网络流量的管理与控制变得至关重要。由于许多应用程序会在...

    基于Android的流量监控白名单策略.pdf

    【Android流量监控白名单策略】是针对Android平台上日益严重的安全问题,特别是恶意软件吸费现象,提出的一种流量监控改进方案。该策略的核心是在协议层建立白名单数据库,通过对应用程序进程的联网访问进行控制,以...

    Android软件权限与流量监控并生成权限雷达图与危险评估报告

    在android下可监控其他应用软件权限,监控每个应用软件流量情况,对每个应用软件的权限生成雷达分析图,并生成简单危险评估报告。还可设置是否后台运行等。 贴出本软件相关源码与参加大赛时的报告。 本软件部分功能...

    Android流量网络监控设计(超级实用版)

    《Android流量网络监控设计》 随着Android智能移动设备的广泛应用,网络流量监控变得越来越重要。这一领域的研究旨在帮助用户实时了解并控制设备的网络流量,从而优化数据使用,避免不必要的费用支出。本文针对这一...

    基于Android系统流量监控的安全软件设计与研究

    对于当前信息技术的发展,Android系统的应用群体越来越广泛,基于Android系统流量监控方面,优化设计其安全软件,发挥积极影响;通过分析软件设计需求,结合andriod系统流量监控平台,通过实时连续地采集网络数据并...

    基于Android流量监控软件APP设计与实现.docx

    基于Android流量监控软件APP设计与实现.docx

    Android移动终端流量监控软件的设计与实现课稿实用教案.ppt

    在Android移动终端上,流量监控软件的设计与实现是至关重要的,因为随着智能手机的普及和移动数据网络的发展,用户对数据使用的关注度日益增加。同时,恶意软件通过联网可能会导致高额的数据费用,而Android系统本身...

    Android 具有悬浮窗口的网路流量监控分析器 源码

    基于Android设备的网路流量监控分析器实作 资源内容为ANDROID应用程序工程源代码 实现流量统计,并实作了悬浮窗口以显示即时网路流量 详细内容请至下方网址CSDN博客浏览 ...

Global site tag (gtag.js) - Google Analytics