獲取手機應用流量TrafficStats的使用

2021-06-22 19:16:41 字數 1401 閱讀 3761

安卓是基於linux改編的,在2.2版本中加入了trafficstats類,通過使用這個類可以輕鬆獲取到手機從開機到使用本類時手機所使用的流量以及單應用的上下行流量。

在安卓2.2版本之前如果需要查詢流量,需要利用linux提供的方法來讀取流浪儲存的檔案,這個檔案在「/proc/uid_stat/uid/」資料夾下(uid是應用在手機內的唯一id號),在這個資料夾下有兩個檔案,這兩個檔案記錄了手機從開機到現在的上行流量和下行流量。

在安卓4.3版本中不知原因不支援trafficstats利用uid獲取流量的方法,但在4.4版本中又支援,所以在4.3版本中只能用讀取文字的方式代替trafficstats類進行解析。

無論是利用trafficstats或是讀取檔案的方式進行檢視單應用所用的流量,記錄的這些資料都是從這次開機開始到查詢時的流量,這些流量統計關機之後將被清除。

trafficstats類中,提供了多種靜態方法,可以直接呼叫獲取,返回型別均為long型,如果返回等於-1代表 unsupported ,表示當前裝置不支援統計。

public packagesinfo(context context) 

/***

* @param name 程式名

*/if (name == null)

}} return null;

} /**

* * @param name

* 單應用流量獲取

* activitymanager am = (activitymanager) context

.getsystemservice(context.activity_service);

// 獲取正在執行的應用

// 過濾掉沒有聯網的

int result = context.getpackagemanager().checkpermission(

"android.permission.internet", ra.processname);

if (result != packagemanager.permission_granted)

continue;

}// 過濾掉無對應的程式

if (getinfo(ra.processname) != null) else

}} list.addall(slist);

return list;

}

file dir = new file("/proc/uid_stat/");

string children = dir.list();

if (children != null) catch (namenotfoundexception e) catch (ioexception e)

}} return list; }

手機流量資訊的獲取

獲取手機流量的工具類 市面上的一些流量統計軟體,一般是定義乙個資料庫,手機關機的時候會有乙個廣播事件 android.intent.action.action shutdown 監聽到這個廣播事件,然後存到資料庫。public class trafficutil 獲取手機2g 3g產生的總流量 re...

獲取手機應用資訊

systemutils.j a工具類 j a package com.techrare.utils import j a.util.arraylist import j a.util.list import android.content.context import android.content...

app專項效能測試 獲取手機cpu 記憶體 流量

1 cpu獲取 獲取手機指定packagename的cpu佔比 public static string getcpu string packagename bufferedreader in new bufferedreader new inputstreamreader proc.getinpu...