Android流量统计TrafficStats类的使用

转自http://gundumw100.iteye.com/blog/1294167

对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提 供的文件对象系统类型的文本进行解析。android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为 long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计。

    static long  getMobileRxBytes()  //获取通过Mobile连接收到的字节总数,不包含WiFi
    static long  getMobileRxPackets()  //获取Mobile连接收到的数据包总数
    static long  getMobileTxBytes()  //Mobile发送的总字节数
    static long  getMobileTxPackets()  //Mobile发送的总数据包数
    static long  getTotalRxBytes()  //获取总的接受字节数,包含Mobile和WiFi等
    static long  getTotalRxPackets()  //总的接受数据包数,包含Mobile和WiFi等
    static long  getTotalTxBytes()  //总的发送字节数,包含Mobile和WiFi等
    static long  getTotalTxPackets()  //发送的总数据包数,包含Mobile和WiFi等
    static long  getUidRxBytes(int uid)  //获取某个网络UID的接受字节数
    static long  getUidTxBytes(int uid) //获取某个网络UID的发送字节数   

总接受流量TrafficStats.getTotalRxBytes(),
总发送流量TrafficStats.getTotalTxBytes());

不包含WIFI的手机GPRS接收量TrafficStats.getMobileRxBytes());

不包含Wifi的手机GPRS发送量TrafficStats.getMobileTxBytes());

某一个进程的总接收量TrafficStats.getUidRxBytes(Uid));

某一个进程的总发送量TrafficStats.getUidTxBytes(Uid));

这些都是从第一次启动程序到最后一次启动的统计量。并不是这篇文章里所说的“从本次开机到本次关机的统计量”!

用法举例,注意这里得到的单位都是"KB"

    public long getTotalRxBytes(){  //获取总的接受字节数,包含Mobile和WiFi等
            return TrafficStats.getTotalRxBytes()==TrafficStats.UNSUPPORTED?0:(TrafficStats.getTotalRxBytes()/1024);
        }
        public long getTotalTxBytes(){  //总的发送字节数,包含Mobile和WiFi等
            return TrafficStats.getTotalTxBytes()==TrafficStats.UNSUPPORTED?0:(TrafficStats.getTotalTxBytes()/1024);
        }
        public long getMobileRxBytes(){  //获取通过Mobile连接收到的字节总数,不包含WiFi
            return TrafficStats.getMobileRxBytes()==TrafficStats.UNSUPPORTED?0:(TrafficStats.getMobileRxBytes()/1024);
        }  
时间: 2024-10-08 09:49:35

Android流量统计TrafficStats类的使用的相关文章

Android流量统计TrafficStats类

对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析. android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为 long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. static long getMobileRxBytes() //获取通过Mobile连接收到的字节总数,不包含WiFi stati

android 流量统计

1 android通过架构流量统计TrafficStats类可以直接获得 获得总流量受理TrafficStats.getTotalRxBytes(), 获得总传出流量TrafficStats.getTotalTxBytes()); 获取不包括WIFI的手机GPRS接收量TrafficStats.getMobileRxBytes()); 获取不包括Wifi的手机GPRS发送量TrafficStats.getMobileTxBytes()); 统计某一个进程的总接收量TrafficStats.get

android流量统计

android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计.    static long  getMobileRxBytes()  //获取通过Mobile连接收到的字节总数,这里Android123提示大家不包含WiFi   static long  getMobileRxPackets()  //获取Mobile连接收到的数据包总数   static long  get

Android TrafficStats类的使用

对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析.android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为 long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计. Java代码   static long  getMobileRxBytes()  //获取通过Mobile连接收到的字节总数,不包含

android 利用TrafficStats类获取本应用的流量

public void getData() { // PackageManager 包管理类 PackageManager packageManager = BrownserActivity.this.getPackageManager(); int PackageUid = 0; BigDecimal numRx = new BigDecimal("0"); BigDecimal numTx = new BigDecimal("0"); /** * 循环抓紧所有应

Android应用流量统计——NetworkStatsManager使用

在没有Root的情况下,Android应用流量统计在6.0之前一直没有太好的办法,官方虽然提供了TrafficStats,但其主要功能是设备启动以来流量的统计信息,和时间信息无法很好的配合.最近再看TrafficStats类时,发现说明中提到,为获取更具鲁棒性的网络历史数据,建议使用NetworkStatsManager. 本文首先简单对比下TrafficStats和NetworkStatsManager各自的限制和优缺点,然后详细说明NetworkStatsManager的用法,并给出主要代码

android 流量的统计

1 android架构对流量的统计通过一个TrafficStats类可以直接获取 获取总接受流量TrafficStats.getTotalRxBytes(), 获取总发送流量TrafficStats.getTotalTxBytes()); 获取不包含WIFI的手机GPRS接收量TrafficStats.getMobileRxBytes()); 获取不包含Wifi的手机GPRS发送量TrafficStats.getMobileTxBytes()); 统计某一个进程的总接收量TrafficStats

android app 流量统计

https://blog.csdn.net/yzy9508/article/details/48300265 | android 数据流量统计 - CSDN博客https://blog.csdn.net/forlong401/article/details/8440160 | android如何开发流量监控软件 - CSDN博客https://stackoverflow.com/questions/12613402/android-statistic-3g-traffic-for-each-ap

Android中进行流量统计

// ---------------------流量统计-------------------------------- try { PackageManager pm = getPackageManager(); ApplicationInfo ai = pm.getApplicationInfo("com.test.app", PackageManager.GET_ACTIVITIES);// com.test.app为自己应用的包名 Log.d("!!", &