测试物语:APP流量统计

获取TCP + UDP 等其他协议流量统计数据

方法一:/proc/<pid>/net/dev

1.获取待测试App pid
adb shell ps | grep packagename
2.获取指定App 流量消耗数据
adb shell cat /proc/#pid#/net/dev
3.获取总流量消耗数据
adb shell cat /proc/net/dev

image.png

参数含义

  • Recevice:表示收包
  • Transmit:表示发包
  • bytes: 表示收发的字节数
  • packets: 表示收发正确的包量
  • errs: 表示收发错误的包量
  • drop: 表示收发丢弃的包量

统计数据
1.如果想要将数据清0,开关一下飞行模式,再执行命令即可
2.(将上下行的数据相加-测试前的数据)/1024/1024就得到所消耗多少M的流量

方法二:/proc/net/xt_qtaguid/stats | grep <uid>

1.获取待测试App pid
adb shell ps | grep packagename
2.获取待测试App uid
adb shell cat /proc/4362/status | grep -i uid
3.获取待测试App 流量数据
adb shell cat /proc/net/xt_qtaguid/stats | grep uid

  • 第6列是接收的流量数值,单位:bytes
  • 第8列是发送的流量数值,单位:bytes
  • 如果结果出现多行数据,相加的总数即为结果
image.png

对应的表头的列名称和意思如下:

名称 含义
idx 序号
iface 代表流量类型(rmnet表示2G/3G, wlan表示Wifi流量,lo表示本地流量)
acct_tag_hex 线程标记(用于区分单个应用内不同模块/线程的流量)
uid_tag_int 应用uid,据此判断是否是某应用统计的流量数据
cnt_set 应用前后标志位 1:前台, 0:后台
rx_btyes receive bytes 接受到的字节数
rx_packets 接收到的任务包数
tx_bytes transmit bytes 发送的总字节数
tx_packets 发送的总包数
rx_tcp_types 接收到的tcp字节数
rx_tcp_packets 接收到的tcp包数
rx_udp_bytes 接收到的udp字节数
rx_udp_packets 接收到的udp包数
rx_other_bytes 接收到的其他类型字节数
rx_other_packets 接收到的其他类型包数
tx_tcp_bytes 发送的tcp字节数
tx_tcp_packets 发送的tcp包数
tx_udp_bytes 发送的udp字节数
tx_udp_packets 发送的udp包数
tx_other_bytes 发送的其他类型字节数
tx_other_packets 发送的其他类型包数

获取TCP协议流量统计数据

未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。