1. 在Android系统中,"/proc/net/xt_qtaguid/stats"这个文件里储存着各个应用的流量信息,统计流量的时候可以用到这个文件。
首先获取待测应用的userId
adb shell dumpsys package 【包名】 | findstr userId
2.获取流量
android4.0以上版本可以用/proc/uid_stat/$uid/tcp_rcv和/proc/uid_stat/$uid/tcp_snd来获取某个程序的上下行流量;而4.0以下版本要用cat/proc/$pid/net/dev来查看上下行流量。uid和pid的关系,可以从/data/system/packages.list这个文件中获取,但是/proc/uid_stat/$uid这种方式,在Android 6.0系统中部分厂商可能是做了某些修改,在proc目录下没有显示uid_stat文件夹。
获取Android(Linux)流量信息:
在Linux系统有3个地方保存流量统计文件,对于Android系统同样也适用:
(1)在/proc/net/dev下可以查看各个网络接口的收发流量 (等同adb shell cat /proc/pid/net/dev,adbshell cat /sys/class/net/wlan0/statistics/rx_bytes);
(2)在/sys/class/net/下可以找到相关类别(如wlan0)的目录.在其子目录statistics下游rxbytes和txbytes记录收发流量;
(3)在/proc/uid_stat/{uid}/tcp_rcv记录该uid应用下载流量字节,/proc/uid_stat/{uid}/tcp_snd有该uid应用上传流量字节;
介绍5个地方统计的流量异同点如下:
推荐使用顺序:D > E > C > A> B
推荐D和E(其他的方法自己可以根据提示的adb命令进行练习)