手機(jī)流量控制軟件畢業(yè)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  基于Android的手機(jī)</p><p>  流量控制軟件設(shè)計(jì)與實(shí)現(xiàn)</p><p>  學(xué)院(系): 信息工程學(xué)院 </p><p>  專業(yè)班級(jí): </p>&

2、lt;p>  學(xué)生姓名: </p><p>  指導(dǎo)教師: </p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)</p><p>  設(shè)計(jì)(論文)題目: 基于Android的手機(jī)流量控制軟件設(shè)計(jì)與實(shí)現(xiàn) </p><p>  設(shè)計(jì)(論文)主要內(nèi)容:<

3、;/p><p>  1)認(rèn)真學(xué)習(xí)android操作系統(tǒng)構(gòu)架和開(kāi)發(fā)環(huán)境;</p><p>  2)熟練運(yùn)用C++、java進(jìn)行軟件設(shè)計(jì)研究;</p><p>  3)對(duì)捕獲的數(shù)據(jù)包進(jìn)行一定的解析;</p><p>  4)訪問(wèn)操作系統(tǒng)提供的網(wǎng)絡(luò)性能參數(shù)接口,得到網(wǎng)卡總流量、輸入流量和輸出流量;</p><p>  5)提供多

4、種方式顯示結(jié)果,如曲線圖、列表等;</p><p>  6)熟悉和掌握畢業(yè)論文相關(guān)規(guī)范格式。</p><p>  要求完成的主要任務(wù):</p><p>  1.查閱相關(guān)文獻(xiàn)資料15篇以上(其中英文文獻(xiàn)不少于2篇)。</p><p><b>  2.完成開(kāi)題報(bào)告。</b></p><p>  3.完

5、成對(duì)android手機(jī)網(wǎng)絡(luò)管理系統(tǒng)配置管理部分的設(shè)計(jì)與實(shí)現(xiàn)。</p><p>  4.完成畢業(yè)設(shè)計(jì)周志。</p><p>  5.閱讀并翻譯與課題相關(guān)的英文資料,不少于20000字符;</p><p>  6.完成不少于12000字的論文的撰寫(xiě)并完成答辯的相關(guān)工作。</p><p><b>  必讀參考資料:</b>&l

6、t;/p><p>  [1] 鄭麗,董淵,張瑞豐. C++語(yǔ)言程序設(shè)計(jì)(第3版). 北京:清華大學(xué)出版社,2009.5</p><p>  [2] 陳伯成,范閩,李英杰. 利用網(wǎng)絡(luò)監(jiān)聽(tīng)維護(hù)子網(wǎng)系統(tǒng)安全的一種方法[J].計(jì)算機(jī)工程與應(yīng)用.2000,(10):133-135 </p><p>  [3] 劉欣然. 支持高精度告警的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:

7、北京郵電大學(xué)[碩士論文], 2005</p><p>  [4] 許勇,吳忠堂. 網(wǎng)絡(luò)流量采集與分析系統(tǒng)中數(shù)據(jù)采集的研究與實(shí)現(xiàn)[D]. 廣州:華南理工大學(xué)[碩士論文], 2004</p><p>  [5] 孫賢淑. IP網(wǎng)絡(luò)流量測(cè)量的研究與應(yīng)用[D]. 北京:北京郵電大學(xué)[碩士論文], 2005</p><p>  [6] Hertleer, C., Rogier

8、, H., Vallozzi, L., Van Langenhove, L, “A textile antenna for off-body communication integrated into protective clothing for firefighters,” IEEE Transactions on Antennas and Propagation, pp. 919-925, 2009.</p><

9、;p>  [7] L.Z. Thamae and Z Wu, “Broadband bowtie dielectric resonator antenna”, IEEE Transaction of Antenna and Propagation, accepted 18th July 2009</p><p>  指導(dǎo)教師簽名 系主任簽名

10、 </p><p>  院長(zhǎng)簽名(章)_____________ </p><p>  武漢理工大學(xué)本科生畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告</p><p><b>  目 錄</b></p><p><b>  摘 要I</b&

11、gt;</p><p>  AbstractII</p><p><b>  1 緒論1</b></p><p>  1.1 手機(jī)移動(dòng)互聯(lián)網(wǎng)進(jìn)展1</p><p>  1.2 手機(jī)系統(tǒng)現(xiàn)狀2</p><p>  1.3 手機(jī)流量問(wèn)題3</p><p>  2 相關(guān)

12、技術(shù)簡(jiǎn)介5</p><p>  2.1 面向?qū)ο蟪绦蛟O(shè)計(jì)方法5</p><p>  2.2 開(kāi)發(fā)環(huán)境及相關(guān)技術(shù)介紹5</p><p>  2.2.1關(guān)于eclipse5</p><p>  2.2.2 Android技術(shù)6</p><p>  3 系統(tǒng)總體方案8</p><p>  

13、3.1 基本框架8</p><p>  3.1.1 Android與傳統(tǒng)的Win32應(yīng)用開(kāi)發(fā)的區(qū)別8</p><p>  3.1.2 Android應(yīng)用文件結(jié)構(gòu)9</p><p>  3.2 流量監(jiān)控功能整體需求10</p><p><b>  4 詳細(xì)設(shè)計(jì)11</b></p><p>

14、  4.1 軟件流程圖11</p><p>  4.2 UI界面設(shè)計(jì)12</p><p>  4.3相關(guān)類的介紹13</p><p>  4.3.1 Android應(yīng)用啟動(dòng)類13</p><p>  4.3.2 流量統(tǒng)計(jì)中的TrafficStats類14</p><p>  4.3.2 流量統(tǒng)計(jì)中的算法實(shí)

15、現(xiàn)16</p><p>  4.4 圖形繪制19</p><p>  4.5 功能實(shí)現(xiàn)界面21</p><p>  4.5.1 主界面21</p><p>  4.5.2 幫助界面23</p><p>  4.6 存在的問(wèn)題26</p><p>  4.6.1 系統(tǒng)的穩(wěn)定性26&l

16、t;/p><p>  4.6.2 權(quán)限26</p><p>  5 總結(jié)及展望27</p><p>  5.1 本文工作總結(jié)27</p><p><b>  5.2感想27</b></p><p><b>  參考文獻(xiàn)28</b></p><p>

17、;<b>  致 謝29</b></p><p><b>  摘 要</b></p><p>  本文主要講述的是基于Android的手機(jī)流量監(jiān)控軟件的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  隨著互聯(lián)網(wǎng)絡(luò)和電子產(chǎn)品的飛速發(fā)展,手機(jī)智能終端對(duì)網(wǎng)絡(luò)系統(tǒng)的要求越來(lái)越高,特別是當(dāng)前流行的Android系統(tǒng)智能手機(jī)由于后臺(tái)應(yīng)用程序聯(lián)網(wǎng)

