




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于Android的手機(jī)安全軟件設(shè)計與實(shí)現(xiàn)福州大學(xué)陽光學(xué)院本科畢業(yè)論文、畢業(yè)設(shè)計題 目:基于Android的手機(jī)安全軟件設(shè) 計與實(shí)現(xiàn) 系 別: 計算機(jī)工程系專 業(yè): 計算機(jī)科學(xué)與技術(shù)年 級: 2010級學(xué) 號: 241092317姓 名: 藍(lán)志毅指導(dǎo)教師: 2014年4月25日I基于Android的手機(jī)安全軟件設(shè)計與實(shí)現(xiàn)摘要隨著生活節(jié)奏的加快,移動硬件設(shè)備的發(fā)展,人們對移動設(shè)備的需求越來越高,如今手機(jī)與人們生活密不可分,看時間、聯(lián)系朋友等等都要用到手機(jī),可見手機(jī)的重要性。當(dāng)今,ios、wp、Android三足鼎立,占有世界智能手機(jī)的大部分市場份額。ios系統(tǒng)封閉,wp不成熟,而Android是
2、開放、成熟的系統(tǒng),且是世界上使用人數(shù)最多的系統(tǒng)。同時,手機(jī)越來越成熟越智能,所受的安全威脅也越來越多,所以本文針對主流的Android系統(tǒng),設(shè)計一款基于Android的手機(jī)安全應(yīng)用軟件。本應(yīng)用軟件采用安卓開源系統(tǒng)技術(shù),利用利用java語言和eclipse工具進(jìn)行代碼編寫和設(shè)計,通過搭建開發(fā)環(huán)境、需求分析以及詳細(xì)的系統(tǒng)設(shè)計,展示了本應(yīng)用的六大主要功能模塊:手機(jī)防盜、軟件管理、任務(wù)管理、流量管理、手機(jī)殺毒、系統(tǒng)優(yōu)化。最后集成各個模塊運(yùn)行,總體運(yùn)行正常。本文第一章是緒論,簡要地概括課題研究的背景、目的及其意義,簡述Android的發(fā)展情況以及所需的軟硬件環(huán)境。第二章介紹Android系統(tǒng)架構(gòu),主要闡
3、述該架構(gòu)的操作系統(tǒng)層、各種庫和運(yùn)行環(huán)境、應(yīng)用程序框架和應(yīng)用程序?qū)?。第三章是軟件系統(tǒng)分析,介紹需求分析、可行性分析,還有一些UML圖。第四章是軟件系統(tǒng)設(shè)計與實(shí)現(xiàn),包括布局設(shè)計實(shí)現(xiàn)和功能設(shè)計實(shí)現(xiàn)。第五章是軟件測試,主要包括測試結(jié)果截圖及其分析。最后是對本文的總結(jié)。關(guān)鍵詞:安全衛(wèi)士軟件 Android 分析 設(shè)計 實(shí)現(xiàn)I目 錄目 錄II1緒論11.1 引言11.2 課題來源及研究的背景、目的與意義11.3 Android的發(fā)展情況與軟硬件環(huán)境22 Android系統(tǒng)架構(gòu)32.1 應(yīng)用層32.2 應(yīng)用框架層32.3 Android運(yùn)行環(huán)境與系統(tǒng)運(yùn)行庫層32.4 Linux 內(nèi)核層32.5 工程文件的組
4、成43 軟件系統(tǒng)分析53.1 需求分析53.2 可行性分析84 手機(jī)安全軟件設(shè)計與實(shí)現(xiàn)104.1 布局設(shè)計與實(shí)現(xiàn)104.2功能設(shè)計與實(shí)現(xiàn)175 軟件測試215.1截圖與分析215.2 測試分析24總結(jié)25參考文獻(xiàn)26致謝27II基于Android的手機(jī)安全軟件設(shè)計與實(shí)現(xiàn)1 緒論1.1 引言3G技術(shù)的發(fā)展以及無線上網(wǎng)速度的加快,使得內(nèi)容豐富的程序應(yīng)用在手機(jī)上成為可能,比如聊天、視頻通話、內(nèi)容分享等等。為了能快速部署和承載這些應(yīng)用,手機(jī)功能將會變得更智能和更開放。為了滿足這些需求,由google發(fā)起的OHA聯(lián)盟推出了Android平臺。從1.0到4.0的發(fā)布,Android平臺走進(jìn)我們的視野已經(jīng)5
5、年了3。Android3.x面向大屏幕,不斷提升改進(jìn);為了解決平臺兼容性和開發(fā)成本等問題,Android4.x出現(xiàn)了。無論是平板電腦、智能手機(jī)、電視還是游戲機(jī)都可以使用安卓系統(tǒng)。本人使用的第一款安卓機(jī)是小米,是基于安卓深度定制的系統(tǒng),個性十足,功能豐富?,F(xiàn)如今,各大廠商都投向安卓的開發(fā),昔日霸主諾基亞也在不久前發(fā)布了基于安卓系統(tǒng)的新機(jī)。與計算機(jī)一樣,智能手機(jī)面對的安全威脅正在加大,而且手機(jī)安裝的應(yīng)用需要我們合理的管理。設(shè)計一款基于安卓的具有殺毒和管理手機(jī)應(yīng)用等功能的軟件符合大眾需求。1.2 課題來源及研究的背景、目的與意義Android是近幾年才發(fā)展起來的移動操作系統(tǒng),是基于Linux核心的開
6、源系統(tǒng),早期由Google,后由開放手機(jī)聯(lián)盟發(fā)布的手機(jī)系統(tǒng)平臺,主要應(yīng)用于移動設(shè)備。隨著Android平臺的不斷完善,它在市場上占有率快速增長,越來越多的手機(jī)廠商開始選擇Android系統(tǒng)作為其主要發(fā)展方向。隨著手機(jī)的普及,人們需要知道如何保護(hù)隱私,監(jiān)控流量或是手機(jī)丟了以后怎么辦等,以便能在享用手機(jī)所帶來方便的同時盡可能減少受干擾煩惱。Android平臺的開放性構(gòu)筑了其軟件生態(tài)的繁榮和多樣性,但同時也給木馬提供了可乘之機(jī),木馬可以通過篡改正常軟件,固件植入,非法獲取高權(quán)限等多種手段入侵手機(jī),普通用戶將很難察覺,目前針對智能手機(jī)的安全軟件大概分三種,一種是殺毒類的硬安全;另一種是隱私保護(hù)等的軟安
7、全,第三種就是前面兩種的結(jié)合體13。手機(jī)作為個人通信工具,每天跟隨用戶,保存了很多個人隱私,并且手機(jī)的丟失,很容易讓自己的隱私或個人信息被別人盜取。如果能從這些方面著眼,切實(shí)解決用戶實(shí)際問題,才是目前真正要做的14。本課題的目的是開發(fā)一款實(shí)用的手機(jī)安全軟件,對手機(jī)的安全進(jìn)行管理,非常有益于保障人們生活少受干擾,并且能在一定程度上保護(hù)人們的隱私,讓用戶能放心地使用手機(jī)。同時,該軟件的設(shè)計與實(shí)現(xiàn)也是對Android應(yīng)用程序開發(fā)知識的綜合應(yīng)用,可在設(shè)計和實(shí)現(xiàn)的過程中學(xué)習(xí)掌握Android應(yīng)用開發(fā)的基礎(chǔ)知識和開發(fā)技術(shù),鍛煉自主學(xué)習(xí)能力,積累開發(fā)經(jīng)驗,增強(qiáng)發(fā)現(xiàn)問題、解決問題的能力。1.3 Android
8、的發(fā)展情況與軟硬件環(huán)境07年谷歌發(fā)布Android系統(tǒng)并展示了其源碼。08谷歌發(fā)布了Android1.0。09年谷歌發(fā)布了Android1.5和Android1.6。10年谷歌發(fā)布了Android2.2和Android2.3且應(yīng)用數(shù)量突破了10萬個。11年7月Android用戶達(dá)到史前的1.35億,成為占有智能手機(jī)市場做多的系統(tǒng)。11年8月,占據(jù)全球48%的智能手機(jī)市場。11年9月,Android應(yīng)用達(dá)到48萬個。11年10,谷歌發(fā)布Android4.0.12年6月,谷歌發(fā)布Android4.1。12年10,谷歌發(fā)布Android4.2。13年9月,谷歌發(fā)布Android4.4。谷歌可謂是互聯(lián)
9、網(wǎng)的大佬,其實(shí)力毋庸置疑;Android的開源,使它受到各大廠商的青睞,眾多廠商推出千奇百怪的功能各異的應(yīng)用,隨著應(yīng)用和開發(fā)人員以及用戶的迅速增加,Android正在走向成熟。本應(yīng)用使用java語言在eclipse編輯工具上進(jìn)行開發(fā)。2 Android系統(tǒng)架構(gòu)2.1 應(yīng)用層應(yīng)用層位于Android體系的最上層。包括平臺配置的一套應(yīng)用程序集合,比如主屏幕、電話、短信、聯(lián)系人、瀏覽器等等以及用戶基于安卓平臺的應(yīng)用程序框架。開發(fā)者還可以使用應(yīng)用框架層提供的API進(jìn)行編寫自己的應(yīng)用程序,這也是安卓開源的優(yōu)勢之一。Android的應(yīng)用層通常用java語言編寫,主要是用戶界面,程序中還有放在res里的各種
10、資源文件等,經(jīng)過編譯后將會生成一個apk包。2.2 應(yīng)用框架層應(yīng)用框架層屬于android體系的第二層。它不僅為第一層提供API,而且還是為應(yīng)用層提供可以復(fù)用的組件、開發(fā)規(guī)范、屏蔽兩層交互的復(fù)雜性的一種機(jī)制。當(dāng)然,本層提供的API并不完全對第三方應(yīng)用程序開放,有一部分是隱藏的。開發(fā)第三方應(yīng)用程序需要依賴Android sdk提供的api,它只是應(yīng)用框架層api的一個子集。開發(fā)者完全可以使用與內(nèi)核應(yīng)用程序相同的框架,假如程序暴露其數(shù)據(jù)或功能模塊,則其他程序就可以使用這些內(nèi)容。通過本層,用戶自定義的程序可以執(zhí)行框架的預(yù)設(shè)功能,這樣就能減少程序代碼量。因為上層的應(yīng)用程序是以java語言構(gòu)建的,所以本
11、層提供的首先是包含了UI程序中所需的各種控件,比如Views。本層主要的五個組件是:Activity、Broadcast Intent Receiver、Service、Content Provider、Intent and Intent Filter2。2.3 Android運(yùn)行環(huán)境與系統(tǒng)運(yùn)行庫層本層是Android體系結(jié)構(gòu)的第三層,相當(dāng)于中間件層,為應(yīng)用程序框架提供服務(wù)。應(yīng)用層使用的多媒體、瀏覽器等,其功能實(shí)現(xiàn)就是由系統(tǒng)運(yùn)行庫實(shí)現(xiàn)的。它分為系統(tǒng)運(yùn)行庫和Android運(yùn)行環(huán)境,本層的內(nèi)容大多數(shù)是使用c和c+語言實(shí)現(xiàn)的。Android的各種庫一般有一個特點(diǎn)就是與移動設(shè)備的平臺的應(yīng)用密切相關(guān)。A
12、ndroid的運(yùn)行環(huán)境主要是指虛擬機(jī)技術(shù),Android提供了Dalvik虛擬機(jī)以支持java運(yùn)行環(huán)境。Dalvik和java VM不同,它執(zhí)行的不是java標(biāo)準(zhǔn)的字節(jié)碼,而是Dalvik可以執(zhí)行的.dex執(zhí)行文件。兩者最大區(qū)別是,Dalvik是基于寄存器的虛擬機(jī),而java VM是基于棧的。很顯然,Dalvik的最大好處就是可以根據(jù)硬件實(shí)現(xiàn)更大的優(yōu)化,這樣更適合移動設(shè)備的特點(diǎn)。2.4 Linux 內(nèi)核層Linux內(nèi)核是硬件和軟件棧的抽象。Android自ICS起就基于Linux3.0 內(nèi)核,充分利用了Linux內(nèi)核的基于權(quán)限的安全模型、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型等優(yōu)點(diǎn),并在電源
13、管理和日志系統(tǒng)等方面引入了不同與標(biāo)準(zhǔn)Linux的全新實(shí)現(xiàn)。2.5 工程文件的組成圖 2-1 Android應(yīng)用工程文件的組成如圖2-1,一個完整Android工程都需要這幾個文件或文件夾組成。src目錄里面保存著各種包,包含著自己編寫的所有java源文件。gen目錄里面的文件是自動生成的,我們無須去動,里面有個重要的文件就是R.java文件,它是定義該項目所有資源的索引文件。Android4.4和Android private libraries是編寫代碼所用到的包。Assets是資產(chǎn)文件,管理Android工程所引入的資產(chǎn)素文件,也就是除資源以外的素材可以放這里。Res里面有drawable
14、和layout。Drawable存放圖片等資源,layout存放布局文件。AndroidMainifest.xml文件是重要的清單文件,包含了該工程信息和組成部件,通過這個清單文件,可以獲取項目的包名、 android版本信息、組成部件以及SDK的版本信息等內(nèi)容。3 軟件系統(tǒng)分析3.1 需求分析本軟件功能類似市場上的金山手機(jī)衛(wèi)士,方便、實(shí)用、界面友好,具有手機(jī)防盜、軟件管理、任務(wù)管理、流量管理、手機(jī)殺毒、系統(tǒng)優(yōu)化等主要功能。手機(jī)防盜有短信警報,gps定位、鈴聲警報、屏幕鎖定、清除數(shù)據(jù)。軟件管理可以卸載、運(yùn)行、分享軟件。任務(wù)管理可以殺死進(jìn)程。流量管理可以記錄每個程序所用的流量。手機(jī)殺毒可以查殺病
15、毒庫里有的病毒。系統(tǒng)優(yōu)化可以清除程序緩存。(1)軟件系統(tǒng)流程圖,如圖3-1所示。圖 3-1 系統(tǒng)流程圖(2)軟件系統(tǒng)用例圖,如圖3-2所示。圖 3-2 系統(tǒng)用例圖(3)軟件模塊順序圖1)軟件管理模塊順序圖,如圖3-3所示。2)手機(jī)殺毒模塊順序圖:如圖3-4所示。圖 3-3 軟件管理模塊順序圖圖3-4 手機(jī)殺毒模塊順序圖(4)活動圖1) 軟件管理模塊活動圖:如圖3-5所示。圖3-5 軟件管理模塊活動圖2)手機(jī)殺毒模塊活動圖:如圖3-6所示。圖 3-6 手機(jī)殺毒模塊活動圖3.2 可行性分析3.2.1 技術(shù)可行性技術(shù)可行性分析主要是分析現(xiàn)有的技術(shù)是否能夠順利的完成預(yù)定的開發(fā)任務(wù)。要考慮現(xiàn)有的軟、硬件
16、設(shè)施是否能夠滿足開發(fā)的需要(例如計算機(jī)的硬件配置、軟件環(huán)境等)?,F(xiàn)在的電子科技日新月異,日常生活的家用電腦基本上都可以滿足軟件的開發(fā)配置要求,所以本課題開發(fā)的硬件設(shè)施可行。Android的應(yīng)用開發(fā)采用Android SDK+Eclipse的開發(fā)環(huán)境,這種Google官方推薦的開發(fā)環(huán)境在技術(shù)上已經(jīng)十分成熟,并且提供免費(fèi)下載,所以本課題的開發(fā)在軟件環(huán)境上也是可行的。Android的應(yīng)用開發(fā)并不局限于Java語言,但是采用Java語言是目前的主流。并且Java簡單易學(xué),有成熟的體系結(jié)構(gòu)和開發(fā)模式。在網(wǎng)絡(luò)上有很多優(yōu)秀的教程可供學(xué)習(xí),可以在短時間內(nèi)掌握Android應(yīng)用開發(fā)所需的開發(fā)基本要求。目前的An
17、droid應(yīng)用市場上已經(jīng)有一些成熟的手機(jī)安全軟件,所以證明本系統(tǒng)在技術(shù)上是可行的。3.2.2 經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性分析主要是對項目的經(jīng)濟(jì)效益進(jìn)行評價,一方面是支出的費(fèi)用,其中包括系統(tǒng)的硬件購置、軟件開發(fā)工具、管理和維護(hù)、開發(fā)人員工資和培訓(xùn)費(fèi)等費(fèi)用。另一方面是取得的收益中可以用折算為貨幣價值來衡量的那部分(收益的另一部分難以用貨幣價值來表示)。 本課題為Android系統(tǒng)手機(jī)上的小應(yīng)用,開發(fā)的硬件設(shè)施只需要一臺個人電腦,系統(tǒng)的開發(fā)環(huán)境使用Android SDK+Eclipse。這些軟件都可以在Google的官方網(wǎng)站免費(fèi)下載并不需要額外付費(fèi)。由于是個人自學(xué)開發(fā)的軟件,在人員的工資和培訓(xùn)費(fèi)等方面都不
18、需要太多的花費(fèi),而且主要的學(xué)習(xí)方式是通過網(wǎng)絡(luò)上的教程以及導(dǎo)師的指導(dǎo)。所以研發(fā)經(jīng)費(fèi)上是可行的。收益可以通過免費(fèi)使用廣告移植的方式即讓用戶免費(fèi)使用,開發(fā)者在系統(tǒng)中插入廣告,通過廣告獲取收入的方式獲得。收益可大于成本,本課題在經(jīng)濟(jì)上是可行的。3.2.3 操作可行性此軟件是使用Android SDK+Eclipse作為軟件開發(fā)的平臺,開發(fā)出來的系統(tǒng)具有友好的用戶界面,有良好的安全設(shè)置,以及詳細(xì)的使用說明,使用戶能很快的掌握系統(tǒng)的使用方法,只要是安卓手機(jī)就能正常安裝運(yùn)行,因此在開發(fā)在操作上是可行的。4 手機(jī)安全軟件設(shè)計與實(shí)現(xiàn)根據(jù)需求分析,知道本軟件有六大模塊,由此,我們將進(jìn)行詳細(xì)的界面布局設(shè)計實(shí)現(xiàn)和功能
19、設(shè)計實(shí)現(xiàn)分析。4.1 布局設(shè)計與實(shí)現(xiàn)4.1.1 主界面點(diǎn)擊應(yīng)用圖標(biāo)進(jìn)去就是主界面,如圖4-3。主界面布局比較復(fù)雜,由好幾個布局組成。首先是幀布局FrameLayout,里面有兩個子布局節(jié)點(diǎn)都是LinearLayout,為了方便講解,我們暫且叫做LinearLayout A和LinearLayout B。LinearLayout A下面還有個LinearLayout A1,LinearLayout A1下面是GridView節(jié)點(diǎn),設(shè)置numColumns為2,表示兩列,這樣,我們剛好是六個模塊,一列就是3個。主要代碼為: <LinearLayout android:layout_width
20、="252dp" android:layout_height="392dp" android:orientation="vertical" > <GridView android:id="+id/gv_main" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="2" > </GridView>
21、; </LinearLayout>接著,LinearLayout A里面還有個復(fù)雜布局,主要是顯示右下角的圖標(biāo)按鈕,點(diǎn)擊它可以使整個界面向左滑動,右邊出現(xiàn)一個view,就是LinearLayout B的內(nèi)容。代碼在layout里面的mainui.xml。圖 4-3 主界面4.1.2 手機(jī)防盜模塊這個模塊內(nèi)容比較多。首先,當(dāng)用戶第一次進(jìn)入手機(jī)防盜時要判斷用戶是否設(shè)置了密碼,如果沒有就加載第一次進(jìn)入的對話框界面,系統(tǒng)默認(rèn)對話框難看而且背景顏色、標(biāo)題等都改不了,所以這就要我們自定義對話框了,要改自定義對話框就要更改系統(tǒng)默認(rèn)對話框的樣式。樣式代碼如下:<style name=&quo
22、t;MyDialog" parent="android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item></style>有了樣式,我們就可以自定義對話框了,如圖4-4,textview和editview各兩個,分別是輸入密碼和確認(rèn)密碼,標(biāo)題背景顏色和下面兩個按鈕的背景顏色也是自定義的。為了方便,密碼暫為123,輸入的密碼用MD5加密保存在sharedpreferences里。輸入的密碼滿要進(jìn)行邏輯判斷,當(dāng)且僅當(dāng)兩次密碼
23、輸入正確且不為空時才表示設(shè)置好了密碼。如果判斷已經(jīng)設(shè)置了密碼那就直接進(jìn)入正常對話框,實(shí)現(xiàn)原理跟第一次對話框一樣,效果如圖4-5。圖 4-4 第一次登陸界面圖 4-5 正常登陸界面當(dāng)我們登陸正常對話框輸入正確密碼后判斷是否進(jìn)行過設(shè)置向?qū)?,是的話加載手機(jī)防盜頁面,否的話進(jìn)行設(shè)置向?qū)?。設(shè)置向?qū)Ы缑嬉还灿兴捻?,第一頁介紹手機(jī)防盜有哪些功能,第二頁要進(jìn)行手機(jī)sim卡的綁定,這步很重要。每個sim卡串號都是唯一的,綁定后就定下來了,綁定后,sim卡串號會被保存到sharedpreferences里,如果手機(jī)被偷后,小偷換了sim卡,重啟后此軟件會進(jìn)行對比,如果不相同將會向安全號碼發(fā)送之前寫好的報警短信。第
24、三步是設(shè)置安全號碼,上面說了,手機(jī)被偷換卡后會向安全號碼上發(fā)送報警短信,這樣,我們就得到了小偷的號碼了。第四步是確認(rèn)你是否開啟保護(hù),是的話就開起了手機(jī)防盜的功能了,否則沒有。當(dāng)用戶開啟了保護(hù),也就是開啟了手機(jī)防盜功能后,會進(jìn)入如圖4-6。當(dāng)用戶點(diǎn)擊里面的重新進(jìn)入向?qū)l目就可以進(jìn)行重新設(shè)置了。我們可以看到,這個界面的下方有四句話。當(dāng)小偷那邊回發(fā)短信過來時,就可以向小偷手機(jī)發(fā)送內(nèi)容為location的短信,過段時間就會收到小偷所在位置的經(jīng)緯度。發(fā)送delete會刪除手機(jī)數(shù)據(jù),也就是恢復(fù)手機(jī)出廠設(shè)置。發(fā)送locknow就可以給手機(jī)加密鎖屏。發(fā)送alarm就是發(fā)出報警音樂。圖 4-6 防盜保護(hù)中4.1
25、.3 軟件管理模塊這個模塊功能是卸載、運(yùn)行、分享軟件。所以就應(yīng)該有個頁面來顯示所有的程序。這個頁面布局文件就是app_manager.xml。首先標(biāo)題顯示為所有程序,下面就會列出手機(jī)的所有程序,這些程序是以listview展現(xiàn)出來的,這就還要有個布局文件實(shí)現(xiàn)一個條目要顯示應(yīng)用程序的多少信息,這個文件是app.xml,主要代碼如下:<ImageView android:id="+id/iv_app_icon" android:layout_width="60dip" android:layout_height="60dip" an
26、droid:scaleType="fitXY" android:src="drawable/ic_launcher" /> <TextView android:id="+id/tv_app_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="功能名字" android:textColor="color/textcolor&
27、quot; android:textSize="22sp" />如圖4-7顯示的是應(yīng)用程序的圖標(biāo)和名字。這個是顯示所有程序的,當(dāng)點(diǎn)擊標(biāo)題,會變成顯示用戶程序。圖4-7 軟件管理界面4.1.4 任務(wù)管理模塊這個模塊布局跟軟件管理有點(diǎn)像,也是用listview顯示程序的信息。首先標(biāo)題欄可以顯示進(jìn)程數(shù)目和剩余的內(nèi)存,進(jìn)程數(shù)目就是下面程序清單的總個數(shù),程序清單里有用戶進(jìn)程和系統(tǒng)進(jìn)程。每個程序右邊還有一個checkbox,點(diǎn)擊可以選中。下面還有兩個按鈕,分別是一鍵清理和程序設(shè)置。效果圖如圖4-8。圖4-8 任務(wù)管理界面4.1.5 流量管理模塊首先也是修改系統(tǒng)默認(rèn)標(biāo)題,自定義標(biāo)題
28、,下面一欄時顯示2g、3g和wifi總流量,接著,下面是程序清單。里面列著各個程序所用的流量,每個條目分別顯示著程序圖標(biāo)、程序名,上傳流量、下載流量。主要代碼如下:<ImageView android:id="+id/iv_traffic_icon" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:src="drawable/ic_launcher&q
29、uot; /> <TextView android:id="+id/tv_traffic_name" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="名稱" /> <TextView android:id="+i
30、d/tv_traffic_tx" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="上傳" /> <TextView android:id="+id/tv_traffic_rx" android:layout_width=&q
31、uot;0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="下載" />4.1.6 手機(jī)殺毒模塊這個病毒掃描界面上面標(biāo)題居中顯示手機(jī)殺毒四個字,下面是掃面狀態(tài)圖標(biāo)和進(jìn)度條,右邊是一鍵清理按鈕,中間是顯示掃描信息,最底層是查殺按鈕。效果如圖4-9。圖4-9 手機(jī)殺毒界面4.1.7 系統(tǒng)優(yōu)化模塊這個模塊主要是實(shí)現(xiàn)清除程序
32、緩存,所以也是有個listview顯示出所有的程序清單。每個條目顯示程序的圖標(biāo)和緩存大小,右邊是清理的按鈕圖標(biāo),如圖 4-10。主要代碼如下:<ImageView android:id="+id/iv_cache_icon" android:layout_height="60dip" android:layout_width="60dip" android:layout_weight="0"/> <RelativeLayout android:layout_weight="1"
33、 android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical"> <LinearLayout android:orientation="vertical" android:layout_height="match_parent" android:layout_width="match_parent"> <
34、;TextView style="style/content_text" android:id="+id/tv_cache_name" android:singleLine="true" android:ellipsize="end" android:textSize="20sp"/> <TextView style="style/content_text" android:id="+id/tv_cache_size" android:text
35、Size="12sp"/> </LinearLayout> </RelativeLayout> <ImageView android:src="drawable/clear_selected" android:layout_height="60dip" android:layout_width="60dip" android:layout_weight="0"/> 圖4-10 緩存清理界面4.2功能設(shè)計與實(shí)現(xiàn) 4.2.1 手機(jī)防盜模塊之前講過,這個模塊有
36、四個功能,gps定位、警報音樂、鎖屏、清除數(shù)據(jù)。Gps定位的實(shí)現(xiàn)過程就是先獲取手機(jī)gps服務(wù),然后得到位置管理提供者,監(jiān)聽位置改變的回調(diào)方法,最后要關(guān)掉監(jiān)聽。用這個方法定位的缺點(diǎn)是要露天才能定位,而且不穩(wěn)定,也有收不到短信的情況。其他三個功能的實(shí)現(xiàn),要獲取設(shè)備的超級管理員權(quán)限。首先新建類 MyAdmin 繼承 DeviceAdminReceiver,其實(shí)DeviceAdminReceiver就是廣播接收者的子類,所以MyAdmin也是廣播接收者,所以就應(yīng)該在清單文件里配置廣播接收者。然后在第四個設(shè)置向?qū)ы撁胬镒詮V播接受者為admin設(shè)備,最后就是獲取IDevicePolicyManager,
37、這樣就獲得了超級管理員權(quán)限了,接著要在短信接收類里設(shè)置鎖屏密碼、鎖屏功能、清除數(shù)據(jù)和音樂報警功能。小偷換了sim,軟件監(jiān)測到前后sim卡串號不同,就會主動向安全號碼發(fā)送報警短信,然后我們就可以向此短信回復(fù)上面四個單詞的任一個就會實(shí)現(xiàn)不同功能。Gps定位主要代碼:public void onLocationChanged(Location location) String latitude = "緯度 " + location.getLatitude(); / weiduString longtitude = "經(jīng)度 " + location.getLon
38、gitude(); / jingduSharedPreferences sp = context.getSharedPreferences("config",Context.MODE_PRIVATE);Editor editor = sp.edit();editor.putString("location", latitude + " - " + longtitude);mit(); / 最后一次獲取到的位置信息 存放到sharedpreference里面鎖屏主要代碼:DevicePolicyManager manager = (De
39、vicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);manager.resetPassword("123", 0);manager.lockNow();abortBroadcast();清除數(shù)據(jù):manager.wipeData(0);abortBroadcast();音樂報警:MediaPlayer player = MediaPlayer.create(context, R.raw.alarm2);player.setVolume(1.0f, 1.0f);player.sta
40、rt();abortBroadcast();4.2.2 軟件管理模塊這個模塊主要實(shí)現(xiàn)運(yùn)行、卸載、分享軟件。首先要寫一個類來獲取所有的應(yīng)用程序,還要區(qū)分出哪些是系統(tǒng)應(yīng)用,哪些是用戶應(yīng)用,再用listview把他們顯示出來。Android的對話框有兩種:PopupWindow和AlertDialog。它們的不同點(diǎn)在于:AlertDialog的位置固定,而PopupWindow的位置可以隨意,所以我們選擇使用PopupWindow。開始初始化PopupWindow,先定義一個數(shù)組來存放item數(shù)值,然后拿到點(diǎn)擊時的條目,把它設(shè)置到view里面。接著添加動畫,設(shè)置一個背景圖把PopupWindow顯示
41、出來,最后開啟動畫。當(dāng)你點(diǎn)擊應(yīng)用條目時會彈出一個類似對話框的東西,里面有卸載、運(yùn)行、分享功能,這就是用PopupWindow實(shí)現(xiàn)的。最后分別調(diào)用系統(tǒng)的卸載、運(yùn)行和分享功能即可。主要代碼:new Thread() public void run() isloading = true;if (flag) provider = new AppInfoProvider(AppManagerActivity.this);appinfos = provider.getAllApps();/Message msg = new Message();msg.what = GET_ALL_APP_FINISH;h
42、andler.sendMessage(msg); else provider = new AppInfoProvider(AppManagerActivity.this);appinfos = provider.getAllApps();userAppinfos = getUserApps(appinfos);Message msg = new Message();msg.what = GET_USER_APP_FINISH;handler.sendMessage(msg);.start();4.2.3 任務(wù)管理模塊這個模塊功能主要有顯示進(jìn)程數(shù)目、剩余內(nèi)存大小和一鍵清理按鈕。我們只要得到act
43、ivityManager對象,再調(diào)用它的getRunningAppProcesses方法,最后返回他的size就可以得到進(jìn)程數(shù)目了。計算剩余的內(nèi)存其實(shí)也是調(diào)用activityManager的getMemoryInfo方法,再轉(zhuǎn)換下單位就行了。實(shí)現(xiàn)一鍵清理的話,就是拿到RunningAppProcessInfo的集合,再遍歷它,就可以拿到這些進(jìn)程了,在拿到每個應(yīng)用的包名,就可以拿到其它信息了。4.2.4 流量管理模塊這個模塊可以顯示每個應(yīng)用所用的流量上傳和下載信息,還能顯示所用2g、3g和wifi的總流量信息,而TrafficStats就是Android的一個專門用來獲取流量信息的。代碼如下:
44、private void setTotalTraffic() /拿到2G和3G的總共接收到的數(shù)據(jù)大小 long total_2g_3g_received = TrafficStats.getMobileRxBytes(); /拿到2G和3G的總共發(fā)送出去的數(shù)據(jù)大小 long total_2g_3g_transmitted = TrafficStats.getMobileTxBytes(); /拿到2G和3G的總數(shù)據(jù)的大小 long total_2g_3g = total_2g_3g_received + total_2g_3g_transmitted; tv_traffic_2g_3g.set
45、Text("2G/3g 總流量:" + TextFormater.getDataSize(total_2g_3g); /拿到總共接收到的數(shù)據(jù)大小 long total_received = TrafficStats.getTotalRxBytes(); /拿到總共發(fā)送的數(shù)據(jù)大小 long total_transmitted = TrafficStats.getTotalTxBytes(); /拿到總數(shù)據(jù)大小 long total = total_received + total_transmitted; /拿到wifi的總數(shù)據(jù)大小 long total_wifi = tot
46、al - total_2g_3g; tv_traffic_wifi.setText("wifi 總流量:" + TextFormater.getDataSize(total_wifi); 4.2.5 手機(jī)殺毒模塊該模塊查殺病毒原理是,開啟一個子線程,遍歷得到手機(jī)中的所有應(yīng)用程序的簽名,再將簽名轉(zhuǎn)化為MD5跟已存在病毒庫的MD5進(jìn)行對比,若有相同的就是病毒了。這和市場上的主動防御式?jīng)]法比。4.2.6 系統(tǒng)優(yōu)化模塊這個模塊實(shí)現(xiàn)清理應(yīng)用程序緩存。PackageManager里面有一個私有的方法的叫g(shù)etPackageSizeInfo,我們就是要通過反射來調(diào)用這個方法,然后,get
47、PackageSizeInfo這個方法要傳遞一個IPackageStatsObserver.Stub對象的,這個對象我們一看,就知道是一個AIDL的對象啦,所以,我們就要把相應(yīng)的AIDL文件給放到src目錄下面啦,我們就是在它里面拿到緩存大小。5 軟件測試5.1截圖與分析首先測試手機(jī)防盜模塊,現(xiàn)在A卡上裝上此軟件,之后進(jìn)入手機(jī)防盜,綁定此卡并輸入安全號碼為C卡號,關(guān)機(jī)裝入B卡,C卡會收到B卡發(fā)來的信息,如圖5-1。這樣,我們就得到了B的號碼,接著向此號碼回復(fù)alarm,被盜的手機(jī)會發(fā)出警報鈴聲,因為這是聲音,所以不能截圖,只能現(xiàn)場測試;發(fā)送location,會回復(fù)此手機(jī)的經(jīng)緯度,這個有點(diǎn)問題,
48、到目前搜不到短信,但是有顯示正在搜索gps,如圖5-2;發(fā)送locknow,會把被盜手機(jī)鎖屏,要解鎖需要密碼,如圖5-3;發(fā)送wipedata,會把手機(jī)的所有數(shù)據(jù)擦除。這個模塊就是定位時不穩(wěn)定,有時候收不到短信,其他功能正常。圖 5-1 收到警報短信圖 5-2 正在搜索gps圖 5-3 鎖屏狀態(tài)第二步測試軟件管理模塊。打開此模塊,隨便點(diǎn)擊一個條目,會顯示一個菜單,點(diǎn)擊卸載,會跳到卸載頁面,如圖5-4;點(diǎn)擊運(yùn)行,就會立即運(yùn)行;點(diǎn)擊分享,就會彈出分享到哪里,如圖5-5。這個模塊目前沒出現(xiàn)什么異常。圖 5-4 卸載軟件界面圖 5-5 分享軟件界面第三步測試任務(wù)管理。由于手機(jī)應(yīng)用程序較多,點(diǎn)擊進(jìn)去會有進(jìn)度條顯示正在加載應(yīng)用程序,幾秒后顯示出所有
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢驗校準(zhǔn)品管理制度
- 槽車進(jìn)出廠管理制度
- 歺飲店前廳管理制度
- 母嬰連鎖店管理制度
- 毛花柱日常管理制度
- 民行處工作管理制度
- 氟機(jī)房安全管理制度
- 漢堡店制度管理制度
- 汽修4s店管理制度
- 汽車dcc管理制度
- 消防監(jiān)理實(shí)施規(guī)劃
- 檢驗批劃分專項方案
- 外科學(xué)基本理論與實(shí)踐智慧樹知到答案章節(jié)測試2023年陜西中醫(yī)藥大學(xué)
- QSS G4411-B合成纖維吊裝帶安全使用及報廢標(biāo)準(zhǔn)
- 糖尿病足潰瘍感染的抗生素治療
- 2023子宮內(nèi)膜異位癥治療指南
- TCIE 088-2020 非水冷板式間接液冷數(shù)據(jù)中心設(shè)計規(guī)范
- GB/T 22315-2008金屬材料彈性模量和泊松比試驗方法
- 2022年寧夏寧東開發(fā)投資有限公司招聘筆試試題及答案解析
- 部編版高一上冊語文第三課《百合花》課文原文教案及知識點(diǎn)
- 北京理工附中小升初分班考試真題
評論
0/150
提交評論