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