18、偷流量常常會(huì)給用戶帶來(lái)不必要的損失。因此,在無(wú)線互聯(lián)網(wǎng)絡(luò)提供的服務(wù)日益多樣化和復(fù)雜化的今天,對(duì)網(wǎng)絡(luò)流量進(jìn)行智能化的控制顯得日益重要。然而Internet已經(jīng)發(fā)展成為一個(gè)復(fù)雜的海量非線性系統(tǒng),對(duì)這一復(fù)雜系統(tǒng)的動(dòng)態(tài)特性的研究還存在大量待解決的問(wèn)題。由于無(wú)線網(wǎng)絡(luò)流量的復(fù)雜性,對(duì)于網(wǎng)絡(luò)流量的控制無(wú)法象其它線性、非線性系統(tǒng)一樣方便地進(jìn)行控制,國(guó)內(nèi)外對(duì)于網(wǎng)絡(luò)流量控制技術(shù)的研究仍有許多難點(diǎn)。</p><p>  Android

19、是以Linux為核心的手機(jī)操作平臺(tái),作為一款開(kāi)放式的操作系統(tǒng),近年來(lái)隨著智能機(jī)的普及,Android系統(tǒng)越來(lái)越受到市場(chǎng)歡迎,占有率直線上升。</p><p>  本次基于Android手機(jī)流量監(jiān)測(cè)主要目的是熟悉Android開(kāi)發(fā)平臺(tái)eclipse,采用java語(yǔ)言進(jìn)行簡(jiǎn)單的應(yīng)用程序的開(kāi)發(fā)。通過(guò)對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行實(shí)時(shí)連續(xù)的采集監(jiān)測(cè)網(wǎng)絡(luò)流量,對(duì)獲得的流量數(shù)據(jù)進(jìn)行統(tǒng)計(jì)計(jì)算,從而得到網(wǎng)絡(luò)主要成分的性能指標(biāo)。用戶根據(jù)流量數(shù)據(jù)就

20、可以對(duì)網(wǎng)絡(luò)主要成分進(jìn)行性能分析管理,發(fā)現(xiàn)性能變化趨勢(shì),并分析出影響網(wǎng)絡(luò)性能的因素及問(wèn)題所在,進(jìn)而關(guān)閉不必要的網(wǎng)絡(luò)進(jìn)程,節(jié)省流量損失。</p><p>  關(guān)鍵詞:Android;手機(jī);流量監(jiān)控</p><p><b>  Abstract</b></p><p>  This article is mainly about the mobile

21、 phone based on Android traffic monitoring software design and Implementation</p><p>  Along with the Internet and the rapid development of electronic products, mobile phone intelligent terminals on the netw

22、ork system of the increasingly high demand, especially in the current popular Android system of intelligent mobile phone as the background application networking steal flow will often bring unnecessary losses to users. T

23、herefore, in the wireless Internet service provided by the network increasingly diverse and complex today, the network traffic intelligent control become increa</p><p>  Android Linux is the core of the mobi

24、le phone platform, as an open operating system, in recent years, with the popularity of the intelligent machine, Android system is more and more popular in the market, share soaring.</p><p>  The mobile phon

25、e based on Android flow monitoring the main purpose is to be familiar with Android development platform eclipse, using the Java language simple application development. Through the network data for real-time continuous c

26、ollection monitoring network flow, the flow of data for statistical calculation, thus obtains the network the main component of the performance index. The user according to the flow data to network main component analyze

27、s the performance management, found the perfo</p><p>  Key Words:Android;mobile phone;traffic monitoring</p><p><b>  1 緒論</b></p><p>  1.1 手機(jī)移動(dòng)互聯(lián)網(wǎng)進(jìn)展 </p><p>

28、;  這些年,移動(dòng)通信和互聯(lián)網(wǎng)成為當(dāng)今世界發(fā)展最快、市場(chǎng)潛力最大、前景最誘人的兩大業(yè)務(wù)。它們的增長(zhǎng)速度都是任何預(yù)測(cè)家未曾預(yù)料到的。至今,全球移動(dòng)用戶已超過(guò) 15 億,互聯(lián)網(wǎng)用戶也已逾 7 億。中國(guó)移動(dòng)通信用戶總數(shù)超過(guò) 3.6億,互聯(lián)網(wǎng)用戶總數(shù)則超過(guò) 1億。這一歷史上從來(lái)沒(méi)有過(guò)的高速增長(zhǎng)現(xiàn)象反映了隨著時(shí)代與技術(shù)的進(jìn)步,人類對(duì)移動(dòng)性和信息的需求急劇上升。越來(lái)越多的人希望在移動(dòng)的過(guò)程中高速地接入互聯(lián)網(wǎng),獲取急需的信息,完成想做的事情。所以,現(xiàn)

29、在出現(xiàn)的移動(dòng)與互聯(lián)網(wǎng)相結(jié)合的趨勢(shì)是歷史的必然。目前,移動(dòng)互聯(lián)網(wǎng)正逐漸滲透到人們生活、工作的各個(gè)領(lǐng)域,短信、鈴圖下載、移動(dòng)音樂(lè)、手機(jī)游戲、視頻應(yīng)用、手機(jī)支付、位置服務(wù)等豐富多彩的移動(dòng)互聯(lián)網(wǎng)應(yīng)用迅猛發(fā)展,正在深刻改變信息時(shí)代的社會(huì)生活,移動(dòng)互聯(lián)網(wǎng)經(jīng)過(guò)幾年的曲折前行,終于迎來(lái)了新的發(fā)展高潮。 </p><p>  IPv6 帶動(dòng)移動(dòng)互聯(lián)網(wǎng)發(fā)展。目前,在移動(dòng)電話領(lǐng)域正在掀起 IP 化熱潮。實(shí)際上,制訂下一代移動(dòng)通信系統(tǒng)“

30、IMT-2000”標(biāo)準(zhǔn)的 3GPP 已經(jīng)決定在下一代移動(dòng)技術(shù)的基本協(xié)議中采用 IPv6。因特網(wǎng)及手機(jī)相關(guān)人員認(rèn)為手機(jī)將率先正式使用 IPv6。如果移動(dòng)電話業(yè)務(wù)中配備 IPv6,那么很可能在短時(shí)間內(nèi)幾億手機(jī)用戶將成為 IPv6 的用戶。從這個(gè)意義上來(lái)說(shuō),移動(dòng)電話的 IPv6 化能否順利發(fā)展決定了 IPv6 的未來(lái)。反過(guò)來(lái),IPv6 也推動(dòng)了一些 IPv6 相關(guān)標(biāo)準(zhǔn)的發(fā)展,例如:3GPP、3G-IP、WAP。 </p><

