• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android的手機流量監(jiān)測軟件的設計與實現(xiàn)

      2014-04-29 00:00:00牛志梅李建超
      計算機光盤軟件與應用 2014年14期

      摘 要:針對Android手機的流量問題,采用面向?qū)ο蟮乃枷朐O計與實現(xiàn)基于Android的手機流量監(jiān)測軟件。主要使用Java語言編寫,同時為了保持代碼的效率及阻礙反編譯,使用JNI機制調(diào)用本地so庫,而so庫通過NDK使用特定的編譯器生成。系統(tǒng)能實時可視地監(jiān)測手機流量,同時分析出各個程序使用流量的情況,為用戶找出偷跑流量的后臺程序。便于用戶合理控制,避免不必要的損失。

      關(guān)鍵詞:Android;手機;流量監(jiān)測

      中圖分類號:TP311.52

      目前Android手機的市場占有率大,而Android手機用戶的一個困擾是手機應用中“偷”流量問題,其中后臺服務聯(lián)網(wǎng)惡意上傳和下載是主要的方式。因此對手機流量進行智能化可視化的監(jiān)測顯得日益重要。

      1 需求分析

      經(jīng)過分析,本軟件的設計除了完成核心功能模塊之外,同時還加載一些用戶可能經(jīng)常用到的信息,以便增加用戶黏性。

      軟件功能需求有實時監(jiān)測WIFI聯(lián)網(wǎng)及運營商蜂窩網(wǎng)絡、后臺監(jiān)視聯(lián)網(wǎng)數(shù)據(jù)、不長駐后臺、提供多種可選通知方式的通知欄、用戶可進行數(shù)據(jù)設置、提供直觀數(shù)字及線性圖報表顯示、顯示程序流量詳情、支持多語言。

      2 總體設計

      2.2 運行流程。軟件重要部分有四個,用戶界面、后臺服務、數(shù)據(jù)庫、通知欄。四個部分相互合作,相互提供服務及接口。下面詳細描述程序運行流程。

      當系統(tǒng)連接上網(wǎng)絡時,系統(tǒng)向注冊了該事件的通知接收器推送網(wǎng)絡連接的通知,接收器經(jīng)過判斷,啟動相關(guān)監(jiān)測服務,該接收器只負責啟動相應服務。服務啟動之后,由于需要根據(jù)網(wǎng)絡變化狀況進行相應的數(shù)據(jù)更新存儲和服務停止工作,所以也注冊相應通知事件。此時從數(shù)據(jù)庫初始化數(shù)據(jù),通知欄初始化,判斷時間界限,并更新相關(guān)日期及流量信息。經(jīng)過以上數(shù)據(jù)初始化工作之后,程序開始啟動循環(huán)任務,利用本地共享庫獲取網(wǎng)絡信息數(shù)據(jù),并更新至數(shù)據(jù)庫和通知欄。

      當網(wǎng)絡斷開的時候,服務內(nèi)部的接收器收到通知,并經(jīng)過判斷,關(guān)閉通知欄,停止接收通知事件,完成服務停止的數(shù)據(jù)存儲工作,停止服務。

      在Activity用戶界面方面,程序經(jīng)過用戶點擊,開始程序啟動界面,從數(shù)據(jù)庫取出數(shù)據(jù),加載界面。用戶可設置流量,除了要存儲至數(shù)據(jù)庫外,還要發(fā)出自定義的推送通知消息,如果服務處于啟動狀態(tài),就會從數(shù)據(jù)庫更新數(shù)據(jù)。

      2.3 開發(fā)環(huán)境。開發(fā)環(huán)境:WIN7;開發(fā)工具:3.7Eclispe+21.1.0ADT+NDK-r8e;測試硬件:HTC G14測試固件:Android 4.0.3。

      3 詳細設計與實現(xiàn)

      軟件設計包括UI界面設計、數(shù)據(jù)庫設計、監(jiān)測服務設計、特殊設計(代碼反編譯混淆、滑動界面設計、多語言設置等)。其中監(jiān)測服務設計所占時間及精力較大。整個設計盡量作到易于修改,易于復用。這里重點介紹數(shù)據(jù)庫設計和監(jiān)測服務設計部分。

      3.1 數(shù)據(jù)庫設計。在軟件設計中,需要存儲的數(shù)據(jù)有程序列表對應流量,移動和Wifi每日流量等。由于這些數(shù)據(jù)更新頻率較快,統(tǒng)一儲存在SQLite數(shù)據(jù)庫表中。

      listnettraffic表記錄程序列表對應流量。

      type_nettraffic表記錄移動和wifi每日流量,還要存儲記錄日期、歷史流量、臨時流量、今日界限數(shù)據(jù)、通知欄通知方式等一系列數(shù)據(jù),這些參數(shù)都有mobile和wifi的區(qū)分。設計時將這些數(shù)據(jù)保存在一張表中,用字段day的值來區(qū)分。

      表結(jié)構(gòu)type_nettraffic(day,mobile,wifi)其中day:表示索引或日期,mobile和wifi表示數(shù)據(jù)字節(jié)數(shù)。Day的值取0,-1~-8則表示特殊含義。如:0表示本月總流量,-1本次前所用流量。Day為正數(shù)表示日期如本月第一天即為1。采用負索引號可避免與日期重疊。

      與數(shù)據(jù)服務相關(guān)類有程序底層實現(xiàn)數(shù)據(jù)庫的增刪查改的類MyProvider。對服務和程序界面提供數(shù)據(jù)服務的類Data,該類是位于數(shù)據(jù)庫增刪查改層次和數(shù)據(jù)應用層次的中間層。

      3.2 監(jiān)測服務相關(guān)設計。本部分主要描述的是與后臺監(jiān)測服務相關(guān)的類及類之間關(guān)系,通過類細節(jié)的介紹,可以清楚知道程序的結(jié)構(gòu)及工作細節(jié)流程。

      3.2.1 JNI和NDK的使用。從Java1.1開始,Java Native Interface(JNI)標準成為Java平臺的一部分,它允許Java代碼和其他語言寫的代碼進行交互。由于Java代碼效率、反編譯難度不如C文件編譯出來的本地庫文件,而在獲取網(wǎng)絡數(shù)據(jù)中,我們需要頻繁讀取系統(tǒng)中的數(shù)據(jù)文件,為了高效獲取系統(tǒng)數(shù)據(jù)信息我們使用Android平臺開發(fā)工具NDK編譯出本地庫,然后通過JNI標準制定出Java本地類進行相應的調(diào)用即可讀取系統(tǒng)網(wǎng)絡數(shù)據(jù)。

      NetTraffic類是按照JNI標準規(guī)定編寫的本地類,其下方法都是調(diào)用通過NDK編譯出來的本地庫,調(diào)用本地方法的途徑來進行數(shù)據(jù)的獲取的,而實際的工作是在CPP文件中完成。該類有10個方法名和CPP文件的方法名是相同的。NetTraffic類中調(diào)用的方法通過本地共享庫,調(diào)用的是CPP文件中對應方法。如該類中有g(shù)etMobileTxPackets方法,通過本地庫,實際調(diào)用的是CPP文件中的同名方法。

      Android是以Linux為核心開發(fā)的軟件平臺,Linux系統(tǒng)的原則之一是一切皆文件,其對網(wǎng)絡流量數(shù)據(jù)進行統(tǒng)計和記錄,將相關(guān)數(shù)據(jù)寫到固定的相對應的文件位置中。CPP文件中采用readNumber、tryBoth、readTotal三個方法讀取本地文件中的特征數(shù)值,并通過特定計算返回數(shù)值。其它方法均調(diào)用此三個方法只是傳入不同參數(shù)。

      編寫出CPP文件之后,需要按照一定規(guī)則將其編譯成可供調(diào)用的so共享庫。在.mk文件中指定目標模塊和目標源文件,指定目標庫的生成方式即可使用編譯工具生成so本地共享庫供調(diào)用。

      3.2.2 監(jiān)測服務設計。服務的啟動部分由BootReceiver類負責,該類繼承BroadcastReceiver廣播接收器。當監(jiān)測到某種網(wǎng)絡連接開始活動時,該類即啟動對應的監(jiān)測服務MobileService或是WifiService,監(jiān)測服務類即實例化。

      MobileService類和WifeService做的工作,記錄的數(shù)據(jù),發(fā)出與接收的時間通知都是相同的,因此抽取出AbstractService類,使用繼承來達到代碼復用的效果。該類繼承于Service。采用Handler與Runnable配合實現(xiàn)程序的定時循環(huán)執(zhí)行

      同時,根據(jù)屬性category(網(wǎng)絡類型的標識)的取值,從數(shù)據(jù)庫按照網(wǎng)絡類型取出對應的ServiceData(描述服務監(jiān)測過程狀態(tài)的數(shù)據(jù)類型),并實例化通知欄。Broad類是與通知欄相關(guān)類。進行服務的初始化。

      接下來實例化網(wǎng)絡事件接受器NetReceiver類,因為該類事件判斷邏輯較為復雜,所以將其單獨抽離出來,而對應的事件處理由接口NetStateChangeImpl處理,該接口有三個函數(shù),分別為網(wǎng)絡關(guān)閉時停止查詢?nèi)蝿胀V狗?、網(wǎng)絡開始連接時:啟動服務、設置被改變時更新數(shù)據(jù)更新通知欄。類NetReceiver中經(jīng)過特定目標事件的過濾之后,就執(zhí)行AbstractService中注冊的方法,這樣就可以將程序復雜的判斷邏輯分離出來,達到代碼的層次化和清晰化。經(jīng)過以上工作之后,程序開始啟動循環(huán)任務。

      4 設計結(jié)果

      經(jīng)過測試軟件能實現(xiàn)需求分析階段所述的全部功能,作到實時監(jiān)測,直觀顯示。所以對于用戶是有極大幫助的。本軟件的特點是能根據(jù)網(wǎng)絡狀態(tài),啟動或是停止后臺監(jiān)測服務程序,不長駐后臺,保持用戶手機的后臺進程的干凈。

      5 結(jié)束語

      鑒于數(shù)據(jù)流量在智能設備中的重要性,開發(fā)一個檢測流量的軟件是有很大必要性的。本文介紹了基于Android的手機流量監(jiān)測軟件的設計與實現(xiàn)過程。對JNI和NDK技術(shù)在設計中的應用以及監(jiān)測服務的實現(xiàn)進行了較詳細地介紹。

      參考文獻:

      [1]吳亞峰,蘇亞光.Android應用案例開發(fā)大全[M].北京:人民郵電出版社,2011.

      [2]李寧.Android/OPhone開發(fā)完全講義[M].北京:水利水電出版社,2010.

      作者簡介:牛志梅(1972-),女,河南唐河人,講師,工學碩士,研究方向:數(shù)據(jù)庫、軟件工程。

      作者單位:武漢工程大學 計算機科學與工程學院,武漢工程大學智能機器人湖北省重點實驗室,武漢 430073;成都數(shù)字天宇網(wǎng)絡科技有限公司,成都 610000

      潼南县| 涞水县| 新宁县| 云林县| 丹东市| 临颍县| 托克逊县| 古交市| 临湘市| 江西省| 泰来县| 宿州市| 永泰县| 定远县| 上饶县| 东方市| 海原县| 深水埗区| 高雄县| 百色市| 珲春市| 龙川县| 乌什县| 铅山县| 徐闻县| 德庆县| 邢台县| 介休市| 和林格尔县| 五大连池市| 绥阳县| 上饶市| 大竹县| 都安| 苍溪县| 留坝县| 黑山县| 靖州| 东丽区| 汶川县| 屯昌县|