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