31、;p>  后3G時(shí)代的移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)將向用戶提供個(gè)性化、內(nèi)容關(guān)聯(lián)和交互作業(yè)的應(yīng)用。其業(yè)務(wù)范圍將涵蓋信息、娛樂(lè)、旅游和個(gè)人信息管理等領(lǐng)域。隨著語(yǔ)音處理技術(shù)的成熟,語(yǔ)音門(mén)戶網(wǎng)站將使互聯(lián)網(wǎng)的易用性達(dá)到新的水平。舉例來(lái)說(shuō),聲音識(shí)別和處理技術(shù)將實(shí)現(xiàn)語(yǔ)音瀏覽、查詢航班時(shí)刻表和票務(wù)等網(wǎng)上信息。到那時(shí),移動(dòng)設(shè)備的鍵盤(pán)大小就不再是關(guān)鍵問(wèn)題,因?yàn)榇蟛糠种噶羁梢杂寐曇魧?shí)現(xiàn)人機(jī)交流。用戶界面可以是單一模式(應(yīng)答也可以轉(zhuǎn)化為語(yǔ)音)或多重模式(有些指令和應(yīng)答

32、是圖形化的)。目前的商務(wù)模式正演變成移動(dòng)性與互聯(lián)網(wǎng)合二為一的新模式。它對(duì)運(yùn)營(yíng)商和供應(yīng)商的能力都提出了新的要求。了解移動(dòng)性和移動(dòng)商務(wù)的特性將是建立未來(lái)網(wǎng)絡(luò)與業(yè)務(wù)推出的關(guān)鍵環(huán)節(jié)。3G的成功將取決于速度:針對(duì)細(xì)分的客戶群開(kāi)發(fā)應(yīng)用和終端的速度,開(kāi)發(fā)新業(yè)務(wù)的速度,降低網(wǎng)絡(luò)開(kāi)發(fā)成本,使網(wǎng)絡(luò)投入使用的速度加快。它將是把握和利用手邊擁有的服務(wù)和內(nèi)容的能力。</p><p>  由于服務(wù)質(zhì)量和反應(yīng)時(shí)間事關(guān)用戶對(duì)多媒體的體驗(yàn),運(yùn)營(yíng)商

33、此刻的商業(yè)地位極佳,既可以自己向用戶提供媒體服務(wù),又可以向內(nèi)容提供商提供媒體主機(jī)托管業(yè)務(wù)。隨著越來(lái)越多的內(nèi)容和語(yǔ)音服務(wù)逐漸數(shù)字化,內(nèi)容將更具移動(dòng)性,更加個(gè)性化。業(yè)內(nèi)各方(運(yùn)營(yíng)商、內(nèi)容提供商、應(yīng)用開(kāi)發(fā)商)只有向最終用戶提供高價(jià)值的服務(wù),才能使自己占居有利位置。同時(shí),能充分適應(yīng)不同傳輸格式(移動(dòng)終端、電視、PC)的內(nèi)容才能稱得上最佳。后3G 時(shí)代的移動(dòng)互聯(lián)網(wǎng)服務(wù)主要包括瀏覽、Java 客戶端應(yīng)用、多媒體流和下載流媒體等業(yè)務(wù)。</p&g

34、t;<p>  1.2 手機(jī)系統(tǒng)現(xiàn)狀</p><p>  手機(jī)操作系統(tǒng)是時(shí)下最火熱的話題之一,大家都在追隨不斷新出的操作系統(tǒng)。雖然它的火熱程度在持續(xù)高漲,但是手機(jī)操作系統(tǒng)的發(fā)展并不是那么長(zhǎng)久。在2002年之前,并沒(méi)有嚴(yán)格意義上的手機(jī)操作系統(tǒng),因?yàn)槟芡瓿赏ㄔ捁δ艿氖謾C(jī)都是由廠家自己做芯片,然后配上相應(yīng)的軟件就可以完成。不過(guò)此后,手機(jī)的品種越來(lái)越多,發(fā)展也越來(lái)越快,隨著人們對(duì)手機(jī)的需求也越來(lái)越大,智能手

35、機(jī)和手機(jī)操作系統(tǒng)就應(yīng)運(yùn)而生了。</p><p>  目前熱門(mén)的手機(jī)操作系統(tǒng)主要有5種:</p><p>  1)塞班(Symbian)</p><p>  昔日的行業(yè)大哥,這個(gè)日漸落寞的操作系統(tǒng),曾經(jīng)紅遍天下。但是隨著近些年蘋(píng)果和谷歌的發(fā)力,一直在走下坡路,塞班的市場(chǎng)份額已經(jīng)降到了谷底。有統(tǒng)計(jì)顯示,到去年年底,塞班系統(tǒng)的全球市場(chǎng)占有量?jī)H有22.1%。雖然基本的常用軟

36、件非常的豐富,但是塞班系統(tǒng)弊病不斷,在更激烈的競(jìng)爭(zhēng)中敗下陣來(lái)。隨著塞班的淪陷,諾基亞也淪落了。曾經(jīng),諾基亞在芬蘭幾乎是國(guó)家的象征。現(xiàn)在,為了改變頹勢(shì),又需要尋求突圍了。</p><p>  代表手機(jī):諾基亞,索尼愛(ài)立信、LG</p><p>  2)安卓(Android)</p><p>  2008年,谷歌發(fā)布了Android操作系統(tǒng),從此智能手機(jī)操作系統(tǒng)界不再安

37、靜。2009年,原來(lái)引用塞班平臺(tái)的廠商,比如LG、索尼愛(ài)立信等紛紛退出塞班平臺(tái),投入Android領(lǐng)域。不久,Android系統(tǒng)就取代了塞班成為智能手機(jī)操作系統(tǒng)的霸主。在2011年的第一季度,Android在全球的市場(chǎng)份額就已經(jīng)超過(guò)了塞班,位居世界第一。到了2011年底,Android占據(jù)了全球52.5%的份額。Android手機(jī)的軟件非常的豐富,而且基本都是免費(fèi)的,可以通過(guò)多個(gè)應(yīng)用商店下載。另外,Android的本地化也做得很好,刷機(jī)

38、非常方便。</p><p>  代表手機(jī):三星,HTC,小米,索尼愛(ài)立信、魅族、摩托羅拉,中興,華為等。</p><p><b>  3)iOS </b></p><p>  這么多操作系統(tǒng)中,可以說(shuō)蘋(píng)果的使用體驗(yàn)是最好的。Android雖然是霸主地位,但是系統(tǒng)卻沒(méi)有iOS完美。iOS不是開(kāi)放的系統(tǒng),它的很多應(yīng)用多需要付費(fèi)才能使用。</p

39、><p>  4)Windows Phone</p><p>  Windows Phone發(fā)布于2010年10月,作為微軟移動(dòng)的籌碼,正式與Android和iOS競(jìng)爭(zhēng)。2011年2月,諾基亞與微軟合作,試圖挽回失去的大局。現(xiàn)在已經(jīng)更新至Windows Phone 7.6了,大家十分期待的Windows Phone 8也將在今年第四季度發(fā)布。盡管如此,Windows Phone可以說(shuō)是不夠成熟

40、的,在中國(guó),行貨手機(jī)非常少,而且本地化做得也不是特別好。如果有一天,Windows Phone大面積在中國(guó)開(kāi)賣,相信市場(chǎng)一定會(huì)有的,畢竟現(xiàn)在蘋(píng)果和安卓已經(jīng)滿大街都是了,再加上諾基亞的“砸核桃”功能,一定會(huì)引來(lái)一陣高潮。</p><p>  代表手機(jī):三星,HTC, LG,中興等</p><p>  5)黑莓(Black Berry)</p><p>  黑莓在歐美市

41、場(chǎng)是第一商務(wù)智能手機(jī),引入中國(guó)后,主要面向政企集團(tuán)客戶,蘇寧是獨(dú)家的銷售渠道,不過(guò),國(guó)內(nèi)市場(chǎng)有很多渠道可以買到水貨。從市場(chǎng)來(lái)看,黑莓在中國(guó)并沒(méi)有那么受歡迎,軟件資源也不是那么豐富。</p><p>  總結(jié):移動(dòng)互聯(lián)網(wǎng)在一輪又一輪的掀起高潮,這中間智能手機(jī)操作系統(tǒng)起到了至關(guān)重要的作用。從目前市場(chǎng)來(lái)看,主要的競(jìng)爭(zhēng)還是在于微軟、蘋(píng)果和谷歌之間,三大操作系統(tǒng)可謂是三足鼎立。過(guò)不了多久,Windows Phone 8就要

42、出來(lái)了,相信到時(shí)候市場(chǎng)又會(huì)有很大的不同,坐觀其變。</p><p>  手機(jī)應(yīng)用開(kāi)發(fā)中的Java技術(shù)有如下特點(diǎn):</p><p>  在信息社會(huì)中手機(jī)及其他無(wú)線設(shè)備越來(lái)越多的走進(jìn)普通百姓的工作和生活隨著信息網(wǎng)絡(luò)化的不斷進(jìn)展手機(jī)及其他無(wú)線設(shè)備上網(wǎng)絡(luò)勢(shì)在必行。但是傳統(tǒng)手機(jī)存在以下弊端:</p><p>  1)傳統(tǒng)手機(jī)出廠時(shí)均由硬件廠商固化程序,程序不能增加、刪除有了錯(cuò)

43、誤也不能更新、修改若要增加新功能必須另?yè)Q一部手機(jī)。 </p><p>  2)傳統(tǒng)手機(jī)訪問(wèn)互聯(lián)網(wǎng)是通過(guò)WAPWireless Application Protocal所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問(wèn)非常耗時(shí)、費(fèi)用亦很高。 而Java技術(shù)在無(wú)線應(yīng)用方面的優(yōu)勢(shì)非常明顯: </p><p>  1) 應(yīng)用程序可按需下載而不是購(gòu)買由硬件商提供的套件可升級(jí)空間大。 </p><

44、;p>  2) Java技術(shù)提供了一個(gè)類庫(kù)它使的應(yīng)用開(kāi)發(fā)商可以創(chuàng)建更為直覺(jué)、豐富的用戶界面GUI </p><p>  3) Java技術(shù)使網(wǎng)絡(luò)帶寬的應(yīng)用更為有效因?yàn)閼?yīng)用程序可以下載到器件上并在本地運(yùn)行僅僅是在連接到服務(wù)器時(shí)才會(huì)占用網(wǎng)絡(luò)帶寬。 </p><p>  基于以上分析Java手機(jī)將是未來(lái)手機(jī)的發(fā)展方向是業(yè)界的熱點(diǎn)。本次設(shè)計(jì)正是基于當(dāng)前熱門(mén)的android手機(jī)應(yīng)用開(kāi)發(fā),也就是

45、采用Java語(yǔ)言編程開(kāi)發(fā)。</p><p>  1.3 手機(jī)流量問(wèn)題</p><p>  移動(dòng)互聯(lián)網(wǎng)的發(fā)展和3G手機(jī)迅速普及,使用手機(jī)上網(wǎng)的用戶越來(lái)越多。</p><p>  2012年初,愛(ài)立信發(fā)布了行業(yè)趨勢(shì)報(bào)告,報(bào)告指出,隨著移動(dòng)數(shù)據(jù)流量的爆炸性增長(zhǎng),2011 年全球智能手機(jī)的總流量增長(zhǎng)了兩倍,預(yù)計(jì)到2016年,移動(dòng)用戶將達(dá)到80億以上,移動(dòng)數(shù)據(jù)流量將比2010

46、年增長(zhǎng)10倍,而來(lái)自智能手機(jī)等移動(dòng)終端的數(shù)據(jù)流量將于來(lái)自PC和平臺(tái)電腦的數(shù)據(jù)流量保持持平。</p><p>  從新增的用戶區(qū)域來(lái)看,該季度新增約1.35億戶,中國(guó)和印度占大約40%,分別增加3千萬(wàn)和2千萬(wàn)。其次是中東歐、中東和非洲、占30%,西歐增加了2%,北美增加了3%,拉丁美洲占10%。從數(shù)據(jù)流量來(lái)看,目前,各個(gè)國(guó)家流量模式差別迥異,即使移動(dòng)PC仍在大多數(shù)移動(dòng)網(wǎng)絡(luò)中占主導(dǎo)地位,但有數(shù)據(jù)顯示2011年總移動(dòng)數(shù)

47、據(jù)流量將翻一番,此后預(yù)計(jì)移動(dòng)數(shù)據(jù)流量將以60%的復(fù)合年增長(zhǎng)率持續(xù)增長(zhǎng)。中國(guó)市場(chǎng)android產(chǎn)品的市場(chǎng)份額已經(jīng)占據(jù)了整體智能機(jī)市場(chǎng)的68.4%。</p><p>  然而,伴隨著智能機(jī)的普及,手機(jī)應(yīng)用流量問(wèn)題日漸凸顯,越來(lái)越多的手機(jī)應(yīng)用在使用過(guò)程中經(jīng)常發(fā)生“偷”流量現(xiàn)象,因此,關(guān)于如何控制手機(jī)流量的使用,使其透明,直觀的被用戶控制成為廣大消費(fèi)者的訴求。</p><p>  本次設(shè)計(jì)是基于a

