版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p> 基于Android的手機</p><p> 流量控制軟件設(shè)計與實現(xiàn)</p><p> 學(xué)院(系): 信息工程學(xué)院 </p><p> 專業(yè)班級: </p>&
2、lt;p> 學(xué)生姓名: </p><p> 指導(dǎo)教師: </p><p> 畢業(yè)設(shè)計(論文)任務(wù)書</p><p> 設(shè)計(論文)題目: 基于Android的手機流量控制軟件設(shè)計與實現(xiàn) </p><p> 設(shè)計(論文)主要內(nèi)容:<
3、;/p><p> 1)認(rèn)真學(xué)習(xí)android操作系統(tǒng)構(gòu)架和開發(fā)環(huán)境;</p><p> 2)熟練運用C++、java進行軟件設(shè)計研究;</p><p> 3)對捕獲的數(shù)據(jù)包進行一定的解析;</p><p> 4)訪問操作系統(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)文獻資料15篇以上(其中英文文獻不少于2篇)。</p><p><b> 2.完成開題報告。</b></p><p> 3.完
5、成對android手機網(wǎng)絡(luò)管理系統(tǒng)配置管理部分的設(shè)計與實現(xiàn)。</p><p> 4.完成畢業(yè)設(shè)計周志。</p><p> 5.閱讀并翻譯與課題相關(guān)的英文資料,不少于20000字符;</p><p> 6.完成不少于12000字的論文的撰寫并完成答辯的相關(guān)工作。</p><p><b> 必讀參考資料:</b>&l
6、t;/p><p> [1] 鄭麗,董淵,張瑞豐. C++語言程序設(shè)計(第3版). 北京:清華大學(xué)出版社,2009.5</p><p> [2] 陳伯成,范閩,李英杰. 利用網(wǎng)絡(luò)監(jiān)聽維護子網(wǎng)系統(tǒng)安全的一種方法[J].計算機工程與應(yīng)用.2000,(10):133-135 </p><p> [3] 劉欣然. 支持高精度告警的網(wǎng)絡(luò)入侵檢測系統(tǒng)的設(shè)計與實現(xiàn)[D]. 北京:
7、北京郵電大學(xué)[碩士論文], 2005</p><p> [4] 許勇,吳忠堂. 網(wǎng)絡(luò)流量采集與分析系統(tǒng)中數(shù)據(jù)采集的研究與實現(xiàn)[D]. 廣州:華南理工大學(xué)[碩士論文], 2004</p><p> [5] 孫賢淑. IP網(wǎng)絡(luò)流量測量的研究與應(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> 院長簽名(章)_____________ </p><p> 武漢理工大學(xué)本科生畢業(yè)設(shè)計(論文)開題報告</p><p><b> 目 錄</b></p><p><b> 摘 要I</b&
11、gt;</p><p> AbstractII</p><p><b> 1 緒論1</b></p><p> 1.1 手機移動互聯(lián)網(wǎng)進展1</p><p> 1.2 手機系統(tǒng)現(xiàn)狀2</p><p> 1.3 手機流量問題3</p><p> 2 相關(guān)
12、技術(shù)簡介5</p><p> 2.1 面向?qū)ο蟪绦蛟O(shè)計方法5</p><p> 2.2 開發(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)用開發(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 詳細設(shè)計11</b></p><p>
14、 4.1 軟件流程圖11</p><p> 4.2 UI界面設(shè)計12</p><p> 4.3相關(guān)類的介紹13</p><p> 4.3.1 Android應(yīng)用啟動類13</p><p> 4.3.2 流量統(tǒng)計中的TrafficStats類14</p><p> 4.3.2 流量統(tǒng)計中的算法實
15、現(xiàn)16</p><p> 4.4 圖形繪制19</p><p> 4.5 功能實現(xiàn)界面21</p><p> 4.5.1 主界面21</p><p> 4.5.2 幫助界面23</p><p> 4.6 存在的問題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> 參考文獻28</b></p><p>
17、;<b> 致 謝29</b></p><p><b> 摘 要</b></p><p> 本文主要講述的是基于Android的手機流量監(jiān)控軟件的設(shè)計與實現(xiàn)</p><p> 隨著互聯(lián)網(wǎng)絡(luò)和電子產(chǎn)品的飛速發(fā)展,手機智能終端對網(wǎng)絡(luò)系統(tǒng)的要求越來越高,特別是當(dāng)前流行的Android系統(tǒng)智能手機由于后臺應(yīng)用程序聯(lián)網(wǎng)
18、偷流量常常會給用戶帶來不必要的損失。因此,在無線互聯(lián)網(wǎng)絡(luò)提供的服務(wù)日益多樣化和復(fù)雜化的今天,對網(wǎng)絡(luò)流量進行智能化的控制顯得日益重要。然而Internet已經(jīng)發(fā)展成為一個復(fù)雜的海量非線性系統(tǒng),對這一復(fù)雜系統(tǒng)的動態(tài)特性的研究還存在大量待解決的問題。由于無線網(wǎng)絡(luò)流量的復(fù)雜性,對于網(wǎng)絡(luò)流量的控制無法象其它線性、非線性系統(tǒng)一樣方便地進行控制,國內(nèi)外對于網(wǎng)絡(luò)流量控制技術(shù)的研究仍有許多難點。</p><p> Android
19、是以Linux為核心的手機操作平臺,作為一款開放式的操作系統(tǒng),近年來隨著智能機的普及,Android系統(tǒng)越來越受到市場歡迎,占有率直線上升。</p><p> 本次基于Android手機流量監(jiān)測主要目的是熟悉Android開發(fā)平臺eclipse,采用java語言進行簡單的應(yīng)用程序的開發(fā)。通過對網(wǎng)絡(luò)數(shù)據(jù)進行實時連續(xù)的采集監(jiān)測網(wǎng)絡(luò)流量,對獲得的流量數(shù)據(jù)進行統(tǒng)計計算,從而得到網(wǎng)絡(luò)主要成分的性能指標(biāo)。用戶根據(jù)流量數(shù)據(jù)就
20、可以對網(wǎng)絡(luò)主要成分進行性能分析管理,發(fā)現(xiàn)性能變化趨勢,并分析出影響網(wǎng)絡(luò)性能的因素及問題所在,進而關(guān)閉不必要的網(wǎng)絡(luò)進程,節(jié)省流量損失。</p><p> 關(guān)鍵詞:Android;手機;流量監(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 手機移動互聯(lián)網(wǎng)進展 </p><p>
28、; 這些年,移動通信和互聯(lián)網(wǎng)成為當(dāng)今世界發(fā)展最快、市場潛力最大、前景最誘人的兩大業(yè)務(wù)。它們的增長速度都是任何預(yù)測家未曾預(yù)料到的。至今,全球移動用戶已超過 15 億,互聯(lián)網(wǎng)用戶也已逾 7 億。中國移動通信用戶總數(shù)超過 3.6億,互聯(lián)網(wǎng)用戶總數(shù)則超過 1億。這一歷史上從來沒有過的高速增長現(xiàn)象反映了隨著時代與技術(shù)的進步,人類對移動性和信息的需求急劇上升。越來越多的人希望在移動的過程中高速地接入互聯(lián)網(wǎng),獲取急需的信息,完成想做的事情。所以,現(xiàn)
29、在出現(xiàn)的移動與互聯(lián)網(wǎng)相結(jié)合的趨勢是歷史的必然。目前,移動互聯(lián)網(wǎng)正逐漸滲透到人們生活、工作的各個領(lǐng)域,短信、鈴圖下載、移動音樂、手機游戲、視頻應(yīng)用、手機支付、位置服務(wù)等豐富多彩的移動互聯(lián)網(wǎng)應(yīng)用迅猛發(fā)展,正在深刻改變信息時代的社會生活,移動互聯(lián)網(wǎng)經(jīng)過幾年的曲折前行,終于迎來了新的發(fā)展高潮。 </p><p> IPv6 帶動移動互聯(lián)網(wǎng)發(fā)展。目前,在移動電話領(lǐng)域正在掀起 IP 化熱潮。實際上,制訂下一代移動通信系統(tǒng)“
30、IMT-2000”標(biāo)準(zhǔn)的 3GPP 已經(jīng)決定在下一代移動技術(shù)的基本協(xié)議中采用 IPv6。因特網(wǎng)及手機相關(guān)人員認(rèn)為手機將率先正式使用 IPv6。如果移動電話業(yè)務(wù)中配備 IPv6,那么很可能在短時間內(nèi)幾億手機用戶將成為 IPv6 的用戶。從這個意義上來說,移動電話的 IPv6 化能否順利發(fā)展決定了 IPv6 的未來。反過來,IPv6 也推動了一些 IPv6 相關(guān)標(biāo)準(zhǔn)的發(fā)展,例如:3GPP、3G-IP、WAP。 </p><
31、;p> 后3G時代的移動互聯(lián)網(wǎng)業(yè)務(wù)將向用戶提供個性化、內(nèi)容關(guān)聯(lián)和交互作業(yè)的應(yīng)用。其業(yè)務(wù)范圍將涵蓋信息、娛樂、旅游和個人信息管理等領(lǐng)域。隨著語音處理技術(shù)的成熟,語音門戶網(wǎng)站將使互聯(lián)網(wǎng)的易用性達到新的水平。舉例來說,聲音識別和處理技術(shù)將實現(xiàn)語音瀏覽、查詢航班時刻表和票務(wù)等網(wǎng)上信息。到那時,移動設(shè)備的鍵盤大小就不再是關(guān)鍵問題,因為大部分指令可以用聲音實現(xiàn)人機交流。用戶界面可以是單一模式(應(yīng)答也可以轉(zhuǎn)化為語音)或多重模式(有些指令和應(yīng)答
32、是圖形化的)。目前的商務(wù)模式正演變成移動性與互聯(lián)網(wǎng)合二為一的新模式。它對運營商和供應(yīng)商的能力都提出了新的要求。了解移動性和移動商務(wù)的特性將是建立未來網(wǎng)絡(luò)與業(yè)務(wù)推出的關(guān)鍵環(huán)節(jié)。3G的成功將取決于速度:針對細分的客戶群開發(fā)應(yīng)用和終端的速度,開發(fā)新業(yè)務(wù)的速度,降低網(wǎng)絡(luò)開發(fā)成本,使網(wǎng)絡(luò)投入使用的速度加快。它將是把握和利用手邊擁有的服務(wù)和內(nèi)容的能力。</p><p> 由于服務(wù)質(zhì)量和反應(yīng)時間事關(guān)用戶對多媒體的體驗,運營商
33、此刻的商業(yè)地位極佳,既可以自己向用戶提供媒體服務(wù),又可以向內(nèi)容提供商提供媒體主機托管業(yè)務(wù)。隨著越來越多的內(nèi)容和語音服務(wù)逐漸數(shù)字化,內(nèi)容將更具移動性,更加個性化。業(yè)內(nèi)各方(運營商、內(nèi)容提供商、應(yīng)用開發(fā)商)只有向最終用戶提供高價值的服務(wù),才能使自己占居有利位置。同時,能充分適應(yīng)不同傳輸格式(移動終端、電視、PC)的內(nèi)容才能稱得上最佳。后3G 時代的移動互聯(lián)網(wǎng)服務(wù)主要包括瀏覽、Java 客戶端應(yīng)用、多媒體流和下載流媒體等業(yè)務(wù)。</p&g
34、t;<p> 1.2 手機系統(tǒng)現(xiàn)狀</p><p> 手機操作系統(tǒng)是時下最火熱的話題之一,大家都在追隨不斷新出的操作系統(tǒng)。雖然它的火熱程度在持續(xù)高漲,但是手機操作系統(tǒng)的發(fā)展并不是那么長久。在2002年之前,并沒有嚴(yán)格意義上的手機操作系統(tǒng),因為能完成通話功能的手機都是由廠家自己做芯片,然后配上相應(yīng)的軟件就可以完成。不過此后,手機的品種越來越多,發(fā)展也越來越快,隨著人們對手機的需求也越來越大,智能手
35、機和手機操作系統(tǒng)就應(yīng)運而生了。</p><p> 目前熱門的手機操作系統(tǒng)主要有5種:</p><p> 1)塞班(Symbian)</p><p> 昔日的行業(yè)大哥,這個日漸落寞的操作系統(tǒng),曾經(jīng)紅遍天下。但是隨著近些年蘋果和谷歌的發(fā)力,一直在走下坡路,塞班的市場份額已經(jīng)降到了谷底。有統(tǒng)計顯示,到去年年底,塞班系統(tǒng)的全球市場占有量僅有22.1%。雖然基本的常用軟
36、件非常的豐富,但是塞班系統(tǒng)弊病不斷,在更激烈的競爭中敗下陣來。隨著塞班的淪陷,諾基亞也淪落了。曾經(jīng),諾基亞在芬蘭幾乎是國家的象征。現(xiàn)在,為了改變頹勢,又需要尋求突圍了。</p><p> 代表手機:諾基亞,索尼愛立信、LG</p><p> 2)安卓(Android)</p><p> 2008年,谷歌發(fā)布了Android操作系統(tǒng),從此智能手機操作系統(tǒng)界不再安
37、靜。2009年,原來引用塞班平臺的廠商,比如LG、索尼愛立信等紛紛退出塞班平臺,投入Android領(lǐng)域。不久,Android系統(tǒng)就取代了塞班成為智能手機操作系統(tǒng)的霸主。在2011年的第一季度,Android在全球的市場份額就已經(jīng)超過了塞班,位居世界第一。到了2011年底,Android占據(jù)了全球52.5%的份額。Android手機的軟件非常的豐富,而且基本都是免費的,可以通過多個應(yīng)用商店下載。另外,Android的本地化也做得很好,刷機
38、非常方便。</p><p> 代表手機:三星,HTC,小米,索尼愛立信、魅族、摩托羅拉,中興,華為等。</p><p><b> 3)iOS </b></p><p> 這么多操作系統(tǒng)中,可以說蘋果的使用體驗是最好的。Android雖然是霸主地位,但是系統(tǒng)卻沒有iOS完美。iOS不是開放的系統(tǒng),它的很多應(yīng)用多需要付費才能使用。</p
39、><p> 4)Windows Phone</p><p> Windows Phone發(fā)布于2010年10月,作為微軟移動的籌碼,正式與Android和iOS競爭。2011年2月,諾基亞與微軟合作,試圖挽回失去的大局?,F(xiàn)在已經(jīng)更新至Windows Phone 7.6了,大家十分期待的Windows Phone 8也將在今年第四季度發(fā)布。盡管如此,Windows Phone可以說是不夠成熟
40、的,在中國,行貨手機非常少,而且本地化做得也不是特別好。如果有一天,Windows Phone大面積在中國開賣,相信市場一定會有的,畢竟現(xiàn)在蘋果和安卓已經(jīng)滿大街都是了,再加上諾基亞的“砸核桃”功能,一定會引來一陣高潮。</p><p> 代表手機:三星,HTC, LG,中興等</p><p> 5)黑莓(Black Berry)</p><p> 黑莓在歐美市
41、場是第一商務(wù)智能手機,引入中國后,主要面向政企集團客戶,蘇寧是獨家的銷售渠道,不過,國內(nèi)市場有很多渠道可以買到水貨。從市場來看,黑莓在中國并沒有那么受歡迎,軟件資源也不是那么豐富。</p><p> 總結(jié):移動互聯(lián)網(wǎng)在一輪又一輪的掀起高潮,這中間智能手機操作系統(tǒng)起到了至關(guān)重要的作用。從目前市場來看,主要的競爭還是在于微軟、蘋果和谷歌之間,三大操作系統(tǒng)可謂是三足鼎立。過不了多久,Windows Phone 8就要
42、出來了,相信到時候市場又會有很大的不同,坐觀其變。</p><p> 手機應(yīng)用開發(fā)中的Java技術(shù)有如下特點:</p><p> 在信息社會中手機及其他無線設(shè)備越來越多的走進普通百姓的工作和生活隨著信息網(wǎng)絡(luò)化的不斷進展手機及其他無線設(shè)備上網(wǎng)絡(luò)勢在必行。但是傳統(tǒng)手機存在以下弊端:</p><p> 1)傳統(tǒng)手機出廠時均由硬件廠商固化程序,程序不能增加、刪除有了錯
43、誤也不能更新、修改若要增加新功能必須另換一部手機。 </p><p> 2)傳統(tǒng)手機訪問互聯(lián)網(wǎng)是通過WAPWireless Application Protocal所有網(wǎng)絡(luò)資源必須接通網(wǎng)絡(luò)才能在線訪問非常耗時、費用亦很高。 而Java技術(shù)在無線應(yīng)用方面的優(yōu)勢非常明顯: </p><p> 1) 應(yīng)用程序可按需下載而不是購買由硬件商提供的套件可升級空間大。 </p><
44、;p> 2) Java技術(shù)提供了一個類庫它使的應(yīng)用開發(fā)商可以創(chuàng)建更為直覺、豐富的用戶界面GUI </p><p> 3) Java技術(shù)使網(wǎng)絡(luò)帶寬的應(yīng)用更為有效因為應(yīng)用程序可以下載到器件上并在本地運行僅僅是在連接到服務(wù)器時才會占用網(wǎng)絡(luò)帶寬。 </p><p> 基于以上分析Java手機將是未來手機的發(fā)展方向是業(yè)界的熱點。本次設(shè)計正是基于當(dāng)前熱門的android手機應(yīng)用開發(fā),也就是
45、采用Java語言編程開發(fā)。</p><p> 1.3 手機流量問題</p><p> 移動互聯(lián)網(wǎng)的發(fā)展和3G手機迅速普及,使用手機上網(wǎng)的用戶越來越多。</p><p> 2012年初,愛立信發(fā)布了行業(yè)趨勢報告,報告指出,隨著移動數(shù)據(jù)流量的爆炸性增長,2011 年全球智能手機的總流量增長了兩倍,預(yù)計到2016年,移動用戶將達到80億以上,移動數(shù)據(jù)流量將比2010
46、年增長10倍,而來自智能手機等移動終端的數(shù)據(jù)流量將于來自PC和平臺電腦的數(shù)據(jù)流量保持持平。</p><p> 從新增的用戶區(qū)域來看,該季度新增約1.35億戶,中國和印度占大約40%,分別增加3千萬和2千萬。其次是中東歐、中東和非洲、占30%,西歐增加了2%,北美增加了3%,拉丁美洲占10%。從數(shù)據(jù)流量來看,目前,各個國家流量模式差別迥異,即使移動PC仍在大多數(shù)移動網(wǎng)絡(luò)中占主導(dǎo)地位,但有數(shù)據(jù)顯示2011年總移動數(shù)
47、據(jù)流量將翻一番,此后預(yù)計移動數(shù)據(jù)流量將以60%的復(fù)合年增長率持續(xù)增長。中國市場android產(chǎn)品的市場份額已經(jīng)占據(jù)了整體智能機市場的68.4%。</p><p> 然而,伴隨著智能機的普及,手機應(yīng)用流量問題日漸凸顯,越來越多的手機應(yīng)用在使用過程中經(jīng)常發(fā)生“偷”流量現(xiàn)象,因此,關(guān)于如何控制手機流量的使用,使其透明,直觀的被用戶控制成為廣大消費者的訴求。</p><p> 本次設(shè)計是基于a
48、ndroid手機的流量監(jiān)控軟件,旨在實現(xiàn)對手機流量的實時監(jiān)控和顯示,便于用戶了解自己的流量使用情況,同時進一步達到合理控制流量使用。</p><p><b> 2 相關(guān)技術(shù)簡介</b></p><p> 2.1 面向?qū)ο蟪绦蛟O(shè)計方法</p><p> Java面向?qū)ο蟪绦蛟O(shè)計的基本思路是通過構(gòu)造和組織對象來求解問題的。對象很好理解,任何一
49、種物體都可以被認(rèn)為是對象,例如,汽車就是一種對象。對象具有兩個最基本的屬性:具有一定的物質(zhì)基礎(chǔ)和一定的功能,這兩種基本屬性在Java語言中表現(xiàn)為擁有一定的存儲單元并具備一定的功能。</p><p> Java面向?qū)ο蟮某绦蛟O(shè)計的過程非常簡單。這里介紹一種自頂向下的程序設(shè)計方法,首先構(gòu)造一個類來處理需要解決的問題,然后根據(jù)已經(jīng)擁有的類(例如以前求解其他問題時實現(xiàn)的類),分析和構(gòu)造新的類,設(shè)法將問題分解下去,而最開
50、始構(gòu)造的類通過組織這些新構(gòu)造的類,已有的類及由他們生成的實例來求解指定的問題。這個過程可以繼續(xù)遞歸下去,用在新構(gòu)造的類上,直到最后解決指定問題,例如Java的應(yīng)用程序和小應(yīng)用程序都必須有一個類作為入口求解問題。</p><p> 在計算機語言中,面向?qū)ο蟮念愐话憔哂腥齻€基本特性:封裝性,繼承性和多態(tài)性,這三種特性進一步簡化了Java求解模型,提高了程序的復(fù)用性,節(jié)省了程序的代碼量,從而提高軟件效率。</p
51、><p> 2.2 開發(fā)環(huán)境及相關(guān)技術(shù)介紹</p><p> 2.2.1關(guān)于eclipse</p><p> Eclipse是替代IBM Visual Age for Java的下一代IDE開發(fā)環(huán)境,但它未來的目標(biāo)不僅僅是成為專門開發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,它能擴展到任何語言的開發(fā),甚至能成為圖片繪制的工具。目前,Ec
52、lipse可以提供C語言開發(fā)的功能插件。更可貴的是,Eclipse是一個開放源代碼的項目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。也就是說未來只要有人需要,就會有建立在Eclipse之上的COBOL,Perl,Python等語言的開發(fā)插件出現(xiàn)。同時可以通過開發(fā)新的插件擴展現(xiàn)有插件的功能,比如再現(xiàn)有Java開發(fā)環(huán)境中加入Tomcat服務(wù)插件??梢詿o限擴展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是E
53、clipse的潛力所在。</p><p> 不過,雖然Eclipse是以Java寫成,應(yīng)該可以在任何的平臺執(zhí)行。但嚴(yán)格來說Eclipse不是跨平臺的,因為它使用作業(yè)平臺的原始圖形來建置。因此要等SWT(Standard Widget Toolkit)移植到該平臺,Eclipse才能在那個平臺執(zhí)行。但就現(xiàn)實而言不是問題,因為SWT已經(jīng)被移植到數(shù)個常見平臺上了,包括Windows,Linux,Solaris,QNX
54、,AIX, HP-UX與Mac OSX</p><p> Eclipse平臺的目的,是提供多種軟件開發(fā)工具的整合機制,這些工具會成為Eclipse外掛程序,平臺必須用外掛程序加以擴充才有用處。Eclipse設(shè)計的美妙之處,在于所有東西都是外掛,除了底層的核心以外。這種外掛設(shè)計讓Eclipse具備強大擴充性,但更重要的是,此平臺提供一個定義明確的機制,讓各種外掛程序共通合作(透過延伸點extension poi
55、nts)與貢獻(contributions),因此新功能可以輕易且無縫地加入平臺。</p><p> 2.2.2 Android技術(shù)</p><p> Android(安卓)系統(tǒng)是手機或一些平板電腦等終端的操作系統(tǒng),可以說是現(xiàn)在最流行的系統(tǒng)之一。是目前最流行的手機智能平臺,目前廣泛的應(yīng)用在智能手機上,在智能手機領(lǐng)域掀起了“Android風(fēng)暴”。Android系統(tǒng)在不久的將來即將應(yīng)用在平
56、板電腦,微波爐,電冰箱等等電器上,發(fā)展前景很好。</p><p> 圖 2-1 Android是基于Linux開放性內(nèi)核的手機操作系統(tǒng),Android系統(tǒng)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。它采用軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和虛擬機Virtua
57、l Machine,由C++開發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程</p><p><b> 序的一部分。</b></p><p> Android系統(tǒng)優(yōu)勢主要體現(xiàn)在以下方面: ?。?)開放性 在優(yōu)勢方面,Android平臺首先就是其開放性,開發(fā)的平臺允許任何移動終端廠商加
58、入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應(yīng)用的日益豐富,一個嶄新的平臺也將很快走向成熟?! ¢_放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。 ?。?)掙脫束縛 在過去很長的一段時間,特別是在歐美地區(qū),手機應(yīng)用往往受
59、到運營商制約,使用什么功能接入什么網(wǎng)絡(luò),幾乎都受到運營商的控制。自從iPhone上市,用戶可以更加方便地連接網(wǎng)絡(luò),運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡(luò)的逐步過渡和提升,手機隨意接入網(wǎng)絡(luò)已不是運營商口中的笑談。 ?。?)豐富的硬件 這一點還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響
60、到數(shù)據(jù)同步、</p><p><b> 3 系統(tǒng)總體方案</b></p><p><b> 3.1 基本框架</b></p><p> 首先必須明白android本質(zhì)是應(yīng)用框架,而不是普通的OS平臺。如果從空間角度去想象OS與應(yīng)用框架之間的關(guān)系,的確,OS(如linux和windows)像木板床,應(yīng)用框架像床墊,鋪在
61、不板床上。而應(yīng)用程序則像睡在床墊上的人。雖然表面上看似正確,但卻忽略了一個重要事實,那就是用戶是通過OS,應(yīng)用框架來與應(yīng)用程序取得互動的,這種互動必須是實時交互的,如下圖所示。</p><p><b> 圖3-1</b></p><p> 3.1.1 Android與傳統(tǒng)的Win32應(yīng)用開發(fā)的區(qū)別</p><p><b> 圖3
62、-2</b></p><p><b> 圖3-3</b></p><p> Android是事務(wù)先于實體而存在的,傳統(tǒng)的Win32是一個實體邏輯通過消息組成事務(wù),就存在實體可以做什么通過win平臺消息告訴對方做什么。而Android的平臺是告訴平臺我想做什么,平臺才去找對應(yīng)的Activity,而并不一定能找到對應(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í)行相對于虛擬機來說的,Android應(yīng)用是構(gòu)建在java語言之上的,可以通過jni接入C和C++部分</p><p&
64、gt; 2)資源文件,包括數(shù)據(jù),圖片,Activity結(jié)構(gòu)等</p><p> 3)Androidmanifest.xml是整個應(yīng)用項目的說明書,告訴平臺都有什么,在哪里等。</p><p> 3.2 流量監(jiān)控功能整體需求</p><p> 系統(tǒng)具有三個主要功能部分:數(shù)據(jù)捕獲與顯示模塊,流量信息統(tǒng)計模塊,流量繪制模塊。如下圖所示</p><
65、;p><b> 圖3-5</b></p><p> 本次設(shè)計的重點主要體現(xiàn)在數(shù)據(jù)采集模塊和界面顯示兩部分。首先,數(shù)據(jù)采集因為可以直接調(diào)用類庫函數(shù),所以代碼并不復(fù)雜;難點在于界面的多樣化顯示,界面是用戶感知該應(yīng)用好壞的最直接方式,如果界面顯示不友好,或者布局雜亂,就會嚴(yán)重影響產(chǎn)品的推廣。</p><p><b> 4 詳細設(shè)計</b>&
66、lt;/p><p><b> 4.1 軟件流程圖</b></p><p> 分析下startActivity,即啟動一個Activity的流程分析</p><p><b> 圖4-1</b></p><p><b> 啟動的源代碼如下:</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è)計</p><p><b> 圖4-2</b></p><p> Android總共分為五種布局,分別是FrameLayout(框架布局)、LinearLayout(線性布局)、RelativeLayout(相對布局)、AbsoluteLayout(絕對布局)、Tab
72、leLayout(表格布局),我們經(jīng)常用到的有三種:FrameLayout、LinearLayout、RelativeLayout。本次設(shè)計中主要用到的是線性布局,即LinearLayout。</p><p> 在線性布局中,有四個及其重要的參數(shù),直接決定元素的布局和位置,分別是:</p><p> Android:orientation(線性布局以列和行來顯示內(nèi)部子元素);</
73、p><p> Android:layout_gravity(是本元素相對于父元素的重力方向);</p><p> Android:gravity(是本元素所有子元素的重力方向);</p><p> Android:layout_weight(線性布局內(nèi)子元素對為占用的空間分配權(quán)重值);</p><p> 所謂線性布局就是指在該標(biāo)簽下的所有
74、子元素會根據(jù) android:orientation的值來決定是按行還是按列逐個顯示:</p><p> Vertical 列</p><p> Horizontal 行</p><p> xmlns:android="http://schemas.android.com/apk/res/android "</p><
75、;p> xmlns:android</p><p> 屬性指定命名空間,頂級元素必須指定命名空間。而在該命名空間中的控件的屬性如layout_width,使用時必須加上 “android:”做前綴;</p><p> layout_width指寬度,layout_height 指高度。</p><p> 其可選值有“fill_parent”、“wrap
76、_content”、具體數(shù)字(單位為px)。其中“fill_parent”代表填滿其父元素。對于頂級元素來說,其父元素就是整個手機屏幕?!皐rap_content”代表該元素的大小僅包裹其自身內(nèi)容,而數(shù)字則代表其占相應(yīng)的px;</p><p> 下面為本次設(shè)計的初始歡迎界面,顯示一幅圖片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> 上述代碼即可實現(xiàn)調(diào)用drawable包中的bg02圖片,并將其填滿整個屏幕,作為應(yīng)用程序的歡迎界面。此外,還可以加入android:text來顯示文字。</p><p><b> 4.3相關(guān)類的介紹</b></p><p> 4
80、.3.1 Android應(yīng)用啟動類</p><p> Android系統(tǒng)為應(yīng)用管理功能提供了大量的API。根據(jù)功能的不同,這些API分為兩大類:PackageManager相關(guān)和ActivitManager相關(guān)。</p><p> PackageManager相關(guān)類API是對所有基于加載信息的數(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是對運行時管理功能和運行時數(shù)據(jù)結(jié)構(gòu)的封裝,包括以下功能:</p><p> 1)激活/去激活activity 2)注冊/取消注冊動態(tài)接受intent 3)發(fā)送/取消發(fā)送intent 4)activity生命周期管理(暫停,恢復(fù),停止,銷毀等)
83、0; 5)activity task管理(前臺->后臺,后臺->前臺,最近task查詢,運行時task查詢) 6)激活/去激活service 7)激活/去激活provider等</p><p> 啟動應(yīng)用程序涉及到的相關(guān)類主要是ActivityManagerService,下圖是涉及到的相關(guān)類的關(guān)系:</p>
84、<p><b> 圖4-3</b></p><p> 我們是在Activity中使用getPackageManager方法獲取一個ApplicationPackageManager的對象,ApplicationPackageManager實際上是包裝了一個IPackageManager.Stub.Proxy的對象由IPackageManager.Stub.Proxy代理執(zhí)行Pa
85、ckageManager相關(guān)操作,IPackageManager.Stub.Proxy實際代理的是PackageManagerService。</p><p> 4.3.2 流量統(tǒng)計中的TrafficStats類</p><p> 對于Android流量統(tǒng)計來說在2.2版中新加入了TrafficStats類可以輕松獲取,其實本身TrafficStats類也是讀取Linux提供的文件對象
86、系統(tǒng)類型的文本進行解析。android.net.TrafficStats類中,提供了多種靜態(tài)方法,可以直接調(diào)用獲取,返回類型均為 long型,如果返回等于-1代表 UNSUPPORTED 當(dāng)前設(shè)備不支持統(tǒng)計。 </p><p> Java代碼如下: </p><p> static long getMobileRxBytes() //獲取通
87、過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) //獲取某個網(wǎng)絡(luò)UID的接受字節(jié)數(shù) </p><p> static long getUidTxBytes(int uid) //獲取某個網(wǎng)絡(luò)UID的發(fā)送字節(jié)數(shù) </p>
91、<p> 總接受流量TrafficStats.getTotalRxBytes(), </p><p> 總發(fā)送流量TrafficStats.getTotalTxBytes()); </p><p> 不包含WIFI的手機GPRS接收量TrafficStats.getMobileRxBytes()); </p><p>
92、 不包含Wifi的手機GPRS發(fā)送量TrafficStats.getMobileTxBytes()); </p><p> 某一個進程的總接收量TrafficStats.getUidRxBytes(Uid)); </p><p> 某一個進程的總發(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、/ 計算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、); // 得到瞬時GPRS流量</p><p> old_mobileRx = mobileRx;</p><p> mtx = (mobileTx - old_mobileTx); // 得到瞬時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); // 得到瞬時wifi流量</p&
101、gt;<p> old_wifiRx = wifiRx;</p><p> wtx = (wifiTx - old_wifiTx); // 得到瞬時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ān)機的統(tǒng)計量” 而且:</p><p> 1.getMobileRxBytes();getMobileRxPackets() ;getMobileTxBytes() ;getMobil
104、eTxPackets() ;這四個方法讀取的都是系統(tǒng)proc/net/dev文件 網(wǎng)絡(luò)一斷掉文件就消失了,重新打開網(wǎng)絡(luò)后重新開始統(tǒng)計 。 2.getUidRxBytes(int uid) ; getUidTxBytes(int uid) 兩個方法(包含mobie流量和本地通信流量)網(wǎng)絡(luò)的斷開和重新連接并不受影響,關(guān)機后數(shù)據(jù)清空。</p><p> 4.3.2 流量統(tǒng)計中的算法實現(xiàn)</p>
105、<p> Android是基于linux的一個操作系統(tǒng)。</p><p> 在Android中,用Root Explorer去查看系統(tǒng)文件的話,與流量監(jiān)控相關(guān)的會有這么幾個文件/proc/net/dev這個文件中具體記錄是整個系統(tǒng)的一個流量情況。 /proc/uid_stat/%d" 和"/proc/uid_stat/%d" %d為進程的UI
106、D。這個文件里只有兩項數(shù)據(jù)tcp_rcv和tcp_snd。</p><p> 看命名應(yīng)該就能看出代表什么,一個代表總的接受字節(jié)數(shù),一個代表總的發(fā)送字節(jié)數(shù)。</p><p> 這兩個文件為非標(biāo)準(zhǔn)linux內(nèi)核文件,由android內(nèi)核層/kernel/net/Socket.c 的sock_sendmsg函數(shù)負(fù)責(zé)寫入, 用戶層套接字通信在內(nèi)核層最終會調(diào)用此函數(shù) (包括本地套接字和
107、網(wǎng)絡(luò)套接字)。</p><p> Android流量監(jiān)控主要是有兩種方法:</p><p><b> 方法一:抓包</b></p><p> 這個方法獲取的流量更加精準(zhǔn),需要用到第三方抓包工具,設(shè)計起來難度較大。也達不到本次設(shè)計的目的。</p><p> 方法二:讀取linux本地文件</p>&l
108、t;p> android手機流量信息系統(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> 我們要獲取流量可以通過這個文件進行讀取我讀取的源代碼如下</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> //打開文件file的I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- android手機控制軟件畢業(yè)設(shè)計
- 基于plc的流量控制畢業(yè)設(shè)計
- 畢業(yè)設(shè)計------單片機流量控制系統(tǒng)
- 畢業(yè)設(shè)計(論文)報告基于plc的流量控制
- 畢業(yè)設(shè)計論文流量控制系統(tǒng)的設(shè)計與仿真
- 過程控制流量控制課程設(shè)計--流量控制系統(tǒng)設(shè)計
- 工程流量控制畢業(yè)論文
- 畢業(yè)設(shè)計-閥流量的智能控制
- 畢業(yè)設(shè)計---gsm手機控制系統(tǒng)
- 工程質(zhì)量控制畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----閘門流量智能控制系統(tǒng)
- android手機圖像瀏覽軟件畢業(yè)設(shè)計(含外文翻譯)
- android手機圖像瀏覽軟件畢業(yè)設(shè)計(含外文翻譯)
- android手機圖像瀏覽軟件畢業(yè)設(shè)計(含外文翻譯)
- 集箱焊接質(zhì)量控制畢業(yè)設(shè)計
- 流量控制閥
- 液體流量串級控制系統(tǒng)設(shè)計畢業(yè)設(shè)計
- 手機殼畢業(yè)設(shè)計
- 流量控制回路.dwg
- 流量控制回路.dwg
評論
0/150
提交評論