Android2 1讀取程序流量

2021-08-27 09:34:48 字數 4154 閱讀 5535

1.大家都知道android在2.2版本中提供了trafficstats介面對流量的統計,它提供了一系列的native方法相應統計分類 ,對應的方法如下:

static longgetmobilerxbytes()//獲取通過mobile連線收到的位元組總數,不包含wifi

static longgetmobilerxpackets()//獲取mobile連線收到的資料報總數,不包含wifi

static longgetmobiletxbytes()//mobile傳送的總位元組數

static longgetmobiletxpackets()//mobile傳送的總資料報數

static longgettotalrxbytes()//獲取總的接受位元組數,包含mobile和wifi等

static longgettotalrxpackets()//總的接受資料報數,包含mobile和wifi等

static longgettotaltxbytes()//總的傳送位元組數,包含mobile和wifi等

static longgettotaltxpackets()//傳送的總資料報數,包含mobile和wifi等

static longgetuidrxbytes(int uid)//獲取某個網路uid的接受位元組數

static longgetuidtxbytes(int uid) //獲取某個網路uid的傳送位元組數

2. 但在1.6,2.1呢。。。可以通過對檔案的的讀取而取得資料流量的資料,所以我猜想trafficsta應該也通過讀檔案的方式來取的流量吧。好了不多說了,**:

public class trafficservice extends service ;

string gprsdata = ;

string wifidata = ;

string data = "0,0,0,0,0,0,0,0,0,0,0,0";// 對應on.txt裡面的格式

final string ethline = " eth0";// eth是乙太網資訊 tiwlan0 是 wifi rmnet0 是 gprs

final string gprsline = "rmnet0";

final string wifiline = "tiwlan0";

final string text_encoding = "utf-8";

final public string onpath = "/data/data/com.example.hello/on.txt";

final public string logpath = "/data/data/zy.dnh/log.txt";

private runnable mtasks = new runnable()

}; @override

public void onstart(intent intent, int startid)

@override

public void oncreate()

@override

public ibinder onbind(intent intent)

@override

public void ondestroy()

//讀裝置流量

public void readdev() catch (filenotfoundexception e)

bufferedreader in = new bufferedreader(fstream, 500);

string line;

string segs;

string netdata = null;

int count = 0;

int k;

int j;

try

}} else if (line.startswith(gprsline))

}} else if (line.startswith(wifiline)) }}

count++;

}fstream.close();

} catch (ioexception e)

} public string getinfo(string path)

in = new fileinputstream(file);

// 將檔案內容全部讀入到byte陣列

int length = (int) file.length();

byte temp = new byte[length];

in.read(temp, 0, length);

// 將byte陣列用utf-8編碼並存入display字串中

str = encodingutils.getstring(temp, text_encoding);

// 關閉檔案file的inputstream

in.close();

} catch (ioexception e)

return str;

} public void writefile(string str, string path) catch (ioexception e)

} public void refresh()

// 計算增量

else

// 讀取log.txt

// 獲取當前時間

final calendar c = calendar.getinstance();

myear = c.get(calendar.year); // 獲取當前年份

mmonth = c.get(calendar.month) + 1;// 獲取當前月份

mday = c.get(calendar.day_of_month);// 獲取當前月份的日期號碼

mhour = c.get(calendar.hour_of_day);// 獲取當前的小時數

mminute = c.get(calendar.minute);// 獲取當前的分鐘數

mdate = myear + "-" + mmonth + "-" + mday;

string logstr = getinfo(logpath);// 將log.txt的內容讀到text字串中

string line = logstr.split("/n");

log.i("sys", "logstr: " + logstr);

string today = line[line.length - 1];// 獲得今日已記錄流量

string betoday = today.split(",");

// 檢查檔案最後一行是否為今天的流量記錄資訊

if (!betoday[0].equals(mdate))// 如果檔案只有一行,表明目前日誌為空,將當前日期加入

// 判斷今日流量是否已經記錄,如果今日流量沒有記錄

int i;

// 處理今日流量

int newtodaydata = new int[12];// 表示今日流量

string newtoday = mdate;

for (i = 0; i <= 11; i++)

newtoday = newtoday + "/n";

string betotal = line[0].split(",");

int newtotaldata = new int[12];// 表示總流量數值

// 更新第一行

string newtotal = "total";

for (i = 0; i <= 11; i++)

newtotal = newtotal + "/n";

// 處理中間不變的部分

string before = "";// before為之前的從第1行到昨天的流量記錄

for (i = 1; i <= line.length - 2; i++)

before = before + line[i] + "/n";// 代表中間不變的部分

string newlog = newtotal + before + newtoday;

log.i("sys", newlog);

for (int k = 0; k < delta.length; k++)

writefile(data, onpath);// 更新流量記錄

writefile(newlog, logpath);// 更新log*/

}}

Android2 1遊戲開發 雙緩衝技術的應用

android2.1遊戲開發 雙緩衝技術的應用 這幾天做乙個遊戲的開發,發現經常概率性的出現空指標異常,特別在開發板上,更容易出現錯誤 跟蹤 發現,在 canvas.drawbitmap key bitmap,keyx,keyy,paint 中會出現讀取失敗而導致丟擲空指標異常。經過反覆除錯,在使用...

Android2 1下除錯3G模組(一)

曾幾何時在android2.1下除錯3g模組,曾幾何時模組廠商提供的庫不能用,曾幾何時只能用自己的庫痛苦地除錯.這一切的一切都已成往事,昔日的成功在毫無保留下成為浮雲,該忘了忘記了,該記得也跟著忘記了。現如今再次調3g模組,卻不知道以前如何除錯,看來還是要記下來。我採用的是華為em770w模組,支援...

Android2 1下除錯3G模組(二

前面講到了如何讓修改kernel驅動和ril層 接下來還需要增加ppp撥號以及裝置檔案和服務屬性。1.修改init.gprs pppd屬性 對應檔案 system core include private android filesystem config.h 在static struct fs p...