48、ndroid手機(jī)的流量監(jiān)控軟件,旨在實(shí)現(xiàn)對(duì)手機(jī)流量的實(shí)時(shí)監(jiān)控和顯示,便于用戶了解自己的流量使用情況,同時(shí)進(jìn)一步達(dá)到合理控制流量使用。</p><p><b>  2 相關(guān)技術(shù)簡(jiǎn)介</b></p><p>  2.1 面向?qū)ο蟪绦蛟O(shè)計(jì)方法</p><p>  Java面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路是通過(guò)構(gòu)造和組織對(duì)象來(lái)求解問(wèn)題的。對(duì)象很好理解,任何一

49、種物體都可以被認(rèn)為是對(duì)象,例如,汽車就是一種對(duì)象。對(duì)象具有兩個(gè)最基本的屬性:具有一定的物質(zhì)基礎(chǔ)和一定的功能,這兩種基本屬性在Java語(yǔ)言中表現(xiàn)為擁有一定的存儲(chǔ)單元并具備一定的功能。</p><p>  Java面向?qū)ο蟮某绦蛟O(shè)計(jì)的過(guò)程非常簡(jiǎn)單。這里介紹一種自頂向下的程序設(shè)計(jì)方法,首先構(gòu)造一個(gè)類來(lái)處理需要解決的問(wèn)題,然后根據(jù)已經(jīng)擁有的類(例如以前求解其他問(wèn)題時(shí)實(shí)現(xiàn)的類),分析和構(gòu)造新的類,設(shè)法將問(wèn)題分解下去,而最開(kāi)

50、始構(gòu)造的類通過(guò)組織這些新構(gòu)造的類,已有的類及由他們生成的實(shí)例來(lái)求解指定的問(wèn)題。這個(gè)過(guò)程可以繼續(xù)遞歸下去,用在新構(gòu)造的類上,直到最后解決指定問(wèn)題,例如Java的應(yīng)用程序和小應(yīng)用程序都必須有一個(gè)類作為入口求解問(wèn)題。</p><p>  在計(jì)算機(jī)語(yǔ)言中,面向?qū)ο蟮念愐话憔哂腥齻€(gè)基本特性:封裝性,繼承性和多態(tài)性,這三種特性進(jìn)一步簡(jiǎn)化了Java求解模型,提高了程序的復(fù)用性,節(jié)省了程序的代碼量,從而提高軟件效率。</p

51、><p>  2.2 開(kāi)發(fā)環(huán)境及相關(guān)技術(shù)介紹</p><p>  2.2.1關(guān)于eclipse</p><p>  Eclipse是替代IBM Visual Age for Java的下一代IDE開(kāi)發(fā)環(huán)境,但它未來(lái)的目標(biāo)不僅僅是成為專門(mén)開(kāi)發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過(guò)開(kāi)發(fā)插件,它能擴(kuò)展到任何語(yǔ)言的開(kāi)發(fā),甚至能成為圖片繪制的工具。目前,Ec

52、lipse可以提供C語(yǔ)言開(kāi)發(fā)的功能插件。更可貴的是,Eclipse是一個(gè)開(kāi)放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開(kāi)發(fā)自己的功能插件。也就是說(shuō)未來(lái)只要有人需要,就會(huì)有建立在Eclipse之上的COBOL,Perl,Python等語(yǔ)言的開(kāi)發(fā)插件出現(xiàn)。同時(shí)可以通過(guò)開(kāi)發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如再現(xiàn)有Java開(kāi)發(fā)環(huán)境中加入Tomcat服務(wù)插件。可以無(wú)限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是E

53、clipse的潛力所在。</p><p>  不過(guò),雖然Eclipse是以Java寫(xiě)成,應(yīng)該可以在任何的平臺(tái)執(zhí)行。但嚴(yán)格來(lái)說(shuō)Eclipse不是跨平臺(tái)的,因?yàn)樗褂米鳂I(yè)平臺(tái)的原始圖形來(lái)建置。因此要等SWT(Standard Widget Toolkit)移植到該平臺(tái),Eclipse才能在那個(gè)平臺(tái)執(zhí)行。但就現(xiàn)實(shí)而言不是問(wèn)題,因?yàn)镾WT已經(jīng)被移植到數(shù)個(gè)常見(jiàn)平臺(tái)上了,包括Windows,Linux,Solaris,QNX

54、,AIX, HP-UX與Mac OSX</p><p>  Eclipse平臺(tái)的目的,是提供多種軟件開(kāi)發(fā)工具的整合機(jī)制,這些工具會(huì)成為Eclipse外掛程序,平臺(tái)必須用外掛程序加以擴(kuò)充才有用處。Eclipse設(shè)計(jì)的美妙之處,在于所有東西都是外掛,除了底層的核心以外。這種外掛設(shè)計(jì)讓Eclipse具備強(qiáng)大擴(kuò)充性,但更重要的是,此平臺(tái)提供一個(gè)定義明確的機(jī)制,讓各種外掛程序共通合作(透過(guò)延伸點(diǎn)extension poi

55、nts)與貢獻(xiàn)(contributions),因此新功能可以輕易且無(wú)縫地加入平臺(tái)。</p><p>  2.2.2 Android技術(shù)</p><p>  Android(安卓)系統(tǒng)是手機(jī)或一些平板電腦等終端的操作系統(tǒng),可以說(shuō)是現(xiàn)在最流行的系統(tǒng)之一。是目前最流行的手機(jī)智能平臺(tái),目前廣泛的應(yīng)用在智能手機(jī)上,在智能手機(jī)領(lǐng)域掀起了“Android風(fēng)暴”。Android系統(tǒng)在不久的將來(lái)即將應(yīng)用在平

56、板電腦,微波爐,電冰箱等等電器上,發(fā)展前景很好。</p><p>  圖 2-1 Android是基于Linux開(kāi)放性內(nèi)核的手機(jī)操作系統(tǒng),Android系統(tǒng)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。它采用軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層以Linux內(nèi)核工作為基礎(chǔ),由C語(yǔ)言開(kāi)發(fā),只提供基本功能;中間層包括函數(shù)庫(kù)Library和虛擬機(jī)Virtua

57、l Machine,由C++開(kāi)發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開(kāi)發(fā),以Java作為編寫(xiě)程</p><p><b>  序的一部分。</b></p><p>  Android系統(tǒng)優(yōu)勢(shì)主要體現(xiàn)在以下方面: ?。?)開(kāi)放性   在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開(kāi)放性,開(kāi)發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加

