版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 河北農(nóng)業(yè)大學(xué)信息學(xué)院</p><p><b> 本科畢業(yè)論文</b></p><p> 題 目: Android手機(jī)衛(wèi)士 </p><p> 學(xué) 院: 信息科學(xué)與技術(shù)學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí): 軟件工程0902班 &l
2、t;/p><p> 學(xué) 號(hào): 2009234040214 </p><p> 學(xué)生姓名: 郭遠(yuǎn)朕 </p><p> 指導(dǎo)教師姓名: 周桂紅 </p><p> 指導(dǎo)教師職稱(chēng): 教授 </p>&
3、lt;p> 二O一三 年 五 月 二十八 日</p><p><b> 摘 要</b></p><p> Android手機(jī)衛(wèi)士系統(tǒng)主要幫助用戶(hù)更加方便的使用手機(jī),其中包括顯示系統(tǒng)軟件和本地軟件的詳細(xì)信息,刪除應(yīng)用程序,結(jié)束進(jìn)程,清理緩存以便手機(jī)運(yùn)行的更流暢;通訊錄添加黑名單可以幫助用戶(hù)免騷擾;程序鎖可以保護(hù)用戶(hù)的手機(jī)應(yīng)用,不讓他人隨便打開(kāi)私密程序,
4、比如通訊錄、短信等;常用號(hào)碼可以方便用戶(hù)查詢(xún)常用的一些電話(huà)號(hào)碼,方便人們的生活;手機(jī)殺毒可以保護(hù)手機(jī)不被病毒騷擾,使手機(jī)更加安全;短信備份可以防備短信丟失。</p><p> Android手機(jī)衛(wèi)士系統(tǒng)主要是面向越來(lái)越多的android手機(jī)用戶(hù)。其內(nèi)容包括通訊衛(wèi)士可以來(lái)電歸屬地顯示,來(lái)電黑名單/短信黑名單管理. 短信備份;軟件管理,顯示軟件的詳細(xì)信息,啟動(dòng),刪除、分享應(yīng)用程序;任務(wù)管理,管理系統(tǒng)任務(wù) 顯示系統(tǒng)內(nèi)
5、存信息,殺死,批量殺死進(jìn)程;系統(tǒng)優(yōu)化,清理手機(jī)內(nèi)存;隱私衛(wèi)士,加密程序。</p><p> 關(guān)鍵字:手機(jī)衛(wèi)士、安全、Android.</p><p><b> Abstract</b></p><p> Android Mobile Guard system is mainly to help users more convenient
6、to use mobile phones, including system software and local software displays detailed information, remove applications, the end of the process, clearing the cache in order to run more smoothly phones; contacts can help us
7、ers avoid adding blacklist harassment; program lock can protect the user's mobile phone applications, not just open the privacy of others programs, such as contacts, text messages, etc.; frequently used numbers c<
8、/p><p> Keywords: Phone Guardian, safe, android.</p><p><b> 目 錄</b></p><p><b> 1.1 前言1</b></p><p> 1.2 課題研究的背景及意義1</p><p> 1
9、.3 國(guó)內(nèi)外研究概況與發(fā)展趨勢(shì)1</p><p> 1.3.1國(guó)外研究情況:1</p><p> 1.3.2國(guó)內(nèi)研究情況:2</p><p> 1.4 設(shè)計(jì)的主要工作2</p><p> 1.5 論文組織2</p><p> 2.開(kāi)發(fā)環(huán)境和開(kāi)發(fā)技術(shù)3</p><p> 2
10、.1工具環(huán)境介紹3</p><p> 2.1.1 開(kāi)發(fā)環(huán)境的選擇3</p><p><b> 2.2開(kāi)發(fā)技術(shù)3</b></p><p> 2.1.1 JAVA語(yǔ)言簡(jiǎn)介3</p><p> 2.1.2 SQLite簡(jiǎn)介3</p><p><b> 3.需求分析4<
11、;/b></p><p> 3.1 設(shè)計(jì)思想4</p><p> 3.2 可行性分析4</p><p> 3.2.1 操作可行性4</p><p> 3.2.2 技術(shù)可行性4</p><p> 3.2.3 經(jīng)濟(jì)可行性4</p><p> 3.3 功能需求5</
12、p><p> 3.3.1 基本功能需求5</p><p><b> 4.系統(tǒng)設(shè)計(jì)6</b></p><p> 4.1 總體結(jié)構(gòu)設(shè)計(jì)6</p><p> 4.1.1 系統(tǒng)設(shè)計(jì)基礎(chǔ)6</p><p> 4.1.3 系統(tǒng)模塊流程設(shè)計(jì)6</p><p><b&
13、gt; 5.系統(tǒng)實(shí)現(xiàn)9</b></p><p> 5.1設(shè)計(jì)主界面9</p><p> 5.2系統(tǒng)各個(gè)模塊功能9</p><p> 5.2.1 進(jìn)程管理界面9</p><p> 5.2.2程序管理13</p><p> 5.2.3病毒查殺16</p><p>
14、 5.2.4騷擾攔截18</p><p> 5.2.5流量查詢(xún)19</p><p> 5.2.6高級(jí)工具20</p><p><b> 6.結(jié)束語(yǔ)24</b></p><p><b> 6.1 總結(jié)24</b></p><p> 6.2 心得體會(huì)24&
15、lt;/p><p><b> 致謝25</b></p><p><b> 參考文獻(xiàn)26</b></p><p><b> 1.緒論</b></p><p><b> 1.1 前言</b></p><p> 目前androi
16、d是最為普遍的手機(jī)操作系統(tǒng),為了方便為數(shù)眾多的android手機(jī)用戶(hù)更加安全的使用手機(jī),保護(hù)自己的隱私數(shù)據(jù)而建立android手機(jī)衛(wèi)士系統(tǒng)。其內(nèi)容包括黑名單的添加與刪除,短信的備份與恢復(fù),系統(tǒng)軟件和用戶(hù)軟件的的詳細(xì)信息、運(yùn)行、卸載與分享,運(yùn)行進(jìn)程的結(jié)束,程序的加密保護(hù),清理手機(jī)內(nèi)存,常用電話(huà)號(hào)碼的查詢(xún)</p><p> 1.2 課題研究的背景及意義</p><p> 計(jì)算機(jī)便攜化是未來(lái)
17、的發(fā)展趨勢(shì),而Android作為最受歡迎的手機(jī)、平板電腦操作之一,其發(fā)展的上升勢(shì)頭是勢(shì)不可當(dāng)?shù)?。而Android應(yīng)用選擇了Java作為其開(kāi)發(fā)語(yǔ)言,對(duì)于Java來(lái)說(shuō)也是一次極好的機(jī)會(huì)。Android系統(tǒng)就是一個(gè)開(kāi)發(fā)式的手機(jī)和平板電腦的操作系統(tǒng),發(fā)展勢(shì)頭十分迅猛。雖然Android面世的時(shí)間不長(zhǎng),但Android已經(jīng)對(duì)傳統(tǒng)的手機(jī)平臺(tái)(如Symbian)構(gòu)成了強(qiáng)大沖擊,Nokia宣布與Microsoft結(jié)盟,可能會(huì)逐步采用Windows Ph
18、one來(lái)代替自己的Symbian系統(tǒng)。業(yè)界部分人士預(yù)測(cè),Android將會(huì)成為應(yīng)用最為廣泛的手機(jī)操作系統(tǒng)。隨著Android手機(jī)在人們?nèi)粘I畹拇蟊娀?,Android手機(jī)的安全也變得越來(lái)越重要。</p><p> 經(jīng)過(guò)大學(xué)四年理論課程的學(xué)習(xí),以及校內(nèi)校外的實(shí)踐,極大的豐富了自身的理論基礎(chǔ),并且也具備了一些處理簡(jiǎn)單問(wèn)題的能力,但即將踏上社會(huì)的我深知這還遠(yuǎn)遠(yuǎn)不夠,因此我利用了畢業(yè)設(shè)計(jì)的機(jī)會(huì),在老師的指導(dǎo)下去完成一個(gè)
19、具有挑戰(zhàn)性的,其具體應(yīng)用及社會(huì)服務(wù)相結(jié)合的項(xiàng)目,深知通過(guò)對(duì)它的開(kāi)發(fā),將對(duì)我的能力有更高層次的突破。</p><p> 1.3 國(guó)內(nèi)外研究概況與發(fā)展趨勢(shì)</p><p> 1.3.1國(guó)外研究情況:</p><p> 美國(guó)Mcafee公司的WaveSecure應(yīng)用程序沒(méi)有任何病毒掃描和防火墻保護(hù),但它卻擁有一些重要的功能,比如,遠(yuǎn)程鎖定你的Android設(shè)備,存儲(chǔ)
20、關(guān)鍵數(shù)據(jù),并且能夠通過(guò)GPS技術(shù)跟蹤和定位設(shè)備,比較實(shí)用。</p><p> Antivirus Free是一款流行的反病毒程序,下載量已經(jīng)超過(guò)50萬(wàn)次,它掃描已經(jīng)安裝到你設(shè)備中的應(yīng)用程序,并檢查它們的數(shù)據(jù)庫(kù)中是否有惡意程序,從本質(zhì)上來(lái)說(shuō),它是一款非常好用的惡意應(yīng)用檢測(cè)程序,值得借鑒。</p><p> 1.3.2國(guó)內(nèi)研究情況:</p><p> 國(guó)內(nèi)Andr
21、oid手機(jī)衛(wèi)士主要有360手機(jī)衛(wèi)士,騰訊手機(jī)管家等,功能比較齊全,界面友好,各個(gè)方面都比較成熟,為我提供了很好的借鑒。</p><p> 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展和人們對(duì)安全性,高效性的要求,移動(dòng)操作系統(tǒng)系統(tǒng)必須與時(shí)俱進(jìn),不斷注入新的功能,以人們?nèi)粘I畹囊?。所以,android手機(jī)衛(wèi)士系統(tǒng)必須保持進(jìn)步與完善。</p><p> 1.4 設(shè)計(jì)的主要工作</p><p
22、> 本系統(tǒng)包括進(jìn)程管理模塊、程序管理模塊、病毒查殺模塊、騷擾攔截模塊、流量查詢(xún)模塊、高級(jí)功能模塊</p><p> 進(jìn)程管理模塊主要實(shí)現(xiàn)查看系統(tǒng)中運(yùn)行的用戶(hù)進(jìn)程、系統(tǒng)進(jìn)程,并統(tǒng)計(jì)進(jìn)程運(yùn)行總數(shù),顯示內(nèi)存剩余情況,以及查看進(jìn)程詳細(xì)信息。</p><p> 程序管理模塊主要實(shí)現(xiàn)列出手機(jī)中所有已安裝的應(yīng)用程序,包括系統(tǒng)程序和用戶(hù)程序,并可以運(yùn)行程序、卸載程序、通過(guò)藍(lán)牙、QQ空間、新浪等
23、分享程序。</p><p> 病毒查殺模塊主要完成病毒的掃描與查殺,包括快速掃描和全盤(pán)掃描。</p><p> 騷擾攔截模塊主要完成黑名單的添加與刪除,對(duì)黑名單列表人的來(lái)電進(jìn)行攔截,提示手機(jī)已停機(jī),并自動(dòng)掛斷電話(huà)。</p><p> 流量查詢(xún)模塊主要完成手機(jī)中各個(gè)程序的流量使用情況。</p><p> 高級(jí)工具主要包括短信的備份,短信
24、的還原,程序鎖,常用電話(huà)號(hào)碼的查詢(xún)。</p><p><b> 1.5 論文組織</b></p><p> 論文全文共分為六章:</p><p> 第一章緒論。主要介紹了論文選題的引言、對(duì)課題研究的背景及意義進(jìn)行了分析,同時(shí)也對(duì)國(guó)內(nèi)外研究狀況及發(fā)展趨勢(shì)進(jìn)行了介紹。</p><p> 第二章 開(kāi)發(fā)環(huán)境和開(kāi)發(fā)技術(shù)。這
25、一章介紹了系統(tǒng)、系統(tǒng)的開(kāi)發(fā)模式、開(kāi)發(fā)環(huán)境等基礎(chǔ)知識(shí)。</p><p> 第三章 需求分析。這一章主要介紹了系統(tǒng)設(shè)計(jì)思想、可行性分析、功能和性能需求。</p><p> 第四章 系統(tǒng)設(shè)計(jì)。這一章主要介紹了系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)。</p><p> 第五章 系統(tǒng)實(shí)現(xiàn)。這一章介紹了系統(tǒng)的所有模塊和它的功能。</p><p> 第六章 結(jié)束語(yǔ)。對(duì)
26、系統(tǒng)實(shí)現(xiàn)過(guò)程進(jìn)行了總結(jié)。</p><p> 2.開(kāi)發(fā)環(huán)境和開(kāi)發(fā)技術(shù)</p><p><b> 2.1工具環(huán)境介紹</b></p><p> 2.1.1 開(kāi)發(fā)環(huán)境的選擇</p><p> 開(kāi)發(fā)與運(yùn)行的環(huán)境的選擇會(huì)影響到數(shù)據(jù)庫(kù)設(shè)計(jì),本系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境如下:</p><p> 開(kāi)發(fā)環(huán)境:Wi
27、ndows 7 HomeBasic</p><p> 開(kāi)發(fā)工具:MyEclipse10.0UltraEdit</p><p> 數(shù)據(jù)庫(kù)管理:SQLite</p><p> 本系統(tǒng)主要采用JAVA與SQLite相結(jié)合的技術(shù)。利用MyEclipse10.0軟件來(lái)設(shè)計(jì)系統(tǒng)界面,使整個(gè)系統(tǒng)更具有吸引力和良好的價(jià)值</p><p><b
28、> 2.2開(kāi)發(fā)技術(shù)</b></p><p> 2.1.1 JAVA語(yǔ)言簡(jiǎn)介</p><p> Java是一種可以撰寫(xiě)跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語(yǔ)言和Java平臺(tái)(即JavaSE, JavaEE, JavaME)的總稱(chēng)。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性
29、,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話(huà)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。</p><p> 2.1.2 SQLite簡(jiǎn)介</p><p> SQLite,是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它
30、,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。</p><p><b> 3.需求分析</b></p>
31、;<p><b> 3.1 設(shè)計(jì)思想</b></p><p> 第一步確定系統(tǒng)要完成的功能模塊;第二步完成系統(tǒng)各個(gè)模塊的界面開(kāi)發(fā);第三步完成各個(gè)模塊的程序設(shè)計(jì)。</p><p> 本系統(tǒng)包含六個(gè)模塊:進(jìn)程管理、程序管理、病毒查殺、騷擾攔截、流量查詢(xún)、高級(jí)工具,各個(gè)模塊相互獨(dú)立,模塊內(nèi)部聯(lián)系緊密,符合高內(nèi)聚、低耦合的設(shè)計(jì)思想。</p>
32、<p><b> 3.2 可行性分析</b></p><p> 可行性分析是系統(tǒng)分析階段的第二項(xiàng)活動(dòng),它的主要目是進(jìn)一步明確系統(tǒng)的目標(biāo)、規(guī)模與功能,對(duì)系統(tǒng)開(kāi)發(fā)背景、必要性和意義進(jìn)行了調(diào)查分析并根據(jù)需要和可能提出開(kāi)發(fā)系統(tǒng)的初步方案與計(jì)劃??尚行苑治鍪菍?duì)系統(tǒng)進(jìn)行全面、概要的分析。通過(guò)調(diào)查分析,本系統(tǒng)設(shè)計(jì)主要有以下三個(gè)可行性:</p><p> 3.2.1
33、操作可行性</p><p> 本系統(tǒng)操作簡(jiǎn)單,易于理解,只需通過(guò)簡(jiǎn)單指導(dǎo),上手較快,運(yùn)行環(huán)境要求低。</p><p> 3.2.2 技術(shù)可行性</p><p> 本課題采用java語(yǔ)言進(jìn)行開(kāi)發(fā),面向?qū)ο蟪绦虻幕驹厥菍?duì)象,面向?qū)ο蟪绦虻闹饕Y(jié)構(gòu)特點(diǎn)是:第一,程序一般由類(lèi)的定義和類(lèi)的使用兩部分組成,在主程序中定義各對(duì)象并規(guī)定它們之間傳遞消息的規(guī)律.第二,程序中
34、的一切操作都是通過(guò)向?qū)ο蟀l(fā)送消息來(lái)實(shí)現(xiàn)的,對(duì)象接收到消息后,啟動(dòng)有關(guān)方法完成相應(yīng)的操作.一個(gè)程序中涉及到的類(lèi),可以由程序設(shè)計(jì)者自己定義,也可以使用現(xiàn)成的類(lèi)(包括類(lèi)庫(kù)中為用戶(hù)提供的類(lèi)和他人已構(gòu)建好的).盡量使用現(xiàn)成的類(lèi),是面向?qū)ο蟪绦蛟O(shè)計(jì)范型所倡導(dǎo)的程序設(shè)計(jì)風(fēng)格。Android豐富的API可以使系統(tǒng)完成更加方便。</p><p> 3.2.3 經(jīng)濟(jì)可行性</p><p> 本課題所使用的
35、軟件都為免費(fèi)公開(kāi)發(fā)行版,不需要購(gòu)買(mǎi)。現(xiàn)在,Android手機(jī)的價(jià)格已經(jīng)十分低廉,使用非常普遍,為本次開(kāi)發(fā)提供了設(shè)備支持,幾乎所有的Android手機(jī)都可以高效的運(yùn)行使用Android手機(jī)衛(wèi)士系統(tǒng) 。</p><p><b> 3.3 功能需求</b></p><p> 按照系統(tǒng)開(kāi)發(fā)業(yè)務(wù)分析要求和原則,在與系統(tǒng)管理人員的充分溝通,整理出Android手機(jī)衛(wèi)士系統(tǒng)所需
36、求的基本功能和用戶(hù)界面的一些需求,這些需求將作為系統(tǒng)分析和邏輯設(shè)計(jì)的依據(jù)。</p><p> 3.3.1 基本功能需求</p><p> 通過(guò)系統(tǒng)的分析,可得出該系統(tǒng)的基本功能需求如下:</p><p> 進(jìn)程管理:列出所有進(jìn)程,顯示內(nèi)存使用情況,可以批量殺死選中進(jìn)程</p><p> 程序管理:列出手機(jī)上安裝的用戶(hù)程序和系統(tǒng)程序,可
37、以運(yùn)行、卸載相關(guān)程序</p><p> 病毒查殺:可以快速掃描和全盤(pán)掃描手機(jī)內(nèi)存和SD卡,查殺病毒</p><p> 騷擾攔截:可以添加來(lái)電黑名單,攔截黑名單來(lái)電</p><p> 流量查詢(xún):可以查看各個(gè)程序的流量使用情況</p><p> 高級(jí)工具:包含短信的備份、還原,程序鎖,常用號(hào)碼查詢(xún)</p><p>
38、 3.3.2 用戶(hù)界面需求</p><p> 系統(tǒng)界面要符合大多數(shù)人的使用習(xí)慣,界面美觀、按鈕得體,使用起來(lái)要方便。</p><p> 圖4-1系統(tǒng)組織結(jié)構(gòu)圖</p><p><b> 4.系統(tǒng)設(shè)計(jì)</b></p><p> 4.1 總體結(jié)構(gòu)設(shè)計(jì)</p><p> 4.1.1 系統(tǒng)設(shè)計(jì)
39、基礎(chǔ)</p><p> 系統(tǒng)總體設(shè)計(jì)原則是需要充分考慮系統(tǒng)框架的合理構(gòu)建理。其組織結(jié)構(gòu)圖如4-1</p><p><b> 所示。</b></p><p> 4.1.2 模塊設(shè)計(jì)</p><p> 本系統(tǒng)是一個(gè)典型的Android手機(jī)衛(wèi)士系統(tǒng),主要目標(biāo)是讓使用它的用戶(hù)能很好地管理Android手機(jī),方便用戶(hù)的使用
40、,如任務(wù)管理功能、程序管理功能、病毒查殺功能、騷擾攔截功能,流量查詢(xún)以及高級(jí)工具功能</p><p> 4.1.3 系統(tǒng)模塊流程設(shè)計(jì)</p><p> 在具體模塊的設(shè)計(jì)過(guò)程中,將系統(tǒng)模塊以按鈕的形式展現(xiàn)出來(lái)。</p><p> 任務(wù)管理:清理手機(jī)的運(yùn)行進(jìn)程,包括用戶(hù)進(jìn)程和系統(tǒng)進(jìn)程,顯示進(jìn)程的詳細(xì)信息和進(jìn)程的詳細(xì)信息,如同4-2所示。</p>&l
41、t;p> 圖4-2任務(wù)管理流程圖</p><p> 圖4-3程序管理流程圖</p><p> 程序管理:列出手機(jī)中安裝的進(jìn)程包括系統(tǒng)程序和用戶(hù)程序,對(duì)程序進(jìn)行管理,例如卸載程序,運(yùn)行程序,分享程序需,如圖4-3所示。</p><p> 病毒查殺:掃描手機(jī)文件,對(duì)比文件MD5值是否與病毒MD5值匹配,查殺病毒,如圖4-4所示。</p>&l
42、t;p> 圖4-4病毒查殺流程圖</p><p> 騷擾攔截:添加刪除黑名單,并更新黑名單數(shù)據(jù)庫(kù),對(duì)黑名單號(hào)碼來(lái)電攔截,如圖4-5所示。</p><p> 圖4-5騷擾攔截流程圖</p><p> 流量查詢(xún):查詢(xún)各個(gè)程序鎖產(chǎn)生的流量,如圖4-6所示。</p><p> 圖4-6流量查詢(xún)流程圖</p><p&
43、gt; 圖4-6程序鎖流程圖</p><p> 高級(jí)工具:備份所有短信、從備份恢復(fù)短信,如圖6-7所示;給程序加鎖,如圖4-6所示;設(shè)置密碼后只有通過(guò)密碼驗(yàn)證才能進(jìn)入相關(guān)程序,提供常用公共服務(wù)電話(huà)號(hào)碼的查詢(xún)。</p><p> 圖4-7短信備份恢復(fù)流程圖</p><p><b> 圖5-1 系統(tǒng)窗體</b></p><
44、;p><b> 5.系統(tǒng)實(shí)現(xiàn)</b></p><p><b> 5.1設(shè)計(jì)主界面</b></p><p> 民情檔案管理系統(tǒng)主頁(yè)面如圖5-1所示:</p><p> 5.2系統(tǒng)各個(gè)模塊功能</p><p> 5.2.1 進(jìn)程管理界面</p><p><b
45、> 如圖5-2所示</b></p><p> 圖5-2 任務(wù)管理界面</p><p> 實(shí)現(xiàn)添加功能的部分代碼如下:</p><p> lv_task_manager.setOnItemClickListener(new OnItemClickListener() {</p><p> public void on
46、ItemClick(AdapterView<?> parent, View view,</p><p> int position, long id) {</p><p> Object obj = lv_task_manager.getItemAtPosition(position);</p><p> if (obj instanceof Ta
47、skInfo) {</p><p> TaskInfo taskinfo = (TaskInfo) obj;</p><p> String packname = taskinfo.getPackname();</p><p> CheckBox cb = (CheckBox) view</p><p> .findViewById(
48、R.id.cb_task_checked);</p><p> if ("cn.itcast.mobilesafe".equals(packname)</p><p> || "system".equals(packname)</p><p> || "android.process.media".e
49、quals(packname)) {</p><p> cb.setVisibility(View.INVISIBLE);</p><p><b> return;</b></p><p><b> }</b></p><p> if (taskinfo.isIschecked()) {&l
50、t;/p><p> taskinfo.setIschecked(false);</p><p> // 更改checkbox的狀態(tài)</p><p> cb.setChecked(false);</p><p><b> } else {</b></p><p> taskinfo.setIs
51、checked(true);</p><p> cb.setChecked(true);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> })
52、;</b></p><p> lv_task_manager</p><p> .setOnItemLongClickListener(new OnItemLongClickListener() {</p><p> public boolean onItemLongClick(AdapterView<?> parent,</p&
53、gt;<p> View view, int position, long id) {</p><p> Intent intent = new Intent(TaskManagerActivity.this,</p><p> AppDetailActivity.class);</p><p> MyApplication myapp = (
54、MyApplication) getApplication();</p><p> Object obj = lv_task_manager</p><p> .getItemAtPosition(position);</p><p> if (obj instanceof TaskInfo) {</p><p> TaskInfo
55、taskinfo = (TaskInfo) obj;</p><p> myapp.taskinfo = taskinfo;</p><p> startActivity(intent);</p><p><b> }</b></p><p> return false;</p><p>
56、<b> }</b></p><p><b> });</b></p><p> fillData();</p><p><b> }</b></p><p><b> /**</b></p><p> * 填充list
57、view的數(shù)據(jù)</p><p><b> */</b></p><p> private void fillData() {</p><p> setTitleData();</p><p> ll_task_manager_loading.setVisibility(View.VISIBLE);</p&g
58、t;<p> new Thread() {</p><p><b> @Override</b></p><p> public void run() {</p><p> taskInfoprovider = new TaskInfoProvider(</p><p> TaskManagerA
59、ctivity.this);</p><p> listtaskinfos = taskInfoprovider.getAllTasks(runingappinfos);</p><p> // 通知界面更新數(shù)據(jù)</p><p> totalused = 0; // 所有程序占用的內(nèi)存信息 kb</p><p> for (TaskI
60、nfo taskinfo : listtaskinfos) {</p><p> totalused += taskinfo.getMemorysize();</p><p><b> }</b></p><p> handler.sendEmptyMessage(0);</p><p><b> }&
61、lt;/b></p><p> }.start();</p><p><b> }</b></p><p><b> /**</b></p><p> * 設(shè)置title的數(shù)據(jù)</p><p><b> */</b></p>
62、<p> private void setTitleData() {</p><p> tv_task_count.setText("進(jìn)程數(shù)目: " + getProcessCount());</p><p> tv_avail_memory.setText("剩余內(nèi)存"</p><p> + TextFo
63、rmater.getDataSize(getAvailMemoryInfo()));</p><p><b> }</b></p><p><b> /**</b></p><p> * 獲取當(dāng)前正在運(yùn)行的進(jìn)程的數(shù)目</p><p><b> * </b></p&
64、gt;<p><b> * @return</b></p><p><b> */</b></p><p> private int getProcessCount() {</p><p> runingappinfos = am.getRunningAppProcesses();</p>
65、<p> return runingappinfos.size();</p><p><b> }</b></p><p> private long getAvailMemoryInfo() {</p><p> MemoryInfo outInfo = new ActivityManager.MemoryInfo();
66、</p><p> am.getMemoryInfo(outInfo);</p><p> return outInfo.availMem;</p><p><b> }</b></p><p> public void killTask(View view) {</p><p> in
67、t total = 0;</p><p> int memorysize = 0;</p><p> for (TaskInfo taskinfo : usertaskinfos) {</p><p> if (taskinfo.isIschecked()) {</p><p> memorysize += taskinfo.getM
68、emorysize();</p><p> am.killBackgroundProcesses(taskinfo.getPackname());</p><p> // listtaskinfos.remove(taskinfo);</p><p><b> total++;</b></p><p><b&
69、gt; }</b></p><p><b> }</b></p><p> for (TaskInfo taskinfo : systemtaskinfos) {</p><p> if (taskinfo.isIschecked()) {</p><p> memorysize += taskin
70、fo.getMemorysize();</p><p> am.killBackgroundProcesses(taskinfo.getPackname());</p><p> // listtaskinfos.remove(taskinfo);</p><p><b> total++;</b></p><p>
71、;<b> }</b></p><p><b> }</b></p><p> fillData();</p><p><b> }</b></p><p> public void appSetting(View view) {</p><p&g
72、t; Intent intent = new Intent(this,TaskSettingActivity.class);</p><p> startActivityForResult(intent, 0);</p><p><b> }</b></p><p> private class TaskInfoAdapter exte
73、nds BaseAdapter {</p><p> public TaskInfoAdapter() {</p><p> usertaskinfos = new ArrayList<TaskInfo>();</p><p> systemtaskinfos = new ArrayList<TaskInfo>();</p>
74、<p> for (TaskInfo taskinfo : listtaskinfos) {</p><p> if (taskinfo.isSystemapp()) {</p><p> systemtaskinfos.add(taskinfo);</p><p><b> } else {</b></p>
75、<p> usertaskinfos.add(taskinfo);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 5.2.2程序管理</b>
76、</p><p><b> 第一步:設(shè)計(jì)界面</b></p><p><b> 如圖5-3所示。</b></p><p> 圖5-3 程序管理界面</p><p> 第二步:完成查詢(xún)功能:</p><p><b> 部分代碼如下:</b><
77、;/p><p><b> /**</b></p><p><b> * </b></p><p> * @param flag</p><p> * true 代表的是更新所有的程序 false 代表的是更新用戶(hù)的程序</p><p><b&g
78、t; */</b></p><p> private void initUI(final boolean flag) {</p><p> ll_loading.setVisibility(View.VISIBLE);</p><p> new Thread() {</p><p><b> @Override
79、</b></p><p> public void run() {</p><p> isloading = true;</p><p> if (flag) {</p><p> provider = new AppInfoProvider(AppManagerActivity.this);</p><
80、;p> appinfos = provider.getAllApps();</p><p><b> //</b></p><p> Message msg = new Message();</p><p> msg.what = GET_ALL_APP_FINISH;</p><p> handler.
81、sendMessage(msg);</p><p><b> }else {</b></p><p> provider = new AppInfoProvider(AppManagerActivity.this);</p><p> appinfos = provider.getAllApps();</p><p&g
82、t; userAppinfos = getUserApps(appinfos);</p><p> Message msg = new Message();</p><p> msg.what = GET_USER_APP_FINISH;</p><p> handler.sendMessage(msg);</p><p><b
83、> }</b></p><p><b> }</b></p><p> }.start();</p><p><b> }</b></p><p> switch (v.getId()) {</p><p> case R.id.tv_app_m
84、anager_title:</p><p> tv = (TextView) v;</p><p> titletext = tv.getText().toString();</p><p> if ("所有程序".equals(titletext)) {</p><p> // 切換到用戶(hù)程序</p>
85、<p> tv.setText("用戶(hù)程序");</p><p> // 更新listview的列表</p><p> userAppinfos = getUserApps(appinfos);</p><p> adapter.setAppInfos(userAppinfos);</p><p>
86、 adapter.notifyDataSetChanged();</p><p><b> } else {</b></p><p> // 切換到所有程序</p><p> tv.setText("所有程序");</p><p> adapter.setAppInfos(appinfos);
87、</p><p> adapter.notifyDataSetChanged();</p><p><b> }</b></p><p><b> break;</b></p><p> case R.id.ll_share:</p><p> Log.i(TAG,
88、 "分享" + packname);</p><p> Intent shareIntent = new Intent();</p><p> shareIntent.setAction(Intent.ACTION_SEND);</p><p> // shareIntent.putExtra("android.intent.ex
89、tra.SUBJECT", "分享");</p><p> shareIntent.setType("text/plain");</p><p> // 需要指定意圖的數(shù)據(jù)類(lèi)型</p><p> shareIntent.putExtra(Intent.EXTRA_SUBJECT, "分享")
90、;</p><p> shareIntent.putExtra(Intent.EXTRA_TEXT,</p><p> "推薦你使用一個(gè)程序" + item.getAppname());</p><p> shareIntent = Intent.createChooser(shareIntent, "分享");<
91、/p><p> startActivity(shareIntent);</p><p><b> break;</b></p><p> case R.id.ll_uninstall:</p><p> // 需求不能卸載系統(tǒng)的應(yīng)用程序</p><p> if (item.isSystemA
92、pp()) {</p><p> Toast.makeText(this, "系統(tǒng)應(yīng)用不能被刪除", 0).show();</p><p><b> } else {</b></p><p> Log.i(TAG, "卸載" + packname);</p><p> St
93、ring uristr = "package:" + packname;</p><p> Uri uri = Uri.parse(uristr);</p><p> Intent deleteIntent = new Intent();</p><p> deleteIntent.setAction(Intent.ACTION_DELET
94、E);</p><p> deleteIntent.setData(uri);</p><p> startActivityForResult(deleteIntent, 0);</p><p><b> }</b></p><p><b> break;</b></p>&l
95、t;p> case R.id.ll_start:</p><p> Log.i(TAG, "運(yùn)行" + packname);</p><p> // getPackageManager().queryIntentActivities(intent, flags);</p><p><b> try {</b>&
96、lt;/p><p> PackageInfo info = getPackageManager().getPackageInfo(</p><p><b> packname,</b></p><p> PackageManager.GET_UNINSTALLED_PACKAGES</p><p> | Packag
97、eManager.GET_ACTIVITIES);</p><p> ActivityInfo[] activityinfos = info.activities;</p><p> if (activityinfos.length > 0) {</p><p> ActivityInfo startActivity = activityinfos[0]
98、;</p><p> Intent intent = new Intent();</p><p> intent.setClassName(packname, startActivity.name);</p><p> startActivity(intent);</p><p><b> } else {</b>
99、;</p><p> Toast.makeText(this, "當(dāng)前應(yīng)用程序無(wú)法啟動(dòng)", 0).show();</p><p><b> }</b></p><p> } catch (Exception e) {</p><p> Toast.makeText(this, "應(yīng)用
100、程序無(wú)法啟動(dòng)", 0).show();</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> 5.2.3病毒查殺</b></p><p> 第一步:設(shè)計(jì)病毒查殺</p><p><b
101、> 如圖5-4所示。</b></p><p> 圖5-4 病毒查殺界面</p><p> 第二步:部分代碼如下:</p><p> private void listPackages()</p><p><b> {</b></p><p> ArrayList<
102、;PInfo> apps = getInstalledApps(false);</p><p> final int max = apps.size();</p><p> for (int i = 0; i < max; i++)</p><p><b> {</b></p><p> if(fl
103、ag == false)</p><p><b> {</b></p><p> item = new HashMap<String, Object>();</p><p> item.put("appname", apps.get(i).appname);</p><p> i
104、tem.put("icon", apps.get(i).icon);</p><p> Message message = new Message(); </p><p> message.obj = item; </p><p> progress = i*100/(max-1);</p><p><b
105、> try {</b></p><p> Thread.sleep(50);</p><p> } catch (InterruptedException e) {</p><p> e.printStackTrace();</p><p> } </p><
106、p> mHandler.sendMessage(message); </p><p><b> }</b></p><p><b> else</b></p><p><b> break;</b></p><p><b> }</b&
107、gt;</p><p><b> }</b></p><p> 圖5-5 騷擾攔截界面</p><p><b> 5.2.4騷擾攔截</b></p><p> 第一步:界面設(shè)計(jì),如圖5-5所示。</p><p><b> 第二步:部分代碼</b>
108、;</p><p> public void onCallStateChanged(int state, String incomingNumber) {</p><p> super.onCallStateChanged(state, incomingNumber);</p><p> switch (state) {</p><p>
109、; case TelephonyManager.CALL_STATE_IDLE: // 處于靜止?fàn)顟B(tài): 沒(méi)有呼叫</p><p> endRingTime = System.currentTimeMillis();</p><p> long calltime = endRingTime-firstRingTime;</p><p> Log.i(TAG,
110、"calltime ="+calltime);</p><p> if(firstRingTime<endRingTime && calltime<5000 && calltime >0){</p><p> Log.i(TAG,"響一聲的電話(huà)");</p><p> e
111、ndRingTime = 0;</p><p> firstRingTime = 0;</p><p> // 彈出來(lái)notification 通知用戶(hù)這是一個(gè)騷擾電話(huà)</p><p> showNotification(incomingNumber);</p><p><b> }</b></p>
112、<p> if(view!=null){</p><p> windowmanager.removeView(view);</p><p> view = null;</p><p><b> }</b></p><p> // 再獲取一次系統(tǒng)的時(shí)間 </p><p><
113、;b> break;</b></p><p> case TelephonyManager.CALL_STATE_RINGING: // 零響狀態(tài)</p><p> firstRingTime = System.currentTimeMillis();</p><p> Log.i(TAG,"來(lái)電號(hào)碼為"+ incomi
114、ngNumber);</p><p> // 判斷incomingnumber是否在黑名單中</p><p> if(dao.find(incomingNumber)){</p><p><b> //掛斷電話(huà)</b></p><p> endCall();</p><p> //del
115、eteCallLog(incomingNumber);\</p><p> //注冊(cè)一個(gè)內(nèi)容觀察者 觀察call_log的uri的信息 </p><p> getContentResolver().registerContentObserver(CallLog.Calls.CONTENT_URI, true, new MyObserver(new Handler(),incomingN
116、umber));</p><p><b> }</b></p><p><b> break;</b></p><p> case TelephonyManager.CALL_STATE_OFFHOOK: //接通電話(huà)狀態(tài)</p><p> if(view!=null){</p>
117、<p> windowmanager.removeView(view);</p><p> view = null;</p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p&
118、gt;<p><b> }</b></p><p><b> 5.2.5流量查詢(xún)</b></p><p><b> 第一步:界面設(shè)計(jì)</b></p><p><b> 如圖5-6所示。</b></p><p> 圖5-6 流量查詢(xún)界
119、面</p><p> 第二步:部分代碼如下</p><p> public TrafficAdapter() {</p><p><b> super();</b></p><p> PackageManager pm = getPackageManager();</p><p> In
120、tent intent = new Intent();</p><p> intent.setAction("android.intent.action.MAIN");</p><p> intent.addCategory("android.intent.category.LAUNCHER");</p><p> re
121、sovleInfos = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);</p><p><b> }</b></p><p><b> 5.2.6高級(jí)工具</b></p><p><b> 第一步:界面設(shè)計(jì)<
122、;/b></p><p><b> 如圖5-7所示。</b></p><p> 圖5-7 高級(jí)工具界面</p><p> 第二步:部分代碼如下</p><p> new Thread() {</p><p><b> @Override</b></p&g
123、t;<p> public void run() {</p><p><b> // 開(kāi)啟看門(mén)狗</b></p><p> while (flag) {</p><p><b> try {</b></p><p> // 判斷屏幕是否是鎖屏狀態(tài)</p><
124、;p> if(keyguardManager.inKeyguardRestrictedInputMode()){</p><p><b> //清空臨時(shí)的集合</b></p><p> tempstopapps.clear();</p><p><b> }</b></p><p>
125、 ////lockapps 信息為最新的</p><p> //lockapps = dao.getAllApps();</p><p> // 得到當(dāng)前正在運(yùn)行程序的包名</p><p> // 返回系統(tǒng)里面的任務(wù)棧的信息 , taskinfos的集合里面只有一個(gè)元素</p><p> // 內(nèi)容就是當(dāng)前正在
126、運(yùn)行的進(jìn)程對(duì)應(yīng)的任務(wù)棧</p><p> List<RunningTaskInfo> taskinfos = am.getRunningTasks(1);</p><p> RunningTaskInfo currenttask = taskinfos.get(0);</p><p> // 獲取當(dāng)前用戶(hù)可見(jiàn)的activity 所在的程序的包名&l
127、t;/p><p> String packname = currenttask.topActivity</p><p> .getPackageName();</p><p> Log.i(TAG, "當(dāng)前運(yùn)行" + packname);</p><p> if (lockapps.contains(packname)
128、) {</p><p> // todo : 如果當(dāng)前的應(yīng)用程序 需要臨時(shí)的被終止保護(hù)</p><p> if (tempstopapps.contains(packname)) {</p><p> // return;</p><p> sleep(1000);</p><p><b> con
129、tinue;</b></p><p><b> }</b></p><p> Log.i(TAG, "需要鎖定" + packname);</p><p> // todo 彈出來(lái)一個(gè)鎖定的界面 讓用戶(hù)輸入密碼</p><p> lockappintent.putExtra(&qu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android的手機(jī)衛(wèi)士——畢業(yè)論文
- 基于android的手機(jī)衛(wèi)士——畢業(yè)論文
- android課程設(shè)計(jì)--基于android的手機(jī)安全衛(wèi)士
- Android手機(jī)小衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于android技術(shù)的手機(jī)衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)
- 基于Android平臺(tái)的手機(jī)衛(wèi)士設(shè)計(jì)與實(shí)現(xiàn).pdf
- 《android項(xiàng)目實(shí)戰(zhàn)——手機(jī)安全衛(wèi)士》面試題答案
- 基于Android技術(shù)的手機(jī)衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)論文.doc
- 軟件工程畢業(yè)論文-android手機(jī)衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)
- 手機(jī)安全衛(wèi)士
- 基于Android技術(shù)的手機(jī)衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)工作記錄表格.doc
- 360手機(jī)衛(wèi)士手機(jī)防盜保護(hù)使用指導(dǎo)
- android手機(jī)程序精簡(jiǎn)
- 基于android平臺(tái)的手機(jī)安全衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文說(shuō)明書(shū)】
- 基于android平臺(tái)的手機(jī)安全衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文說(shuō)明書(shū)】
- 基于android平臺(tái)的手機(jī)安全衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文說(shuō)明書(shū)】
- 信息同步系統(tǒng)之手機(jī)安全衛(wèi)士設(shè)計(jì)與實(shí)現(xiàn)——手機(jī)防盜、通訊衛(wèi)士、軟件管理【畢業(yè)論文設(shè)計(jì)】
- android手機(jī)地圖應(yīng)用開(kāi)發(fā)
- android手機(jī)外文翻譯---應(yīng)用程序基礎(chǔ)android developers
- 基于android手機(jī)的寵物游戲
評(píng)論
0/150
提交評(píng)論