Android 流量统计TrafficStats总结

流量统计TrafficStats总结
        近日,入职了新公司,然后被要求做一个类似于流量监控的应用软件,之后我在网上查询了一下有关于网络流量监控的相关的代码,找到了实现网络流量的类TrafficStats类,接下来我就我这几天用到的有关于这个类的的方法做一个总结:
1.    类的方法:
getMobileRxBytes();
getMobileTxBytes();
这两个方法主要用于取得2G/3G流量接收到和向服务器传输的数据的总数,返回值是long型,是static方法。如果android系统不支持,或者其他原因导致的不支持,那么TrafficStats类的静态属性UNSUPPORTED就会被返回。
    getTotalRxBytes();
    getTotalTxBytes();
这两个方法主要用于取得总的接受和向服务器上传的数据的总数(包括Wifi和2G/3G流量),返回值是long型,是static方法。如果android系统不支持,或者其他原因导致的不支持,那么TrafficStats类的静态属性UNSUPPORTED就会被返回。
    getMobileRxPackets();
    getMobileTxPackets();
这两个方法主要用于取得2G/3G网络所接收到和上传上去的数据包的总量,返回值是long,是static方法。如果android系统不支持,或者其他原因导致的不支持,那么TrafficStats类的静态属性UNSUPPORTED就会被返回。
getUidRxBytes(int uid);
getUidTxBytes(int uid);
    这两个方法主要用于计算某一个应用所接收到和上传上去的数据的总量,返回值是long,是static方法。如果android系统不支持,或者由于其他原因导致的不支持,那么TrafficStats类的静态属性UNSUPPORTED就会被返回。此方法返回的数据有点诡异,当应用刚刚启动的时候,这两个方法已经含有一定量的值,目前并未能确定这两个方法取得的数据究竟是什么。但是当需要取得瞬时的数据,那么可以相隔一定的时间相减,得到一定时间内某一个应用所收到或者上传的数据。其中的uid是指应用程序的uid。
getUidRxPackets(int uid);
getUidTxPackets(int uid);
这两个方法主要用于计算某一个应用所接收到和上传上去的数据的总量,返回值是long,是static方法。如果android系统不支持,或者由于其他原因导致的不支持,那么TrafficStats类的静态属性UNSUPPORTED就会被返回。此方法我没有用过,所以返回的数据是否存在什么不太清楚的地方,还有待日后探究。其中的uid是指应用程序的uid。
其他还有些API 14才加入进去的方法,我都没有接触过,有待日后研究。
 

你可能感兴趣的:(Android独类解析)