58、入到Android聯(lián)盟中來(lái)。顯著的開(kāi)放性可以使其擁有更多的開(kāi)發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個(gè)嶄新的平臺(tái)也將很快走向成熟?! ¢_(kāi)放性對(duì)于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費(fèi)者和廠商,而對(duì)于消費(fèi)者來(lái)講,最大的受益正是豐富的軟件資源。開(kāi)放的平臺(tái)也會(huì)帶來(lái)更大競(jìng)爭(zhēng),如此一來(lái),消費(fèi)者將可以用更低的價(jià)位購(gòu)得心儀的手機(jī)。  ?。?)掙脫束縛   在過(guò)去很長(zhǎng)的一段時(shí)間,特別是在歐美地區(qū),手機(jī)應(yīng)用往往受

59、到運(yùn)營(yíng)商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運(yùn)營(yíng)商的控制。自從iPhone上市,用戶可以更加方便地連接網(wǎng)絡(luò),運(yùn)營(yíng)商的制約減少。隨著EDGE、HSDPA這些2G至3G移動(dòng)網(wǎng)絡(luò)的逐步過(guò)渡和提升,手機(jī)隨意接入網(wǎng)絡(luò)已不是運(yùn)營(yíng)商口中的笑談。   (3)豐富的硬件   這一點(diǎn)還是與Android平臺(tái)的開(kāi)放性相關(guān),由于Android的開(kāi)放性,眾多的廠商會(huì)推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響

60、到數(shù)據(jù)同步、</p><p><b>  3 系統(tǒng)總體方案</b></p><p><b>  3.1 基本框架</b></p><p>  首先必須明白android本質(zhì)是應(yīng)用框架,而不是普通的OS平臺(tái)。如果從空間角度去想象OS與應(yīng)用框架之間的關(guān)系,的確,OS(如linux和windows)像木板床,應(yīng)用框架像床墊,鋪在

61、不板床上。而應(yīng)用程序則像睡在床墊上的人。雖然表面上看似正確,但卻忽略了一個(gè)重要事實(shí),那就是用戶是通過(guò)OS,應(yīng)用框架來(lái)與應(yīng)用程序取得互動(dòng)的,這種互動(dòng)必須是實(shí)時(shí)交互的,如下圖所示。</p><p><b>  圖3-1</b></p><p>  3.1.1 Android與傳統(tǒng)的Win32應(yīng)用開(kāi)發(fā)的區(qū)別</p><p><b>  圖3

62、-2</b></p><p><b>  圖3-3</b></p><p>  Android是事務(wù)先于實(shí)體而存在的,傳統(tǒng)的Win32是一個(gè)實(shí)體邏輯通過(guò)消息組成事務(wù),就存在實(shí)體可以做什么通過(guò)win平臺(tái)消息告訴對(duì)方做什么。而Android的平臺(tái)是告訴平臺(tái)我想做什么,平臺(tái)才去找對(duì)應(yīng)的Activity,而并不一定能找到對(duì)應(yīng)的邏輯體。</p><

63、;p>  3.1.2 Android應(yīng)用文件結(jié)構(gòu)</p><p><b>  圖3-4</b></p><p>  Android應(yīng)用文件系統(tǒng)主要包括3部分:</p><p>  1)可執(zhí)行代碼部分,可執(zhí)行相對(duì)于虛擬機(jī)來(lái)說(shuō)的,Android應(yīng)用是構(gòu)建在java語(yǔ)言之上的,可以通過(guò)jni接入C和C++部分</p><p&

64、gt;  2)資源文件,包括數(shù)據(jù),圖片,Activity結(jié)構(gòu)等</p><p>  3)Androidmanifest.xml是整個(gè)應(yīng)用項(xiàng)目的說(shuō)明書(shū),告訴平臺(tái)都有什么,在哪里等。</p><p>  3.2 流量監(jiān)控功能整體需求</p><p>  系統(tǒng)具有三個(gè)主要功能部分:數(shù)據(jù)捕獲與顯示模塊,流量信息統(tǒng)計(jì)模塊,流量繪制模塊。如下圖所示</p><

65、;p><b>  圖3-5</b></p><p>  本次設(shè)計(jì)的重點(diǎn)主要體現(xiàn)在數(shù)據(jù)采集模塊和界面顯示兩部分。首先,數(shù)據(jù)采集因?yàn)榭梢灾苯诱{(diào)用類庫(kù)函數(shù),所以代碼并不復(fù)雜;難點(diǎn)在于界面的多樣化顯示,界面是用戶感知該應(yīng)用好壞的最直接方式,如果界面顯示不友好,或者布局雜亂,就會(huì)嚴(yán)重影響產(chǎn)品的推廣。</p><p><b>  4 詳細(xì)設(shè)計(jì)</b>&

66、lt;/p><p><b>  4.1 軟件流程圖</b></p><p>  分析下startActivity,即啟動(dòng)一個(gè)Activity的流程分析</p><p><b>  圖4-1</b></p><p><b>  啟動(dòng)的源代碼如下:</b></p><

67、;p>  public class liuliangjiankong extends Activity {</p><p>  /** Called when the activity is first created. */</p><p>  public void onCreate(Bundle savedInstanceState) {</p><p>

68、;  super.onCreate(savedInstanceState);</p><p>  setContentView(R.layout.start);</p><p>  Intent intent = new Intent();</p><p>  intent.setClass(liuliangjiankong.this, MonitoringServ

69、ice.class);</p><p>  this.startService(intent);</p><p>  new Handler().postDelayed(new Runnable() {</p><p>  public void run() {</p><p>  // TODO Auto-generated method

70、stub</p><p>  Intent intent = new Intent(liuliangjiankong.this,</p><p>  mainPage.class);</p><p>  liuliangjiankong.this.startActivity(intent);</p><p>  liuliangjiankon

71、g.this.finish();</p><p>  4.2 UI界面設(shè)計(jì)</p><p><b>  圖4-2</b></p><p>  Android總共分為五種布局,分別是FrameLayout(框架布局)、LinearLayout(線性布局)、RelativeLayout(相對(duì)布局)、AbsoluteLayout(絕對(duì)布局)、Tab

72、leLayout(表格布局),我們經(jīng)常用到的有三種:FrameLayout、LinearLayout、RelativeLayout。本次設(shè)計(jì)中主要用到的是線性布局,即LinearLayout。</p><p>  在線性布局中,有四個(gè)及其重要的參數(shù),直接決定元素的布局和位置,分別是:</p><p>  Android:orientation(線性布局以列和行來(lái)顯示內(nèi)部子元素);</

73、p><p>  Android:layout_gravity(是本元素相對(duì)于父元素的重力方向);</p><p>  Android:gravity(是本元素所有子元素的重力方向);</p><p>  Android:layout_weight(線性布局內(nèi)子元素對(duì)為占用的空間分配權(quán)重值);</p><p>  所謂線性布局就是指在該標(biāo)簽下的所有

74、子元素會(huì)根據(jù) android:orientation的值來(lái)決定是按行還是按列逐個(gè)顯示:</p><p>  Vertical 列</p><p>  Horizontal 行</p><p>  xmlns:android="http://schemas.android.com/apk/res/android "</p><

75、;p>  xmlns:android</p><p>  屬性指定命名空間,頂級(jí)元素必須指定命名空間。而在該命名空間中的控件的屬性如layout_width,使用時(shí)必須加上 “android:”做前綴;</p><p>  layout_width指寬度,layout_height 指高度。</p><p>  其可選值有“fill_parent”、“wrap

76、_content”、具體數(shù)字(單位為px)。其中“fill_parent”代表填滿其父元素。對(duì)于頂級(jí)元素來(lái)說(shuō),其父元素就是整個(gè)手機(jī)屏幕?!皐rap_content”代表該元素的大小僅包裹其自身內(nèi)容,而數(shù)字則代表其占相應(yīng)的px;</p><p>  下面為本次設(shè)計(jì)的初始?xì)g迎界面,顯示一幅圖片bg02作為背景的程序代碼。</p><p>  android:layout_width="

77、;fill_parent"</p><p>  android:layout_height="fill_parent"</p><p>  android:orientation="horizontal" </p><p>  android:gravity="center"</p>

78、<p>  android:layoutAnimation="@anim/melshow" ></p><p>  <TextView android:layout_width="fill_parent" android:layout_height="fill_parent"</p><p>  andro

79、id:background="@drawable/bg02" /></p><p>  上述代碼即可實(shí)現(xiàn)調(diào)用drawable包中的bg02圖片,并將其填滿整個(gè)屏幕,作為應(yīng)用程序的歡迎界面。此外,還可以加入android:text來(lái)顯示文字。</p><p><b>  4.3相關(guān)類的介紹</b></p><p>  4

80、.3.1 Android應(yīng)用啟動(dòng)類</p><p>  Android系統(tǒng)為應(yīng)用管理功能提供了大量的API。根據(jù)功能的不同,這些API分為兩大類:PackageManager相關(guān)和ActivitManager相關(guān)。</p><p>  PackageManager相關(guān)類API是對(duì)所有基于加載信息的數(shù)據(jù)結(jié)構(gòu)的封裝,包括以下功能:</p><p>  1)安裝,卸載應(yīng)

81、用   2)查詢permission相關(guān)信息   3)查詢Application相關(guān)信息(application,activity,receiver,service,provider及相應(yīng)屬性等)   4)查詢已安裝應(yīng)用   5)增加,刪除permission   6)清除用戶數(shù)據(jù)、緩存,代碼段等</p

