Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 流量的統計

android 流量的統計

編輯:關於Android編程

1 android架構對流量的統計通過一個TrafficStats類可以直接獲取
獲取總接受流量TrafficStats.getTotalRxBytes(),
獲取總發送流量TrafficStats.getTotalTxBytes());
獲取不包含WIFI的手機GPRS接收量TrafficStats.getMobileRxBytes());
獲取不包含Wifi的手機GPRS發送量TrafficStats.getMobileTxBytes());

統計某一個進程的總接收量TrafficStats.getUidRxBytes(Uid));
統計某一個進程的總發送量TrafficStats.getUidTxBytes(Uid));

這些獲取的流量都是從一次開機到讀取時刻的統計量。
所以,統計某一個程序的流量統計的時候,一定要注意開關機,和本次開機後是第幾次啟動本程序。

2 android的TrafficStats類
前四個讀取的/proc/net/dev裡面的數據
後面的兩個接口對某一個進程的流量統計的是/proc/uid_stat/*** 接口裡面的節點 數據

package cn.sunzn.trafficmanger;
import android.app.Activity;
import android.net.TrafficStats;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/** 獲取手機通過 2G/3G 接收的字節流量總數 */
TrafficStats.getMobileRxBytes();
/** 獲取手機通過 2G/3G 接收的數據包總數 */
TrafficStats.getMobileRxPackets();
/** 獲取手機通過 2G/3G 發出的字節流量總數 */
TrafficStats.getMobileTxBytes();
/** 獲取手機通過 2G/3G 發出的數據包總數 */
TrafficStats.getMobileTxPackets();
/** 獲取手機通過所有網絡方式接收的字節流量總數(包括 wifi) */
TrafficStats.getTotalRxBytes();
/** 獲取手機通過所有網絡方式接收的數據包總數(包括 wifi) */
TrafficStats.getTotalRxPackets();
/** 獲取手機通過所有網絡方式發送的字節流量總數(包括 wifi) */
TrafficStats.getTotalTxBytes();
/** 獲取手機通過所有網絡方式發送的數據包總數(包括 wifi) */
TrafficStats.getTotalTxPackets();
/** 獲取手機指定 UID 對應的應程序用通過所有網絡方式接收的字節流量總數(包括 wifi) */
TrafficStats.getUidRxBytes(uid);
/** 獲取手機指定 UID 對應的應用程序通過所有網絡方式發送的字節流量總數(包括 wifi) */
TrafficStats.getUidTxBytes(uid);
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}

Android OS下有幾個應用是集體的,包括(Android系統、設置存儲、設置、系統用戶界面、miui)

OS裡面的各個模塊的流量統計都算到OS 1000的流量,如果某一模塊出問題就不能夠揪出來,可以創建接口分別計算。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved