陳進(jìn)川 廣東省粵東技師學(xué)院
Android平臺(tái)手機(jī)流量監(jiān)測(cè)技術(shù)研究
陳進(jìn)川 廣東省粵東技師學(xué)院
4G技術(shù)的發(fā)展及Android手機(jī)的普及,智能手機(jī)給消費(fèi)者帶來(lái)樂(lè)趣的同時(shí),也使得消費(fèi)者手機(jī)上網(wǎng)流量激增,再加上居高不下的流量費(fèi)用,上網(wǎng)產(chǎn)生的流量更加成為一個(gè)倍受爭(zhēng)議的話題。本文研究了一種動(dòng)態(tài)跟蹤流量使用的技術(shù)。實(shí)時(shí)刷新各軟件的流量數(shù)據(jù)并告知用戶,進(jìn)而達(dá)到流量使用監(jiān)測(cè)的目的,最終以手機(jī)應(yīng)用軟件的形式將其實(shí)現(xiàn)出來(lái)。
Android 手機(jī)流量 監(jiān)測(cè)
隨著智能手機(jī)的飛速發(fā)展,手機(jī)的功能越來(lái)越強(qiáng)大。如今的智能手機(jī)操作系統(tǒng)主要有兩大陣營(yíng):Android(即安卓)和蘋(píng)果的IOS,其中,安卓的市場(chǎng)份額更是超過(guò)了80%,然而,手機(jī)病毒也成為了繼電腦病毒后的另一個(gè)令人煩惱的話題。目前手機(jī)病毒的破壞性主要有五大方面:遠(yuǎn)程控制、惡意扣費(fèi)、惡意傳播、隱私竊取和資費(fèi)消耗。而令用戶大感頭疼的惡意扣費(fèi)軟件。可以在使用者不知情的情況下連接網(wǎng)絡(luò),偷偷發(fā)送數(shù)據(jù)或者下載惡意軟件,從而使用戶在不知不覺(jué)中產(chǎn)生大量的數(shù)據(jù)流量,產(chǎn)生高額的流量費(fèi)用。因此,在安卓系統(tǒng)上對(duì)每一個(gè)軟件的流量使用情況進(jìn)行分析就顯得尤為重要。
目前市面上雖然已經(jīng)有了各種流量監(jiān)測(cè)軟件,但這些軟件往往夾帶著各種廣告,有些甚至含有病毒,并且也不能隨心所欲地進(jìn)行提醒設(shè)置,為了解決上述問(wèn)題,也為了研究安卓手機(jī)的流量運(yùn)作機(jī)理,為教學(xué)授課提供技術(shù)基礎(chǔ),我開(kāi)發(fā)了以下的小工具對(duì)安卓手機(jī)的數(shù)據(jù)流量進(jìn)行監(jiān)測(cè),工具主要包括了流量獲取和流量刷新兩大模塊。
2.1 流量獲取模塊的實(shí)現(xiàn)方法
本模塊的實(shí)現(xiàn)需要解決兩個(gè)問(wèn)題:一是如何獲知手機(jī)中擁有上網(wǎng)權(quán)限的應(yīng)用程序列表,二是如何逐一地獲知這些程序的流量情況。
首先應(yīng)先獲取擁有網(wǎng)絡(luò)訪問(wèn)權(quán)限的程序列表,以便下一步根據(jù)列表來(lái)查詢其流量情況。該步驟實(shí)現(xiàn)起來(lái)不難,可由以下代碼來(lái)判斷:
接下來(lái)可以根據(jù)這些UID對(duì)其流量情況進(jìn)行查詢。安卓系統(tǒng)對(duì)軟件的流量數(shù)據(jù)都是存放在目錄/proc/uid_stat/uid下的,而要獲取其流量情況,可以使用系統(tǒng)提供的一個(gè)類(lèi):TrafficStats,通過(guò)直接調(diào)用可以獲取相應(yīng)的流量數(shù)據(jù),可通過(guò)該類(lèi)里的方法getUidRxBytes直接獲得。
2.2 數(shù)據(jù)刷新模塊的實(shí)現(xiàn)方法
在獲知了應(yīng)用軟件的流量數(shù)據(jù)后,需要進(jìn)一步獲知其流量速度,一個(gè)簡(jiǎn)單的方法就是將當(dāng)前獲得的應(yīng)用軟件流量數(shù)據(jù)減去前一時(shí)刻獲得的應(yīng)用軟件流量數(shù)據(jù),得到前后兩個(gè)時(shí)刻的流量差值,再將這個(gè)差值除以兩個(gè)時(shí)刻的時(shí)間間隔,即可獲得其流量速度。
實(shí)現(xiàn)起來(lái)需要解決2個(gè)問(wèn)題:
①如何對(duì)各個(gè)應(yīng)用軟件的流量數(shù)據(jù)進(jìn)行存取;
②如何每隔一定時(shí)間自動(dòng)刷新流量數(shù)據(jù)。
對(duì)各軟件的數(shù)據(jù)流量進(jìn)行存取,可以采用HashMap(哈希圖)的形式。
上述代碼中,getAPPwlll是一個(gè)自定義類(lèi),將流量獲取模塊封裝進(jìn)去,用于執(zhí)行流量數(shù)據(jù)獲取操作,方便后續(xù)調(diào)用。新創(chuàng)建的對(duì)象run在使用的時(shí)候應(yīng)重寫(xiě)run方法,并在其中添加需要定時(shí)執(zhí)行的內(nèi)容。
獲知流量速度,需要用當(dāng)前時(shí)刻的流量數(shù)據(jù)減去前一時(shí)刻的流量數(shù)據(jù)再除以時(shí)間間隔,軟件一開(kāi)啟時(shí),則采用后一時(shí)刻的數(shù)據(jù)減去當(dāng)前時(shí)刻的數(shù)據(jù)的方式來(lái)獲取軟件的流量速度數(shù)據(jù)。因此,須先獲得當(dāng)前流量數(shù)據(jù),再使用線程來(lái)自動(dòng)每隔一定時(shí)間刷新數(shù)據(jù)。
為了檢驗(yàn)本流量監(jiān)測(cè)工具的實(shí)際性能,需從本工具的功能方面對(duì)其進(jìn)行測(cè)試和評(píng)估。正常使用時(shí)測(cè)試結(jié)果如下。
從圖中可以看出,正常使用時(shí),對(duì)于超出設(shè)定提醒值5KB時(shí),本流量監(jiān)測(cè)工具正常工作,能彈出框及時(shí)地提醒用戶。
隨著網(wǎng)絡(luò)流量越來(lái)越引起人們重視,為了防止流氓軟件的惡意消耗流量,對(duì)手機(jī)應(yīng)用軟件流量的實(shí)時(shí)監(jiān)控就顯得尤為重要。本文以安卓平臺(tái)的數(shù)據(jù)流量為例,闡述了實(shí)時(shí)監(jiān)測(cè)手機(jī)中軟件流量使用情況的方法。然而本流量監(jiān)測(cè)軟件也存在著一些不足,如界面未做過(guò)多修飾,這也是下一步工作的展望。
[1]劉淼.Android流量監(jiān)控技術(shù)研究與實(shí)現(xiàn).碩士論文.華中科技大學(xué)
[2]李俊.Android平臺(tái)下基干流量監(jiān)測(cè)的安全軟件設(shè)計(jì)與實(shí)現(xiàn).碩士論文.西南交通大學(xué)