82、><p>  ActivityManager類API是對(duì)運(yùn)行時(shí)管理功能和運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu)的封裝,包括以下功能:</p><p>  1)激活/去激活activity   2)注冊(cè)/取消注冊(cè)動(dòng)態(tài)接受intent   3)發(fā)送/取消發(fā)送intent   4)activity生命周期管理(暫停,恢復(fù),停止,銷毀等)

83、0;  5)activity task管理(前臺(tái)->后臺(tái),后臺(tái)->前臺(tái),最近task查詢,運(yùn)行時(shí)task查詢)   6)激活/去激活service   7)激活/去激活provider等</p><p>  啟動(dòng)應(yīng)用程序涉及到的相關(guān)類主要是ActivityManagerService,下圖是涉及到的相關(guān)類的關(guān)系:</p>

84、<p><b>  圖4-3</b></p><p>  我們是在Activity中使用getPackageManager方法獲取一個(gè)ApplicationPackageManager的對(duì)象,ApplicationPackageManager實(shí)際上是包裝了一個(gè)IPackageManager.Stub.Proxy的對(duì)象由IPackageManager.Stub.Proxy代理執(zhí)行Pa

85、ckageManager相關(guān)操作,IPackageManager.Stub.Proxy實(shí)際代理的是PackageManagerService。</p><p>  4.3.2 流量統(tǒng)計(jì)中的TrafficStats類</p><p>  對(duì)于Android流量統(tǒng)計(jì)來(lái)說(shuō)在2.2版中新加入了TrafficStats類可以輕松獲取,其實(shí)本身TrafficStats類也是讀取Linux提供的文件對(duì)象

86、系統(tǒng)類型的文本進(jìn)行解析。android.net.TrafficStats類中,提供了多種靜態(tài)方法,可以直接調(diào)用獲取,返回類型均為 long型,如果返回等于-1代表 UNSUPPORTED 當(dāng)前設(shè)備不支持統(tǒng)計(jì)。 </p><p>  Java代碼如下:  </p><p>  static long  getMobileRxBytes()  //獲取通

87、過(guò)Mobile連接收到的字節(jié)總數(shù),不包含WiFi  </p><p>  static long  getMobileRxPackets()  //獲取Mobile連接收到的數(shù)據(jù)包總數(shù)  </p><p>  static long  getMobileTxBytes()  //Mobile發(fā)送的總字節(jié)數(shù)  </p

88、><p>  static long  getMobileTxPackets()  //Mobile發(fā)送的總數(shù)據(jù)包數(shù)  </p><p>  static long  getTotalRxBytes()//獲取總的接受字節(jié)數(shù),包含Mobile和WiFi等  </p><p>  static long  get

89、TotalRxPackets()//總的接受數(shù)據(jù)包數(shù),包含Mobile和WiFi等  </p><p>  static long  getTotalTxBytes()  //總的發(fā)送字節(jié)數(shù),包含Mobile和WiFi等  </p><p>  static long  getTotalTxPackets()//發(fā)送總數(shù)據(jù)包數(shù),包含Mobi

90、le和WiFi等   </p><p>  static long  getUidRxBytes(int uid)  //獲取某個(gè)網(wǎng)絡(luò)UID的接受字節(jié)數(shù)  </p><p>  static long  getUidTxBytes(int uid) //獲取某個(gè)網(wǎng)絡(luò)UID的發(fā)送字節(jié)數(shù)   </p>

91、<p>  總接受流量TrafficStats.getTotalRxBytes(), </p><p>  總發(fā)送流量TrafficStats.getTotalTxBytes()); </p><p>  不包含WIFI的手機(jī)GPRS接收量TrafficStats.getMobileRxBytes()); </p><p>

92、  不包含Wifi的手機(jī)GPRS發(fā)送量TrafficStats.getMobileTxBytes()); </p><p>  某一個(gè)進(jìn)程的總接收量TrafficStats.getUidRxBytes(Uid)); </p><p>  某一個(gè)進(jìn)程的總發(fā)送量TrafficStats.getUidTxBytes(Uid)); </p><p&

93、gt;  下圖為本次應(yīng)用的流量監(jiān)控界面:</p><p><b>  圖4-4</b></p><p><b>  相關(guān)代碼如下:</b></p><p>  mobileRx = TrafficStats.getMobileRxBytes();</p><p>  mobileTx = Traff

