Android应用源码之流量监控

移动开发
在网上找到的一个小例子,可以统计每个应用的网络流量,区分移动网络与WIFI 技术点: 使用TrafficStats记录流量变化 使用Service,BroadcastReceiver监控网络状态变化 使用sqlite记录各个应用已用流量数据(只能统计应用安装后使用的流量,之前用掉的不能统计)。

源码简介
在网上找到的一个小例子,可以统计每个应用的网络流量,区分移动网络与WIFI 技术点: 使用TrafficStats记录流量变化 使用Service,BroadcastReceiver监控网络状态变化 使用sqlite记录各个应用已用流量数据(只能统计应用安装后使用的流量,之前用掉的不能统计)。
源码运行截图

代码片段:

  1. @Override 
  2.     protected void onCreate(Bundle savedInstanceState) { 
  3.         super.onCreate(savedInstanceState); 
  4.         setContentView(R.layout.activity_main); 
  5.   
  6.         txtView = (TextView) findViewById(R.id.textView1); 
  7.   
  8.         Intent intent = new Intent(MainActivity.this, TrafficService.class); 
  9.         bindService(intent, mConnection, Context.BIND_AUTO_CREATE); 
  10.   
  11.         dbManager = new DbManager(this); 
  12.         findViewById(R.id.button1).setOnClickListener(new OnClickListener() { 
  13.   
  14.             @Override 
  15.             public void onClick(View v) { 
  16.                 if (trafficService == null) { 
  17.                     txtView.setText("服务未绑定"); 
  18.                 } else { 
  19.                     trafficService.logRecord(); 
  20.                     Map<string, trafficinfo=""> list = dbManager.queryTotal(); 
  21.                     StringBuilder sb = new StringBuilder(); 
  22.                     for (TrafficInfo info : list.values()) { 
  23.                         sb.append(info.appName + " - 流量信息:\r\n"); 
  24.                         sb.append( 
  25.                                 "移动网络接收的流量" 
  26.                                         + Formatter.formatFileSize( 
  27.                                                 MainActivity.this
  28.                                                 info.mobileRx)).append("\r\n"); 
  29.                         sb.append( 
  30.                                 "移动网络发送的流量" 
  31.                                         + Formatter.formatFileSize( 
  32.                                                 MainActivity.this
  33.                                                 info.mobileTx)).append("\r\n"); 
  34.                         sb.append( 
  35.                                 "WIFI接收的流量" 
  36.                                         + Formatter.formatFileSize( 
  37.                                                 MainActivity.this, info.wifiRx)) 
  38.                                 .append("\r\n"); 
  39.                         sb.append( 
  40.                                 "WIFI发送的流量" 
  41.                                         + Formatter.formatFileSize( 
  42.                                                 MainActivity.this, info.wifiTx)) 
  43.                                 .append("\r\n"); 
  44.                         sb.append("--------------------").append("\r\n"); 
  45.                         txtView.setText(sb); 
  46.                     } 
  47.                 } 
  48.             } 
  49.         }); 
  50.     }</string,> 

源码链接:http://down.51cto.com/900943

责任编辑:chenqingxiang 来源: 网络整理
相关推荐

2016-12-13 08:45:48

2011-11-08 21:45:29

Linux 流量监控

2021-03-09 07:38:15

Percona Xtr流量控制运维

2011-03-31 10:24:15

2022-10-11 17:51:49

分库分表数据库

2013-12-18 15:41:11

zabbixdiscovery监控

2009-08-03 16:27:17

2014-09-12 18:18:02

tcpudtUDP

2016-10-07 22:54:03

流量监控ossim

2022-11-24 08:35:28

KitexProxyless

2015-02-27 16:35:13

智能农业Android界面

2011-03-31 09:47:21

CACTI流量监控

2010-06-11 11:28:39

Linux流量监控

2010-05-27 12:52:42

Linux流量监控软件

2011-01-06 13:45:51

linux流量监控iftop

2009-01-11 10:30:00

2011-04-01 09:18:03

FreeBSD安装MRTG

2013-12-27 09:55:56

2015-02-03 14:45:55

android全局异常

2011-04-06 10:57:14

监控MRTG
点赞
收藏

51CTO技术栈公众号