获取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
参数含义
- 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
- 如果结果出现多行数据,相加的总数即为结果
对应的表头的列名称和意思如下:
名称 | 含义 |
---|---|
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协议流量统计数据
未完待续