TrafficStats类存在好几个查看流量的方法
getMobileRxBytes()
getTotalRxBytes()
getUidRxBytes() && getUidTxBytes函数
测试时发现各进程getUidRxBytes的值的总值与MobileRxBytes不一致
查看了下getUidRxBytes() && getUidTxBytes函数native 代码发现此方法通过读取
"/proc/uid_stat/%d/tcp_rcv" 和"/proc/uid_stat/%d/tcp_snd"文件来获取流量 ,其中%d为进程uid。
这两个文件为非标准linux内核文件,由android内核层/kernel/net/Socket.c 的__sock_sendmsg函数负责写入,
用户层套接字通信在内核层最终会调用此函数 (包括本地套接字和网络套接字),
因此根据TrafficStats.getUidRxBytes() && getUidTxBytes获取的流量既包括了网络流量亦包括了本地流量

而MobileRxBytes
读取的sys/class/net/rmnet0/statistics/rx_bytes
读取的sys/class/net/ppp0/statistics/rx_bytes
此为linux标准内核,略过

更多相关文章

  1. android 内存溢出oom错误的一些小见解
  2. Android摄像头采集Demo
  3. Linux/Android启动之Machine-Init函数
  4. android中onKeyDown()事件的分析
  5. Android(安卓)Studio中LogCat Filter的设置
  6. Android源码中的单例模式
  7. Android实现SharePreferences和AutoCompletedTextView
  8. android传感器sensor
  9. android jni ndk dlopen

随机推荐

  1. android自学第二天 Android API Guide学
  2. delphi XE开发微信支付Android获取手机存
  3. android基础知识12:android自动化测试03—
  4. Android自定义视图二:如何绘制内容
  5. [android] 将Java程序移植到android上
  6. Android之内存缓存——LruCache的使用及
  7. Android TextView的特殊使用:阴影,加样式
  8. Handler的运行机制
  9. Android(安卓)zip文件中读取图片实现Gall
  10. Android 4.0 input touch解析(一)