94、icStats.getMobileTxBytes();</p><p>  // 獲取全部網(wǎng)絡(luò)接收、發(fā)送數(shù)據(jù)總量</p><p>  totalRx = TrafficStats.getTotalRxBytes();</p><p>  totalTx = TrafficStats.getTotalTxBytes();</p><p>  /

95、/ 計(jì)算WiFi網(wǎng)絡(luò)接收、發(fā)送數(shù)據(jù)總量</p><p>  wifiRx = totalRx - mobileRx;</p><p>  wifiTx = totalTx - mobileTx;</p><p>  if (mobileRx == -1 && mobileTx == -1) {</p><p>  in.put

96、Extra("mobileRx", "No");</p><p>  in.putExtra("mobileTx", "No");</p><p><b>  } else {</b></p><p>  mrx = (mobileRx - old_mobileRx

97、); // 得到瞬時(shí)GPRS流量</p><p>  old_mobileRx = mobileRx;</p><p>  mtx = (mobileTx - old_mobileTx); // 得到瞬時(shí)GPRS流量</p><p>  old_mobileTx = mobileTx;</p><p>  mrx = (long) ((flo

98、at) (Math.round(mrx * 100.0)) / 100);</p><p>  mtx = (long) ((float) (Math.round(mtx * 100.0)) / 100);</p><p>  in.putExtra("mobileRx", mrx / 1024 + "KB");</p><p&g

99、t;  in.putExtra("mobileTx", mtx / 1024 + "KB");</p><p><b>  }</b></p><p>  if (wifiRx == -1 && wifiTx == -1) {</p><p>  in.putExtra("wif

100、iRx", "No");</p><p>  in.putExtra("wifiTx", "No");</p><p><b>  } else {</b></p><p>  wrx = (wifiRx - old_wifiRx); // 得到瞬時(shí)wifi流量</p&

101、gt;<p>  old_wifiRx = wifiRx;</p><p>  wtx = (wifiTx - old_wifiTx); // 得到瞬時(shí)wifi流量</p><p>  old_wifiTx = wifiTx;</p><p>  wrx = (long) ((float) (Math.round(wrx * 100.0)) / 100

102、);// 保留兩位小數(shù)</p><p>  wtx = (long) ((float) (Math.round(wtx * 100.0)) / 100);</p><p>  in.putExtra("wifiRx", wrx / 1024 + "KB");</p><p>  in.putExtra("wifiTx

103、", wtx + "KB");</p><p><b>  }</b></p><p>  經(jīng)過(guò)真機(jī)測(cè)試 確實(shí)是“從本次開(kāi)機(jī)到本次關(guān)機(jī)的統(tǒng)計(jì)量” 而且:</p><p>  1.getMobileRxBytes();getMobileRxPackets() ;getMobileTxBytes() ;getMobil

104、eTxPackets() ;這四個(gè)方法讀取的都是系統(tǒng)proc/net/dev文件 網(wǎng)絡(luò)一斷掉文件就消失了,重新打開(kāi)網(wǎng)絡(luò)后重新開(kāi)始統(tǒng)計(jì) 。 2.getUidRxBytes(int uid) ; getUidTxBytes(int uid) 兩個(gè)方法(包含mobie流量和本地通信流量)網(wǎng)絡(luò)的斷開(kāi)和重新連接并不受影響,關(guān)機(jī)后數(shù)據(jù)清空。</p><p>  4.3.2 流量統(tǒng)計(jì)中的算法實(shí)現(xiàn)</p>

105、<p>  Android是基于linux的一個(gè)操作系統(tǒng)。</p><p>  在Android中,用Root Explorer去查看系統(tǒng)文件的話,與流量監(jiān)控相關(guān)的會(huì)有這么幾個(gè)文件/proc/net/dev這個(gè)文件中具體記錄是整個(gè)系統(tǒng)的一個(gè)流量情況。 /proc/uid_stat/%d" 和"/proc/uid_stat/%d" %d為進(jìn)程的UI

106、D。這個(gè)文件里只有兩項(xiàng)數(shù)據(jù)tcp_rcv和tcp_snd。</p><p>  看命名應(yīng)該就能看出代表什么,一個(gè)代表總的接受字節(jié)數(shù),一個(gè)代表總的發(fā)送字節(jié)數(shù)。</p><p>  這兩個(gè)文件為非標(biāo)準(zhǔn)linux內(nèi)核文件,由android內(nèi)核層/kernel/net/Socket.c 的sock_sendmsg函數(shù)負(fù)責(zé)寫(xiě)入, 用戶層套接字通信在內(nèi)核層最終會(huì)調(diào)用此函數(shù) (包括本地套接字和

107、網(wǎng)絡(luò)套接字)。</p><p>  Android流量監(jiān)控主要是有兩種方法:</p><p><b>  方法一:抓包</b></p><p>  這個(gè)方法獲取的流量更加精準(zhǔn),需要用到第三方抓包工具,設(shè)計(jì)起來(lái)難度較大。也達(dá)不到本次設(shè)計(jì)的目的。</p><p>  方法二:讀取linux本地文件</p>&l

108、t;p>  android手機(jī)流量信息系統(tǒng)是LINUX內(nèi)核 記錄在/proc/self/net/dev文件里面</p><p>  例如,下面是dev文件的格式,Microsoft Windows XP [版本 5.1.2600](C) 版權(quán)所有 1985-2001 Microsoft Corp.</p><p>  D:/Program Files/Java/sdk/andro

109、id-sdk-windows/tools>adb shell# cd proc cd proc# cd net cd net# cat devcat devInter-|   Receive                 

110、60;                  |  Transmit face |bytes    packets errs drop fifo frame compressed multicast|bytes&

111、#160;   packets errs drop fifo colls carrier compressed   lo:       0     0    0    0    0

112、     0     0     0        </p><p>  0  0    0     0  &

113、#160; 0     0     0     0</p><p>  eth0:7069733  86239   0   0   0  

114、60; 0    0    0 12512463   74179    0    0    0    0     0

115、0;    0</p><p>  tunl0:       0     0    0    0    0    0  

116、   0      0     0  0    0    0    0     0   

117、0;  0      0  gre0:       0      0    0    0    0   &

118、#160; 0       0      0      0   </p><p>  0    0    0    0

119、0;   0     0     0#</p><p>  我們要獲取流量可以通過(guò)這個(gè)文件進(jìn)行讀取我讀取的源代碼如下</p><p>  public String getinfo(String path)</p><p><b

120、>  {</b></p><p>  File file;</p><p>  String str="";</p><p>  FileInputStream in;</p><p><b>  try{</b></p><p>  //打開(kāi)文件file的I

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論