Android流量统计知识点
1、流量统计不能在模拟器上模拟,必须通过真机调试
2、Windows通过MAC网卡来统计流量的大小
android通过读取文件(linux)中的流量数据来获取流量的使用情况
3、文件位置
/proc/uid_stat/
该文件夹下有好多以APP的UID编号的文件夹,每个文件夹下又分别有tcp_rcv和tcp_snd两个文件夹,分别是下载和上传的流量
这些文件夹中的数据会动态增加
4、读取流量数据的方法
1、通过IO流读取
例如:
Filedir = new File("/proc/uid_stat/");
//各个APP的UID
File[] files =dir.listFiles();
for(inti=0;i<files.length;i++){
Stringuid = files[i].getName();
list.add(Integer.parseInt(uid));
}
File file = new File("/proc/uid_stat/" + uid + "/tcp_rcv");//该UID对应的APP的下载的总流量
2、TrafficStats(静态类)
TrafficStats.getTotalTxBytes(); | 获取总共的发送(上传)的流量(包括3G,4G,WIFI) |
TrafficStats.getTotalRxBytes(); | 获取总共的接收(下载)的流量(包括3G,4G,WIFI) |
获取手机的接收(下载)的流量(不包括WIFI) | |
获取包的个数 | |
getUidTxBytes(int uid) | Return number of bytes transmitted by the given UID since device boot. |
3、
5、android系统每个APP的UID
packageInfo.applicationInfo.uid; | 获取到安装的APP的UID(int类型的数字) |
android系统的UID是1000,不是java程序,是C程序
系统的核心APP是UID以1000开头的,用户安装的和非核心的APP是以10000开头的UID,如果某一个APP被卸载了,其他APP又安装了,那么就会用最近被卸载的那个APP的UID,并且UID自增长