[Android Traffic] android 流量计算方法

android流量简介

  • 流量统计文件:路径/proc/net/dev

打开文件,其中 lo 为本地流量, rmnet0 为3g/2g流量, wlan0 为无线流量.

  • 在/sys/class/net/下 可以找到相关类别(如rmnet0)的目录.在其子目录statistics下游rx_bytes和tx_bytes记录收发流量.
  • 在/proc/uid_stat/{uid}/tcp_rcv记录该uid应用下载流量字节,/proc/uid_stat/{uid}/tcp_snd有该uid应用上传流量字节

TrafficStats学习

  • TrafficStats google develop文档
  • TrafficStats 源文件 查看
  • 重要API:

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的发送字节数[/mw_shl_code]
备注:TrafficStats类在Android 2.2 API Level(8)之后出现。

做GXB的时候查流量的方法是根据uid查询系统文件:

/proc/uid_stat/uid/tcp_send        上传流量
   /proc/uid_stat/uid/tcp_rcv         下载流量

做AVT的时候是通过uid调用系统的方法查询流量:

//proc/uid_stat/10086
        long tx = TrafficStats.getUidTxBytes(uid);//发送的 上传的流量byte
        long rx = TrafficStats.getUidRxBytes(uid);//下载的流量 byte

TrafficStats.getMobileTxBytes();//获取手机3g/2g网络上传的总流量
        TrafficStats.getMobileRxBytes();//手机2g/3g下载的总流量

TrafficStats.getTotalTxBytes();//手机全部网络接口 包括wifi,3g、2g上传的总流量
        TrafficStats.getTotalRxBytes();//手机全部网络接口 包括wifi,3g、2g下载的总流量

本质都是一样的。

时间: 2024-09-28 04:48:36

[Android Traffic] android 流量计算方法的相关文章

[Android Traffic] Android网络开启、关闭整理

转载: http://blog.csdn.net/tu_bingbing/article/details/8469871 近段时间由于要对手机网络状况进行判断.开启和关闭,从网上找了些资料,现整理如下 包含了对WiFi.GPRS.飞行模式的开启.关闭以及一些状态的检测,在小米和三星平板上测试均通过 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permis

【Android】Android开源项目分类汇总

第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style等等..其他 一.ListView android-pulltorefresh一个强大的拉动刷新开源项目,支持各种控件下拉刷新

Android培训Android课堂重点内容汇总

Android培训Android课堂重点内容汇总 一.Android Introduction Android 是一个允许你在java环境下为手机设备开发应用和游戏的提供丰富应用框架. 二.四大组件 1.Activity (1)定义:提供给用户一个与app进行交互的UI界面的组件 (2)创建 //步骤 (1 继承Activity或者其子类 (2 必须实现OnCreate() (3 OnCreate()实现SetContentView(),为这个Activity提供的窗口,添加layout(布局)

[Android Pro] Android系统手机端抓包方法

抓包准备 1. 手机要有root权限 2. 下载tcpdump   http://www.strazzere.com/android/tcpdump 3. adb push c:\wherever_you_put\tcpdump /data/local/tcpdump 4. adb shell chmod 6755 /data/local/tcpdump 5, adb shell,   su获得root权限 6, cd /data/local 7, ./tcpdump -i any -p -s

android权限--android开发中的权限及含义(上)

android权限--android开发中的权限及含义(上) android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT 访问闪光灯,android开发网提示HTC Dream不包含闪光灯 android.pe

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,On SetTitl

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,OnSetTitleMatchMode,2 ; 激活窗口并单击按钮IfWinExistActiveControlClick

【Android】Android Camera原始帧格式转换 —— 获取Camera图像(一)

 概述: 做过Android Camera图像采集和处理的朋友们应该都知道,Android手机相机采集的原始帧(RawFrame)默认是横屏格式的,而官方API有没有提供一个设置Camera采集图像的方向的方法,导致我们拿到原始帧后还需要再次对其进行转换为对应需求的数据,例如YUV的格式,图像的方向等(旋转多少度合适),下面我就粗略的介绍一下大致的流程,理解浅薄,大神请勿喷. 注意:当前还都是基于API<21的内容,如果压根不用android.hardware.Camera的话可能有区别,还没研

android程序----&gt;android五子棋的实现

在慕课网上学习了五子棋的课程,感觉挺不错.然后自己写了个关于五子棋的android程序,从中还是能够学习到很多东西的.现在我们开始今天五子棋程序的编写历程.程序的源码请参见友情链接: 目录导航 一些前期做准备的代码 自定义棋盘的View 保存残局并恢复棋局 判断游戏是否结束的算法 友情链接 好了,我们现在开始一步步的构建出项目来,首先是如下的项目结构图: 运行的效果图: 一些前期做准备的代码 一. 主活动类MainActivity,在菜单中加入了再来一局的功能: public class Mai

android之android.intent.category.DEFAULT的用途和使用

转载(http://blog.csdn.net/jason0539/article/details/10049899) 1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码: Intent intent= new Intent(this, B.class): Implicit Intent没有明确的指定要启动哪个Activity