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-app-how | android statistic 3g traffic for each APP, how? - Stack Overflow
https://blog.csdn.net/u012819339/article/details/50513387 | 【智能路由器】设备流量、网速统计及上下线提醒(基于netfilter编程) - CSDN博客
https://blog.csdn.net/yiranyinger/article/details/78062778 | Android 获取手机整体流量使用情况以及某个应用的流量的统计 - CSDN博客
https://blog.csdn.net/w7849516230/article/details/71705835 | Android应用流量统计——NetworkStatsManager使用 - CSDN博客
https://developer.android.google.cn/reference/android/net/TrafficStats | TrafficStats | Android Developers
https://blog.csdn.net/u013205623/article/details/52860071 | TrafficStats类实现Android监听网速 - CSDN博客
https://blog.csdn.net/focusjava/article/details/52195001 | Android 流量优化(一):模块化流量统计 - CSDN博客
https://developer.android.google.cn/ | Android Developers
PR: 按照应用统计流量消耗情况?
监听 拦截 网络 流量
TrafficStats.
--2.2之后引入了一个新的 android.net.TrafficStats类可以做到网络流量统计,可以统计总流量也可以统计单个进程的流量
Android系统将放流量数据信息保存在文件/proc/net/xt_qtaguid/stats 中(见源码)
使用TrafficStats.setThreadTag(int tag)方法标记的产生流量的线程,参数tag是上面模块相关的tag;@See TrafficStats;
NOTE:1、一个线程同时只会有一个有效的tag,并且不会传递,依赖包启动了新线程访问网络则需要依赖方提供标记支持;2、native层socket、webview产生的流量无法使用此方法标记;
TrafficStats.getUidRxBytes(myuid);
myuid是你的应用所有的uid,这个根据ActivityManager可以获取runing的程序获取到
大概就是先获取uid,然后根据那个方法获取接收流量
TrafficStats.getUidTxBytes(myuid);这个是发送流量。
这些是指开机开始计的,你想统计月什么的,自己写个方法保存叠加就是
static long getMobileRxBytes() //获取通过Mobile连接收到的字节总数,不包含WiFi
static long getMobileRxPackets() //获取Mobile连接收到的数据包总数,不包含WiFi
static long getMobileTxBytes() //Mobile发送的总字节数
static long getMobileTxPackets() //Mobile发送的总数据包数
static long getTotalRxBytes() //获取总的接受字节数,包含Mobile和WiFi等
static long getTotalRxPackets() //总的接受数据包数,包含Mobile和WiFi等
static long getTotalTxBytes() //总的发送字节数,包
原文地址:https://www.cnblogs.com/bluestorm/p/9107402.html