最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

2023-01-24 20:01 作者:考研保研直通車  | 我要投稿

本科畢業(yè)論文(設(shè)計(jì))開題報(bào)告

1.研究(設(shè)計(jì))目的意義及國內(nèi)外研究狀況和應(yīng)用前景(附參考文獻(xiàn)):(一)選題的目的和意義 Android曾經(jīng)是一家創(chuàng)立于舊金山的公司的名字,該公司于2005年8月份被Google收購,并從此踏上了飛速發(fā)展的道路。經(jīng)過這幾年的發(fā)展,它已經(jīng)發(fā)展成了一個(gè)平臺(tái)、一個(gè)生態(tài)體系。Android是基于Linux核心的開源系統(tǒng)。隨著Android平臺(tái)的不斷完善,它在市場上占有率快速增長,越來越多的手機(jī)廠商開始選擇Android系統(tǒng)作為其主要發(fā)展方向。隨著智能手機(jī)的普及,在使用過程中如何保護(hù)隱私,監(jiān)控流量或是手機(jī)丟了以后怎么辦是用戶普遍關(guān)心的問題。同時(shí)Android平臺(tái)的開放性構(gòu)筑了其軟件生態(tài)的繁榮和多樣性給病毒木馬提供了可乘之機(jī),它們可以通過篡改正常軟件,固件植入,非法獲取高權(quán)限等多種手段入侵手機(jī),普通用戶很難察覺,手機(jī)作為個(gè)人通信工具,每天跟隨用戶,保存了很多個(gè)人隱私,手機(jī)的丟失很容易讓用戶的隱私或個(gè)人信息被別人盜取,這也是目前用戶非常關(guān)心的問題。本畢業(yè)設(shè)計(jì)的目的是開發(fā)一款實(shí)用的基于Android智能終端的安全軟件,對(duì)智能手機(jī)的使用進(jìn)行管理,保障智能手機(jī)的運(yùn)行安全,并且能在一定程度上保護(hù)用戶的隱私,讓用戶能放心地使用Android智能手機(jī)。同時(shí),該軟件的設(shè)計(jì)與實(shí)現(xiàn)也是對(duì)Android應(yīng)用程序開發(fā)知識(shí)的綜合應(yīng)用,可在設(shè)計(jì)和實(shí)現(xiàn)的過程中學(xué)習(xí)掌握Android應(yīng)用開發(fā)的基礎(chǔ)知識(shí)和開發(fā)技術(shù),鍛煉自主學(xué)習(xí)能力,積累開發(fā)經(jīng)驗(yàn),增強(qiáng)發(fā)現(xiàn)問題、解決問題的能力。 (二)選題的研究現(xiàn)狀 隨著移動(dòng)通信技術(shù)的發(fā)展,移動(dòng)終端發(fā)生了巨大的變化,朝著智能化的方向不斷邁進(jìn)。研究機(jī)構(gòu)Gartner 稱,2011年第一季度手機(jī)銷量共計(jì)4.278 億部,較上年同期增長19%,其中智能手機(jī)銷量所占比例為23.6%。該機(jī)構(gòu)稱,2011年第一季度智能手機(jī)銷量較上年同期增長85%。與此同時(shí),移動(dòng)通信網(wǎng)絡(luò)也在不斷演進(jìn),從1G、2G、3G 到LTE,另外就是大量WiFi 熱點(diǎn)的部署以及終端開始普遍支持WiFi,業(yè)務(wù)帶寬瓶頸逐漸緩解。伴隨著終端智能化及網(wǎng)絡(luò)寬帶化的趨勢,移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)層出不窮,日益繁榮。但與此同時(shí),移動(dòng)終端越來越多的涉及商業(yè)秘密和個(gè)人隱私等敏感信息。移動(dòng)終端也面臨各種安全威脅,如惡意訂購、自動(dòng)撥打聲訊臺(tái)、自動(dòng)聯(lián)網(wǎng)等,造成用戶的話費(fèi)損失; 木馬軟件可以控制用戶的移動(dòng)終端,盜取賬戶、監(jiān)聽通話、發(fā)送本地信息等。移動(dòng)終端作為移動(dòng)互聯(lián)網(wǎng)時(shí)代最主要的載體,面臨著嚴(yán)峻的安全挑戰(zhàn)。如今,手機(jī)衛(wèi)士產(chǎn)品主要有幾個(gè)主流軟件商提供,功能五花八門,令用戶眼花繚亂,其實(shí)一些功能對(duì)大多數(shù)用戶來說根本無用,不僅占用手機(jī)資源,而且操作復(fù)雜,用戶體驗(yàn)差,因此開發(fā)一款簡單易用,功能強(qiáng)大的手機(jī)安全衛(wèi)士具有很大的市場潛力。手機(jī)安全軟件是一種可以對(duì)病毒、木馬等一切意境的對(duì)手機(jī)有危害的程序代碼進(jìn)行清除的程序工具,它也是管理安全的軟件程序。目前安全軟件可分為殺毒軟件,系統(tǒng)工具和反流氓軟件。影響手機(jī)安全軟件用戶體驗(yàn)的因素有很多,根據(jù)比達(dá)咨詢(Big Data-Research)數(shù)據(jù)顯示,53.4%的用戶反映安全軟件占內(nèi)存的問題是最影響安全軟件體驗(yàn)的;排名第二的因素是頻繁彈窗,52.1%的用戶反映;有49.3%的用戶認(rèn)為影響手機(jī)運(yùn)行速度是主要因素。(三)應(yīng)用前景為了保障手機(jī)的安全,很多人可能會(huì)在手機(jī)中下載各種手機(jī)安全軟件,沒事就殺殺毒、清理清理內(nèi)存什么的,甚至還能獲取到更多意想不到的手機(jī)功能。隨著手機(jī)上網(wǎng)功能越來越多樣,手機(jī)安全開始受到人們的重視。在評(píng)價(jià)無線安全軟件的發(fā)展前景時(shí),周逵認(rèn)為,隨著中國無線上網(wǎng)人數(shù)的快速增長,以及無線網(wǎng)絡(luò)的應(yīng)用成熟度進(jìn)一步提高,無線網(wǎng)絡(luò)安全意識(shí)更加深入人心,安裝網(wǎng)絡(luò)安全軟件將成為人們上網(wǎng)的一種基本需求,因此未來將有很廣闊的市場需求。與網(wǎng)絡(luò)安全軟件相比,手機(jī)安全軟件有一項(xiàng)明顯的優(yōu)勢,即擁有既定的收費(fèi)渠道。安裝一款安全軟件如下載一首歌曲一樣,需要支付一定的費(fèi)用。而且手機(jī)支付方式靈活多樣,相對(duì)低廉,因此更容易獲得用戶的廣泛訂閱。參考文獻(xiàn):[1] 王家林,王家虎,王家俊.Android項(xiàng)目實(shí)戰(zhàn):手機(jī)安全軟件開發(fā)案例解析[M].北京:電子工業(yè)出版社,2013. [2] Lauren Darcey,Shane Conder.Android移動(dòng)開發(fā)一本就夠[M].張巍等,譯.人民郵電出版社,2012. [3] 楊建強(qiáng),吳釗,李學(xué)鋒.增強(qiáng)智能手機(jī)安全的動(dòng)態(tài)惡意軟件分析系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì).2010[13]. [4] Herbert Schildt著,周志彬等譯.Java2參考大全[M].北京:電子工業(yè)出 版社,2003[5] 宋杰.Android OS手機(jī)平臺(tái)的安全機(jī)制分析和應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展.2010[6]. [6] 2011年中國手機(jī)安全狀況報(bào)告.[EB/OL].[2011-08-11].?wenku.baidu.com/view/?577ef96faf1ffc4ffe47ac4e.html. [7] 沈澤剛,秦玉平.Java語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010[8]智研咨詢集團(tuán),2017-2022年中國手機(jī)安全軟件行業(yè)分析及未來發(fā)展趨勢報(bào)告,2016年11月chyxx.com/research/20162.主要內(nèi)容、研究方法和思路主要內(nèi)容: 設(shè)計(jì)的目標(biāo)是實(shí)現(xiàn)一個(gè)手機(jī)安全助手的系統(tǒng),要求利用Android的四大組件:Activity、Service、BroadCastReceiver、ContentProvider,采用MVC設(shè)計(jì)模式。采用JAVA為編輯語言,利用MYSQL數(shù)據(jù)庫為系統(tǒng)提供數(shù)據(jù)支持。本項(xiàng)目所實(shí)現(xiàn)的功能模塊主要包含以下幾個(gè):軟件管理模塊,顯示所有軟件、卸載軟件、啟動(dòng)軟件、分享軟件四個(gè)子模塊。進(jìn)程管理模塊,顯示所有正在運(yùn)行的進(jìn)程和剩余內(nèi)存、一鍵清理兩個(gè)子模塊;流量統(tǒng)計(jì)模塊,顯示軟件消耗的流量;手機(jī)殺毒模塊,檢測病毒、清除病毒兩個(gè)子模塊;系統(tǒng)優(yōu)化模塊,緩存清理、SD卡清理兩個(gè)子模塊;高級(jí)工具模塊,手機(jī)號(hào)碼歸屬地查詢、常用號(hào)碼查詢、備份短信、還原短信、程序鎖五個(gè)子模塊;設(shè)置中心模塊,自動(dòng)更新設(shè)置、來電歸屬地顯示設(shè)置、黑名單攔截設(shè)置、程序鎖設(shè)置、歸屬地提示框風(fēng)格、歸屬地提示框位置六個(gè)子模塊。當(dāng)然最實(shí)用的功能有手機(jī)防盜模塊,針對(duì)Android手機(jī)丟失后或被有意竊取我們手機(jī)中的隱私信息等安全隱患,設(shè)計(jì)了當(dāng)我們第一次登錄安全助手的時(shí)候,需判斷當(dāng)前SIM卡號(hào)是否和被保護(hù)的SIM卡號(hào)是否相同,如果不相同,則手機(jī)將在后臺(tái)自動(dòng)發(fā)送短信給我們綁定的安全號(hào)碼,那么我們的手機(jī)就會(huì)大大提高了安全性。還有一個(gè)是通訊衛(wèi)士模塊,此模塊有攔截電話,攔截短信,全部攔截這三大功能,我們可以根據(jù)用戶的選擇從而攔截電話或者短信,避免用戶受到騷擾。研究方法和思路: 首先,我們先通過訪談?wù){(diào)查法,通過對(duì)一些使用Android手機(jī)的人群進(jìn)行問卷調(diào)查和走訪,統(tǒng)計(jì)分析他們使用手機(jī)存在的問題,收集回來以后,我們采用對(duì)比分析法,對(duì)比Android和IOS系統(tǒng)用戶使用的問題進(jìn)行對(duì)比,以從而設(shè)計(jì)系統(tǒng)。其次,我們通過文獻(xiàn)調(diào)研法,通過強(qiáng)大的互聯(lián)網(wǎng)平臺(tái)手機(jī)一些開發(fā)此系統(tǒng)的相關(guān)資料,我們采用數(shù)據(jù)分析法,在通過對(duì)實(shí)地調(diào)研和網(wǎng)絡(luò)搜集到的大量數(shù)據(jù)進(jìn)行分析之后,我們可以初步的設(shè)計(jì)出雛形。最后,通過階段總結(jié)法,根據(jù)問題的研究方向和實(shí)際可行性選擇我們系統(tǒng)的運(yùn)行環(huán)境,系統(tǒng)模塊和數(shù)據(jù)庫的選擇。經(jīng)過系統(tǒng)的分析,該軟件總體上是有一個(gè)主界面和主界面上的一些模塊組成,在主界面上包含手機(jī)防盜、通訊衛(wèi)士、軟件管理、進(jìn)程管理、流量統(tǒng)計(jì)、手機(jī)殺毒、系統(tǒng)優(yōu)化、高級(jí)工具以及設(shè)置中心等九個(gè)模塊。該軟件可以對(duì)手機(jī)中的所有軟件進(jìn)行基本的管理,滿足用戶安全性和使用性的要求。手機(jī)防盜模塊通過預(yù)設(shè)密碼判斷手機(jī)是否被盜,如果發(fā)生手機(jī)被盜事件,手機(jī)將自動(dòng)通過自定義協(xié)議發(fā)送手機(jī)中SIM卡信息和手機(jī)的位置信息給安全號(hào)碼。手機(jī)防盜的核心是通過建立Android下的super管理員功能,能遠(yuǎn)程通過短信指令,對(duì)手機(jī)設(shè)置鎖屏密碼,遠(yuǎn)程鎖定手機(jī)屏幕,遠(yuǎn)程格式化手機(jī)內(nèi)存卡,恢復(fù)出廠設(shè)置,而且用戶也不能卸載軟件,能極大的保護(hù)用戶的隱私安全。如發(fā)生手機(jī)被盜事件,super管理員通過安全手機(jī)發(fā)送預(yù)設(shè)指令控制被綁定的手機(jī),從而鎖定手機(jī)或者銷毀數(shù)據(jù)。手機(jī)殺毒的實(shí)現(xiàn)需要先用PackageManager遍歷手機(jī)上的所有程序,將掃描到的包名以及數(shù)字簽名魚數(shù)據(jù)庫中的病毒對(duì)比,發(fā)現(xiàn)相同的就視為病毒,彈出刪除病毒的界面將其殺死,完成后,返回手機(jī)殺毒的界面。最終,此系統(tǒng)將會(huì)保護(hù)用戶的個(gè)人隱私,再也不會(huì)因?yàn)殡[私泄露而擔(dān)心了,并且也遠(yuǎn)離收費(fèi)電話,垃圾短信,電話和短信詐騙的騷擾,再也不擔(dān)心頑固病毒的侵入。

基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

論文提綱材料

1.研究意義

(1) 木馬和病毒肆虐

對(duì)于手機(jī)上網(wǎng)用戶來說,手機(jī)功能將越來越為豐富,手機(jī)平臺(tái)越來越為開放,這些都給黑客帶來了可乘之機(jī),各種形形色色的手機(jī)病毒都將日益浮出水面。而且手機(jī)天生具有方便的收費(fèi)、繳費(fèi)渠道,惡意軟件駐留手機(jī)終端將給用戶帶來直接的經(jīng)濟(jì)損失,尤其還有像手機(jī)支付、手機(jī)錢包、手機(jī)證券等存在潛在巨大利益的手機(jī)應(yīng)用,也更是的其容易成為黑客攻擊的目標(biāo)。

  1. 侵犯用戶個(gè)人隱私權(quán) 我們每個(gè)人都想有自己的隱私空間,比方說有的時(shí)候我們需要將自己的手機(jī)借給弟弟妹妹玩的時(shí)候,這時(shí)我們就不想讓他人看到自己的隱私信息。 (3)層出不窮的垃圾短信和騷擾電話 來自中國互聯(lián)網(wǎng)協(xié)會(huì)的調(diào)查數(shù)據(jù)顯示,目前國內(nèi)手機(jī)用戶平均每周收到8.29條垃圾短信[3],其中包括房地產(chǎn)廣告、色情信息以及不法分子利用短信制造的騙局。

  2. 防范手段 (1) 通訊加密 針對(duì)隱私泄露,業(yè)界目前普遍采用加密的方法來解決。對(duì)短信和通話記錄進(jìn)行加密,并且還可以設(shè)置多種訪問策略和情景模式,以保障隱私內(nèi)容不會(huì)輕易被他人偷窺。 (2) 媒體曝光 垃圾、詐騙、騷擾短信和電話是手機(jī)獨(dú)有的安全問題,其造成的惡劣影響,媒體已經(jīng)多次報(bào)道,并提醒用戶注意提防。 (3) 安裝安全軟件 此保護(hù)手機(jī)方式也是最常用的防范措施,便捷、高效,但是也存在一些問題,隨著互聯(lián)網(wǎng)時(shí)代的快速發(fā)展,市面上的手機(jī)安全軟件泛濫,也導(dǎo)致普通人們無法選擇一款實(shí)用又安心的軟件。同時(shí),手機(jī)安全問題涉及到運(yùn)營商、手機(jī)制造商、手機(jī)安全軟件廠商及用戶等諸多層面,只有在這條產(chǎn)業(yè)鏈上各個(gè)環(huán)節(jié)的參與者密切配合才行。

  3. 實(shí)現(xiàn)思路

3.1 手機(jī)防盜

根據(jù)預(yù)設(shè)參數(shù),判斷手機(jī)是否被盜,根據(jù)自定義協(xié)議發(fā)送手機(jī)中sim卡的信息和手機(jī)的位置信息給安全號(hào)碼。

3.2 通訊衛(wèi)士

通過添加黑名單,對(duì)其來電黑名單/短信黑名單管理。保護(hù)以下三個(gè)功能:攔截電話,用戶在我們的添加黑名單的頁面添加一條黑名單,那么我們后臺(tái)將會(huì)攔截到此號(hào)碼來電,直接掛掉,避免用戶受到騷擾電話;攔截短信,用戶添加一個(gè)黑名單的號(hào)碼,當(dāng)這個(gè)號(hào)碼發(fā)來信息的時(shí)候,后臺(tái)將此短信進(jìn)行刪除,從而用戶就看不到垃圾信息;全部攔截,用戶添加的所有號(hào)碼,不管是來電還是短信,用戶都不會(huì)看到。

3.3 軟件管理

管理系統(tǒng)軟件和本地軟件,可以顯示軟件的詳細(xì)信息,啟動(dòng),刪除應(yīng)用程序。程序鎖可以指定保護(hù)的程序,手機(jī)鎖屏在解屏后,用戶第一次進(jìn)入要保護(hù)的程序之前必須輸入密碼。

3.4 任務(wù)管理

顯示當(dāng)前系統(tǒng)運(yùn)行的進(jìn)程信息,顯示系統(tǒng)內(nèi)存信息,可以殺死進(jìn)程,批量殺死進(jìn)程。

3.5 手機(jī)殺毒

從服務(wù)器下載最新的病毒庫,根據(jù)程序的報(bào)名和程序的數(shù)字簽名識(shí)別病毒,提示用戶并查殺,是惡意軟件。

3.6 系統(tǒng)優(yōu)化

由于Android手機(jī)的內(nèi)存有限,平時(shí)我們使用手機(jī)的時(shí)候就會(huì)很卡,嚴(yán)重的影響了正常使用。清理手機(jī)緩存,提高手機(jī)性能,優(yōu)化電池管理。

3.7 高級(jí)工具

給用戶提供手機(jī)號(hào)碼歸屬地查詢,還有一些實(shí)用的常用號(hào)碼查詢。

4.進(jìn)一步工作

目前為止, 此系統(tǒng)的功能基本上都實(shí)現(xiàn)了,但是在一些功能中仍存在不完善之處,例如手機(jī)防盜模塊沒有實(shí)現(xiàn)每次手機(jī)重啟完畢后調(diào)用系統(tǒng)前置攝像頭拍照以便手機(jī)丟失后獲取小偷的長相、沒有加入第三方平臺(tái)用戶登錄、沒有編寫后臺(tái)管理系統(tǒng)上傳和恢復(fù)用戶數(shù)據(jù)、遠(yuǎn)程鎖定手機(jī)屏幕,遠(yuǎn)程格式化手機(jī)sd卡,恢復(fù)出廠設(shè)置等。

畢設(shè)論文

目 錄1 引言31.1研究背景31.2研究現(xiàn)狀31.3研究內(nèi)容41.4論文結(jié)構(gòu)42 系統(tǒng)設(shè)計(jì)52.1搭建Android開發(fā)環(huán)境52.2系統(tǒng)模塊總體設(shè)計(jì)52.2.1 手機(jī)防盜模塊設(shè)計(jì)62.2.2 通訊衛(wèi)士模塊設(shè)計(jì)72.2.3 軟件管理模塊設(shè)計(jì)82.2.4 進(jìn)程管理模塊設(shè)計(jì)82.2.5 系統(tǒng)優(yōu)化模塊設(shè)計(jì)92.2.6 程序鎖模塊設(shè)計(jì)92.2.7 手機(jī)殺毒模塊設(shè)計(jì)103系統(tǒng)實(shí)現(xiàn)113.1系統(tǒng)優(yōu)化模塊113.1.1更新軟件功能實(shí)現(xiàn)113.1.2清除緩存功能實(shí)現(xiàn)123.2手機(jī)防盜模塊133.3程序鎖模塊153.4病毒查殺模塊183.5通訊衛(wèi)士模塊193.6軟件管理模塊213.7號(hào)碼歸屬地模塊223.8設(shè)置中心模塊244 系統(tǒng)測試264.1 測試目的以及原因264.2 軟件測試原則264.3 常用測試264.4 測試實(shí)現(xiàn)265 總結(jié)28參考文獻(xiàn)29附錄30致謝37

基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

學(xué)生:xxx (指導(dǎo)老師:xx)

(xxx學(xué)院計(jì)算機(jī)學(xué)院)

摘 要:自智能手機(jī)普及開始, Android系統(tǒng)更新迭代速度較快,由于其自身代碼的開源性,難以從根本上杜絕惡意程序,致使Android系統(tǒng)漏洞不斷出現(xiàn)。Android設(shè)備承載著億萬手機(jī)用戶的生產(chǎn)生活,漏洞的存在可能為用戶帶來個(gè)人隱私泄露、財(cái)產(chǎn)損失等安全隱患。而隨著各種系統(tǒng)漏洞的不斷披露,人們發(fā)現(xiàn)Android設(shè)備的安全生態(tài)狀況不容樂觀。本助手是一款基于Android平臺(tái),使用Java語言編寫,嚴(yán)格遵守MVC模式設(shè)計(jì)的手機(jī)安全助手。主要實(shí)現(xiàn)的功能模塊有手機(jī)防盜、通訊衛(wèi)士、軟件管理、進(jìn)程管理、隱私保護(hù)、手機(jī)殺毒、系統(tǒng)優(yōu)化、歸屬地顯示功能等,為手機(jī)提供安全保護(hù)。

關(guān)鍵詞:程序鎖;java;手機(jī)安全;MVC模式

Design and implementation of mobile security assistant based on Android platform

Student: xxx (Faculty Adviser: xxx)

(School of Computer Science,xxx University)

Abstract:Since the popularity of smart phones, Android system updates the speed of iteration faster, because of its own code is relatively open, it is difficult to fundamentally eliminate malicious programs, resulting in Android system vulnerabilities. Android equipment carries hundreds of millions of mobile phone users’ production and life. The existence of loopholes may bring users privacy risks such as personal privacy leakage and property loss. With the continuous disclosure of various system vulnerabilities, it is found that the safety and ecological condition of Android devices is not optimistic.This assistant is a mobile phone security assistant based on Android platform, which is written in Java language and strictly adhered to MVC mode. The main functional modules are mobile phone anti-theft, communication guard, software management, process management, privacy protection, cell phone killing, system optimization, and home display function and so on.

Keywords:?Program lock; Java; mobile security; MVC mode

1 引言

1.1研究背景

Android曾經(jīng)是一家創(chuàng)立于舊金山的公司的名字,該公司于2005年8月份被Google收購,并從此踏上了飛速發(fā)展的道路。經(jīng)過這幾年的發(fā)展,它已經(jīng)發(fā)展成了一個(gè)平臺(tái)、一個(gè)生態(tài)體系。Android是基于Linux核心的開源系統(tǒng)。隨著Android平臺(tái)的不斷完善,它在市場上占有率快速增長,越來越多的手機(jī)廠商開始選擇Android系統(tǒng)作為其主要發(fā)展方向。隨著智能手機(jī)的普及,在使用過程中如何保護(hù)隱私,監(jiān)控流量或是手機(jī)丟了以后怎么辦是用戶普遍關(guān)心的問題。同時(shí)Android平臺(tái)的開放性構(gòu)筑了其軟件生態(tài)的繁榮和多樣性給病毒木馬提供了可乘之機(jī),它們可以通過篡改正常軟件,固件植入,非法獲取高權(quán)限等多種手段入侵手機(jī),普通用戶很難察覺,手機(jī)作為個(gè)人通信工具,每天跟隨用戶,保存了很多個(gè)人隱私,手機(jī)的丟失很容易讓用戶的隱私或個(gè)人信息被別人盜取,這也是目前用戶非常關(guān)心的問題。

1.2研究現(xiàn)狀

隨著移動(dòng)通信技術(shù)的發(fā)展,移動(dòng)終端發(fā)生了巨大的變化,朝著智能化的方向不斷邁進(jìn)。研究機(jī)構(gòu)Gartner 稱,2011年第一季度手機(jī)銷量共計(jì)4.278 億部,較上年同期增長19%,其中智能手機(jī)銷量所占比例為23.6%。該機(jī)構(gòu)稱,2011年第一季度智能手機(jī)銷量較上年同期增長85%。與此同時(shí),移動(dòng)通信網(wǎng)絡(luò)也在不斷演進(jìn),從1G、2G、3G 到LTE,另外就是大量WiFi 熱點(diǎn)的部署以及終端開始普遍支持WiFi,業(yè)務(wù)帶寬瓶頸逐漸緩解。

伴隨著終端智能化及網(wǎng)絡(luò)寬帶化的趨勢,移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)層出不窮,日益繁榮。但與此同時(shí),移動(dòng)終端越來越多的涉及商業(yè)秘密和個(gè)人隱私等敏感信息。移動(dòng)終端也面臨各種安全威脅,如惡意訂購、自動(dòng)撥打聲訊臺(tái)、自動(dòng)聯(lián)網(wǎng)等,造成用戶的話費(fèi)損失;馬軟件可以控制用戶的移動(dòng)終端,盜取賬戶、監(jiān)聽通話、發(fā)送本地信息等。移動(dòng)終端作為移動(dòng)互聯(lián)網(wǎng)時(shí)代最主要的載體,面臨著嚴(yán)峻的安全挑戰(zhàn)。

如今,手機(jī)衛(wèi)士產(chǎn)品主要有幾個(gè)主流軟件商提供,功能五花八門,令用戶眼花繚亂,其實(shí)一些功能對(duì)大多數(shù)用戶來說根本無用,不僅占用手機(jī)資源,而且操作復(fù)雜,用戶體驗(yàn)差,因此開發(fā)一款簡單易用,功能強(qiáng)大的手機(jī)安全衛(wèi)士具有很大的市場潛力。手機(jī)安全軟件是一種可以對(duì)病毒、木馬等一切意境的對(duì)手機(jī)有危害的程序代碼進(jìn)行清除的程序工具,它也是管理安全的軟件程序。目前安全軟件可分為殺毒軟件,系統(tǒng)工具和反流氓軟件。

1.3研究內(nèi)容

本次畢業(yè)設(shè)計(jì)主要想開發(fā)出一套Android平臺(tái)的安全助手,本系統(tǒng)對(duì)手機(jī)安全問題和手機(jī)管理有著很好的支持。該助手目前實(shí)現(xiàn)的有手機(jī)防盜功能:我們可以通過我們當(dāng)時(shí)綁定的手機(jī)號(hào)碼進(jìn)行防盜,也可以通過GPS進(jìn)行追蹤;軟件管理:應(yīng)用的列表展示,應(yīng)用的卸載,運(yùn)行與分享等;通訊管理:此功能可以設(shè)置黑名單避免用戶受到干擾;程序鎖:此功能可以的將一些不想讓他人看到的程序進(jìn)行加鎖;進(jìn)程管理:顯示所有運(yùn)行進(jìn)程列表和內(nèi)存占用大小,選中的進(jìn)程進(jìn)行一鍵清理;關(guān)于我們:我們可以將我們的客服聯(lián)系方式留在上面。

1.4論文結(jié)構(gòu)

本文的第一部分我們介紹了本次系統(tǒng)的研究背景,現(xiàn)狀,內(nèi)容,和本文結(jié)構(gòu);第二部分我們主要講述了Android的一些相關(guān)技術(shù)和環(huán)境的搭建;第三部分系統(tǒng)設(shè)計(jì),主要的是設(shè)計(jì)與分析本系統(tǒng)的功能模塊;第四部分系統(tǒng)實(shí)現(xiàn),主要的是實(shí)現(xiàn)本系統(tǒng)的功能模塊和實(shí)現(xiàn)步驟;第五部分系統(tǒng)測試,主要的是針對(duì)我們的系統(tǒng)進(jìn)行測試并完善;最后一部分是總結(jié)系統(tǒng)完成怎么樣,有什么缺陷等。

2 系統(tǒng)設(shè)計(jì)

2.1搭建Android開發(fā)環(huán)境

1.安裝并配置JDK:到官網(wǎng)下載jdk文件,根據(jù)自己的操作系統(tǒng)選擇適合的位數(shù)的JDK,下載完畢之后我們配置環(huán)境變量,先設(shè)置JAVA_HOME這個(gè)系統(tǒng)變量名稱,變量值為JDK在你電腦上的安裝路徑,如:E:\ProgramFiles\Java\jdk1.7.0_75,然后在PATH屬性變量后加:;%JAVA_HOME%\bin即可。

2.安裝配置Android SDK:為了免去安裝步驟,我們選擇下載SDK的壓縮包,點(diǎn)擊【android-sdk_r24.0.2-windows.zip】這個(gè)超鏈接,進(jìn)行下載,下載完畢之后我們對(duì)其解壓,雙擊SDK Manager.exe進(jìn)行安裝即可。

3.下載ADT插件:為了使得Android應(yīng)用的創(chuàng)建,運(yùn)行和調(diào)試更加方便快捷,Android的開發(fā)團(tuán)隊(duì)專門針對(duì)Eclipse IDE定制了一個(gè)插件:Android Development Tools(ADT)。

4.下載安裝Eclipse2.2 Eclipse 中的Android工程結(jié)構(gòu)如1圖:

圖 1 Android工程結(jié)構(gòu)圖

2.2系統(tǒng)模塊總體設(shè)計(jì)

開發(fā)環(huán)境準(zhǔn)備好以后,我們需要將系統(tǒng)的總體的模塊設(shè)計(jì)出來,整體項(xiàng)目綜合運(yùn)用Android知識(shí)點(diǎn),MVC框架構(gòu)建項(xiàng)目,本項(xiàng)目所實(shí)現(xiàn)的功能模塊主要包含以下幾個(gè):手機(jī)防盜模塊,SIM卡變更報(bào)警、GPS追蹤、遠(yuǎn)程銷毀數(shù)據(jù)、遠(yuǎn)程鎖閉手機(jī)四個(gè)子模塊;通信衛(wèi)士模塊,黑名單管理、電話攔截、短信攔截三個(gè)子模塊;軟件管理模塊,顯示所有軟件、卸載軟件、啟動(dòng)軟件、分享軟件四個(gè)子模塊。進(jìn)程管理模塊,顯示所有正在運(yùn)行的進(jìn)程和剩余內(nèi)存、一鍵清理兩個(gè)子模塊;流量統(tǒng)計(jì)模塊,顯示軟件消耗的流量;手機(jī)殺毒模塊,檢測病毒、清除病毒兩個(gè)子模塊;系統(tǒng)優(yōu)化模塊,緩存清理、SD卡清理兩個(gè)子模塊;高級(jí)工具模塊,手機(jī)號(hào)碼歸屬地查詢、常用號(hào)碼查詢、備份短信、還原短信、程序鎖五個(gè)子模塊;設(shè)置中心模塊,自動(dòng)更新設(shè)置、來電歸屬地顯示設(shè)置、黑名單攔截設(shè)置、程序鎖設(shè)置、歸屬地提示框風(fēng)格、歸屬地提示框位置六個(gè)子模塊。通過需求分析和系統(tǒng)可行性設(shè)計(jì)出來系統(tǒng)模塊總設(shè)計(jì)如2圖:

圖 2系統(tǒng)模塊圖

2.2.1 手機(jī)防盜模塊設(shè)計(jì)

針對(duì)Android手機(jī)丟失后或被有意竊取我們手機(jī)中的隱私信息等安全隱患,我們將設(shè)計(jì)出此功能。

綁定安全手機(jī)號(hào)碼:當(dāng)我們第一次登錄安全助手的時(shí)候,需判斷當(dāng)前SIM卡號(hào)是否和被保護(hù)的SIM卡號(hào)是否相同,如果不相同,則手機(jī)將在后臺(tái)自動(dòng)發(fā)送短信給我們綁定的安全號(hào)碼,那么我們的手機(jī)就會(huì)大大提高了安全性。

設(shè)置報(bào)警指令:當(dāng)我們首次登錄安全助手時(shí),如果匹配到當(dāng)前手機(jī)可能遺失,那么這個(gè)功能就會(huì)給我們自動(dòng)報(bào)警。

設(shè)置遠(yuǎn)程開啟防盜指令:開啟遠(yuǎn)程手機(jī)防盜功能,用一個(gè)廣播接收監(jiān)聽手機(jī)的啟動(dòng)狀態(tài),啟動(dòng)完將判斷遠(yuǎn)程防盜是否開啟,并且用TelephonyManager的getSimSerialNumber()方法獲取到手機(jī)的SIM卡串號(hào),對(duì)比手機(jī)串號(hào)是否一致,從而顯示手機(jī)有沒有被盜。

設(shè)置遠(yuǎn)程鎖屏密碼:當(dāng)判斷手機(jī)已經(jīng)被盜,那么我們的后臺(tái)將會(huì)啟動(dòng)一個(gè)鎖屏程序?qū)⑹謾C(jī)進(jìn)行鎖屏。

2.2.2 通訊衛(wèi)士模塊設(shè)計(jì)

攔截電話:用戶在我們的添加黑名單的頁面添加一條黑名單,那么我們后臺(tái)將會(huì)攔截到此號(hào)碼來電,直接掛掉,避免用戶受到騷擾電話。

攔截短信:用戶添加一個(gè)黑名單的號(hào)碼,當(dāng)這個(gè)號(hào)碼發(fā)來信息的時(shí)候,后臺(tái)將此短信進(jìn)行刪除,從而用戶就看不到垃圾信息。

全部攔截:用戶添加的所有號(hào)碼,不管是來電還是短信,用戶都不會(huì)看到。

添加黑名單業(yè)務(wù)流程如3圖:

圖 3添加黑名單圖

通過手機(jī)號(hào)碼進(jìn)行過濾用戶設(shè)置的黑名單,將不想看到的手機(jī)來電和手機(jī)短信進(jìn)行過濾,數(shù)據(jù)庫設(shè)計(jì)表如4圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖 4黑名單數(shù)據(jù)表圖

黑名單表中的字段:id為主鍵;number為手機(jī)號(hào)碼;status為攔截的狀態(tài)

2.2.3 軟件管理模塊設(shè)計(jì)

當(dāng)今的手機(jī)應(yīng)用數(shù)不勝數(shù),但同時(shí)又面臨了一個(gè)問題,比如當(dāng)我們遇到急事,想使用QQ的時(shí)候,但是我們手機(jī)上的應(yīng)用多達(dá)過百,找了半天又找不到。此功能就是解決類似的問題,我們可以啟動(dòng)某個(gè)應(yīng)用程序,卸載一些不用的軟件,可以將我們想用的程序分享給小伙伴。軟件管理如5圖:

圖 5軟件管理圖

2.2.4 進(jìn)程管理模塊設(shè)計(jì)

當(dāng)前Android手機(jī)有一致命的缺點(diǎn)就是內(nèi)存大小,如果我們點(diǎn)了很多的程序不關(guān)那么我們手機(jī)將卡的不動(dòng),正因?yàn)檫@樣,我們Android的性能就大大降低了。那些我們暫時(shí)不需要的軟件我們就可以將它關(guān)閉,釋放內(nèi)存,此功能可以將內(nèi)存信息以及運(yùn)行中進(jìn)程詳細(xì)信息展示給用戶,然后用戶自如的終止某個(gè)程序。因此,我們設(shè)計(jì)出此功能,設(shè)計(jì)流程如6圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖 6進(jìn)程模塊圖

2.2.5 系統(tǒng)優(yōu)化模塊設(shè)計(jì)

我們都使用過Android手機(jī),如果我們手機(jī)打開的應(yīng)用過多或者長時(shí)間不關(guān)機(jī),那么我們的手機(jī)很可能就會(huì)卡住。那是因?yàn)橛捎贏ndroid手機(jī)的內(nèi)存有限,那么我們就需要將不定時(shí)的清除手機(jī)中的緩存數(shù)據(jù),此功能將打開系統(tǒng)自帶的查看應(yīng)用程序詳情,進(jìn)行緩存清除。還有一個(gè)優(yōu)化是我們第一次進(jìn)入系統(tǒng)的時(shí)候,我們寫的監(jiān)聽器就會(huì)監(jiān)聽軟件服務(wù)器看是否有新的軟件更新,如果有,那么我們將提醒我們的用戶將軟件進(jìn)行更新升級(jí),以免功能不能使用等一些BUG。

2.2.6 程序鎖模塊設(shè)計(jì)

我們每個(gè)人都想有自己的隱私空間,比方說有的時(shí)候我們需要將自己的手機(jī)借給弟弟妹妹玩的時(shí)候,這時(shí)我們就不想讓他人看到自己的隱私,那么此功能可以將我們的一些程序上鎖,比如短信,通訊錄和短信等,那么其他人就不能使用這些功能,做到了保護(hù)用戶隱私的功能。用戶再也不需要給屏幕加密碼鎖,只需要給需要保護(hù)的程序上鎖即可,當(dāng)?shù)谝淮问褂蒙湘i的程序的時(shí)候才會(huì)要我們輸入密碼,只有當(dāng)下次鎖屏完之后我們就再需要解鎖了。數(shù)據(jù)庫表設(shè)計(jì)如7圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖 7程序鎖定數(shù)據(jù)庫表

2.2.7 手機(jī)殺毒模塊設(shè)計(jì)

手機(jī)殺毒功能也是我們平時(shí)最常用的應(yīng)用程序,我們需要將市場上收集的病毒建一張表進(jìn)行數(shù)據(jù)庫存儲(chǔ),下面我們稱作病毒表,我們將手機(jī)程序掃描出來和病毒表里的病毒進(jìn)行一一比對(duì),如果比對(duì)上那么就是病毒,這邊即將采用多線程進(jìn)行清除工作,如果我們沒有比對(duì)到病毒,那么手機(jī)是暫時(shí)安全的狀態(tài)。手機(jī)病毒比對(duì)并進(jìn)行查殺如8圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖 8查殺病毒流程圖

3系統(tǒng)實(shí)現(xiàn)

3.1系統(tǒng)優(yōu)化模塊

3.1.1更新軟件功能實(shí)現(xiàn)

該模塊先是我們第一次進(jìn)入系統(tǒng)的時(shí)候,我們的監(jiān)聽器就會(huì)第一時(shí)間監(jiān)聽中央服務(wù)器的軟件是否發(fā)布過,如果發(fā)布過新的版本,那么用戶的界面就會(huì)彈出一個(gè)提醒用戶更新軟件的信息。用戶可以選擇暫時(shí)不更新,那么這個(gè)操作就有可能會(huì)影響后續(xù)的軟件使用問題,也可以選擇立即更新。其設(shè)計(jì)是我們先上傳最新版本的系統(tǒng),當(dāng)檢測出有新的版本可以升級(jí)時(shí),我們在onClick方法中獲取到下載新的軟件的網(wǎng)路地址即可,主要代碼如下:

private void downloadApk(String downloadUrl) {

if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

Toast.makeText(this, “不存在sdcard”, Toast.LENGTH_SHORT).show();

return;

}

HttpUtils httpUtils = new HttpUtils();

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + “/mobileSafe.apk”;

httpUtils.download(downloadUrl, path, new RequestCallBack<File>() {

@Override

public void onSuccess(ResponseInfo<File> responseInfo) {

Log.i(TAG_LOG, “成功—>” + responseInfo.result.getAbsolutePath());

installApk(responseInfo.result.getAbsolutePath());

}

軟件更新提醒如9圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖9提醒更新界面圖

當(dāng)用戶選擇更新我們系統(tǒng),那么將會(huì)出現(xiàn)這樣的界面,如10圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖10正在更新軟件

3.1.2清除緩存功能實(shí)現(xiàn)

正如我們知道的那樣,我們使用某些應(yīng)用程序的時(shí)候就會(huì)有一些不必要的文件下載到手機(jī)上來,比如說我們使用瀏覽器瀏覽網(wǎng)頁的時(shí)候,我們并不想一些沒用的圖片下載下來,但是手機(jī)就會(huì)緩存下來,此功能有一鍵清除緩存的功能。如11圖:

圖11清除緩存頁面

3.2手機(jī)防盜模塊

當(dāng)我們第一次打開軟件的時(shí)候,這時(shí)候我們將必須進(jìn)入手機(jī)防盜模塊的綁定安全號(hào)碼,當(dāng)我們的手機(jī)遺失的時(shí)候,我們將通過這個(gè)號(hào)碼就能找到我們的手機(jī),如果別人撿到此手機(jī),插入的手機(jī)卡跟我們設(shè)置的手機(jī)號(hào)不一致的時(shí)候,此手機(jī)將會(huì)自動(dòng)啟動(dòng)我們的鎖屏。其設(shè)計(jì)是使用系統(tǒng)服務(wù)TelephonyManager讀取手機(jī)卡的序列號(hào),我們將安全號(hào)碼輸入以后,我們需要?jiǎng)?chuàng)建BootPhoneReceiver監(jiān)聽手機(jī)卡是否會(huì)變,其部分代碼:

@Override

public void onReceive(Context context, Intent intent) {

String number = PrefUtils.getString(BaseActivity.PREF_BIND_SIM,””,context);

if(!TextUtils.isEmpty(serialNumber)){

TelephonyManager tm = (TelephonyManager)context.getSystemService(

Context.TELEPHONY_SERVICE);

String simSerialNumber = tm.getSimSerialNumber();

if(serialNumber.equals(simSerialNumber)){

Log.i(BaseActivity.TAG_LOG,”手機(jī)正?!?;

}else {

Log.i(BaseActivity.TAG_LOG,”sim卡異常”);

}

}

}

實(shí)現(xiàn)如12圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖12綁定安全號(hào)碼

顯而易見,此安全助手我們也必須加程序鎖,當(dāng)我們進(jìn)入助手的時(shí)候,系統(tǒng)就會(huì)提醒我們輸入程序鎖的密碼,如圖13所示:

圖13應(yīng)用程序主界面密碼認(rèn)證

終于我們進(jìn)入了程序的主頁面,其設(shè)計(jì)是先創(chuàng)建主頁面的Activity和布局文檔,我們自定義一個(gè)adapter繼承父類即可,實(shí)現(xiàn)如圖14所示:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖14程序主頁面

3.3程序鎖模塊

首先,我們先建一張程序鎖表,我們使用的是SQLite數(shù)據(jù)庫,那么寫的類就必須繼承SQLiteOpenHelper,然后在onCreate這個(gè)方法里面寫語句,然后,我們點(diǎn)擊某個(gè)應(yīng)用的時(shí)候,也就是我們點(diǎn)擊的應(yīng)用是我們想加鎖的應(yīng)用,那么將此應(yīng)用的包名加入到我們剛建的數(shù)據(jù)表中,并且在上面顯示一個(gè)鎖標(biāo)志。當(dāng)我們又點(diǎn)擊一次的時(shí)候,也就是想解鎖的時(shí)候我們將把此應(yīng)用的包名從數(shù)據(jù)庫中刪除即可,并且顯示已解鎖的標(biāo)志。

因?yàn)槌绦蜴i表有加鎖和未加鎖的狀態(tài),那么我們將有兩個(gè)顯示的頁面未加鎖的應(yīng)用如15圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖15未加鎖的應(yīng)用

已加鎖應(yīng)用如16圖:

圖16加鎖應(yīng)用

當(dāng)我們給我們的必要的軟件上程序鎖后,如果我們想要使用我們這個(gè)軟件,那么我們就必須要輸入程序鎖的密碼才能夠繼續(xù)使用,否則不能繼續(xù)使用。當(dāng)用戶使用我們加了程序鎖的應(yīng)用,如17圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖 17 驗(yàn)證程序密碼頁面

3.4病毒查殺模塊

此功能模塊我們需要先將收集來的病毒的信息存入到數(shù)據(jù)庫中,我們知道每一個(gè)病毒都有一個(gè)唯一的信息,也就是通過md5信息加密過的。當(dāng)我們用戶使用此模塊的時(shí)候,我們將遍歷出我們手機(jī)中的所有的應(yīng)用程序,用手機(jī)上的應(yīng)用程序的md5信息與病毒數(shù)據(jù)庫中的信息進(jìn)行一一比對(duì),如果比對(duì)上,那么我們就提示用戶對(duì)其查殺,查殺過程也就是卸載程序的過程,查殺完畢將繼續(xù)進(jìn)行掃描,直到掃描結(jié)束。

遍歷所有的應(yīng)用程序如18圖:

圖18遍歷比對(duì)病毒中

當(dāng)發(fā)現(xiàn)病毒的時(shí)候,我們的系統(tǒng)將提示用戶將病毒進(jìn)行查殺,如19圖:

圖19提示用戶查殺病毒

3.5通訊衛(wèi)士模塊

此功能也是我們常用功能之一,我們將監(jiān)聽來電服務(wù)和短信服務(wù),從而判斷來電號(hào)碼和短信號(hào)碼是否是黑名單中的手機(jī)號(hào)碼,如果是,那么我們將主動(dòng)的攔截此號(hào)碼來電以及刪除短信信息,為保障用戶的生活。其設(shè)計(jì)就是將用戶輸入的黑名單存入數(shù)據(jù)庫,創(chuàng)建一個(gè)監(jiān)聽BlackPhoneReceiver,將內(nèi)容與我們數(shù)據(jù)庫中的號(hào)碼進(jìn)行比對(duì)即可;掛斷黑名單來電我們是通過Android里面的api方法endCall;刪除電話記錄即可。其部分代碼為:

public class BlackNumberService extends Service {

@Nullable

@Override

public IBinder onBind(Intent intent) {

return null;

}

@Override

public void onCreate() {

super.onCreate();

}

@Override

public void onDestroy() {

super.onDestroy();

}

}

當(dāng)然,我們可以任意的添加黑名單號(hào)碼,黑名單管理頁面如20圖:

[開題報(bào)告+論文+源碼]基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)

圖20黑名單管理頁面

當(dāng)我們點(diǎn)擊新增黑名單的按鈕,新增黑名單號(hào)碼如21圖:

圖21新增號(hào)碼

3.6軟件管理模塊

此功能也是我們最為常用的功能之一,使用該功能我們將遍歷出我們手機(jī)中的所有的應(yīng)用,我們點(diǎn)擊某個(gè)應(yīng)用的時(shí)候,我們將會(huì)顯示出此程序的一些詳細(xì)的信息,我們也可以將此軟件進(jìn)行增刪改查,還有一個(gè)實(shí)用的功能是,我們可以點(diǎn)擊發(fā)送,可以將此軟件分享或者發(fā)送給朋友。其設(shè)計(jì)是通過listview將軟件遍歷出來,在每條信息上加上運(yùn)行、卸載、分享這三個(gè)單擊事件,當(dāng)用戶點(diǎn)擊的時(shí)候會(huì)觸發(fā)相應(yīng)的Activity。

當(dāng)我們進(jìn)入軟件管理這個(gè)模塊的時(shí)候,將會(huì)顯示如22圖:

圖22管理首頁

當(dāng)我們點(diǎn)擊某一個(gè)應(yīng)用的時(shí)候,將會(huì)出現(xiàn)如23圖:

圖23軟件的操作

3.7號(hào)碼歸屬地模塊

此功能模塊主要給用戶提供歸屬地查詢功能,當(dāng)我們收到一個(gè)短信的時(shí)候,我們又不知道該號(hào)碼是哪里的,我們是否認(rèn)識(shí),這時(shí),我們就想知道號(hào)碼是哪里的,從而判斷這個(gè)號(hào)碼的主人我們是否認(rèn)識(shí),這樣安全性就大大的提高了。我們將用戶輸入的號(hào)碼和手機(jī)號(hào)碼歸屬地?cái)?shù)據(jù)庫進(jìn)行比對(duì),從而將數(shù)據(jù)顯示出來。其設(shè)計(jì)是我們先創(chuàng)建一個(gè)監(jiān)聽服務(wù)PhoneAddressService,先獲取TelephonyManager,通過listen方法實(shí)現(xiàn),然后我們自己寫一個(gè)監(jiān)聽器繼承PhoneStateListener重新寫onCallStateChanged方法。其部分代碼為:

public static String getAddress(Context context, String number) {

String address = “未知號(hào)碼”;

String path = new File(context.getFilesDir(), DB_NAME).getAbsolutePath();

SQLiteDatabase database = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);

if (number.matches(“^1[3-8]\\d{9}$”)) {

Cursor cursor = database.rawQuery(“select location from data2 where id=(select outkey from data1 where id=?)”,

new String[]{number.substring(0, 7)});

if (cursor.moveToFirst()) {

address = cursor.getString(0);

}

cursor.close();

}

當(dāng)用戶在輸入框輸入一個(gè)號(hào)碼的時(shí)候,我們將查詢出來的信息,其設(shè)計(jì)是一個(gè)QueryAddressActivity,我們通過前7查詢對(duì)應(yīng)的區(qū)域,再根據(jù)4位區(qū)號(hào)再進(jìn)行查詢,如果號(hào)碼就3-4位那么是緊急號(hào)碼,如果都不滿足,那么就是未知。如24圖:

圖24查詢號(hào)碼

此模塊還有一個(gè)常用的號(hào)碼是,我們可以查詢出一些常用號(hào)碼,這樣方便用戶的生活。常用號(hào)碼顯示如25圖:

圖25號(hào)碼列表

3.8設(shè)置中心模塊

此功能是我們可以查詢出我們哪些功能可以使用,哪些功能我們不想使用,但是這樣就有一個(gè)問題,就是我們需要每次進(jìn)來的時(shí)候?qū)⒅匦伦x取我們的所有的應(yīng)用,以免出現(xiàn)臟讀的數(shù)據(jù)信息。

當(dāng)我們對(duì)一些設(shè)置進(jìn)行管理的時(shí)候,如26圖:

圖26設(shè)置中心

4 系統(tǒng)測試

4.1 測試目的以及原因

測試目的是讓我們在開發(fā)周期的時(shí)候今早發(fā)現(xiàn)多的bug,從而上線的時(shí)候盡量順利進(jìn)行。程序員寫代碼大多是比較疲勞的狀態(tài)寫的代碼,那么錯(cuò)誤率肯定很高,還有一點(diǎn)的是在一些邊界值(最大值和最小值)的時(shí)候我們就會(huì)犯一些錯(cuò)誤,這也是恰恰最容易出現(xiàn)錯(cuò)誤的地方。

4.2 軟件測試原則

我們深知測試的優(yōu)點(diǎn)很多,但是測試也會(huì)花費(fèi)昂貴費(fèi)用,而且測試幾乎都是死循環(huán),我們想要測試出所有的問題bug那肯定是不能實(shí)現(xiàn)的,而且測試的時(shí)間肯定是非常久,且是浪費(fèi)時(shí)間。所以我們將測試個(gè)差不多的情況就可以上線使用,然后繼續(xù)開發(fā)測試修復(fù)。

4.3 常用測試

主要有黑盒測試:測試結(jié)果,白盒測試:測試源碼較多,靜態(tài)測試:檢查程序代碼、界面或文檔可能存在的錯(cuò)誤的過程,動(dòng)態(tài)測試:檢查輸出結(jié)果和預(yù)期結(jié)果匹配度。還有我們最為常見的單元測試和集成測試等。

4.4 測試實(shí)現(xiàn)

(1)手機(jī)防盜模塊的測試:主要測試我們先綁定一個(gè)安全號(hào)碼,然后我們將換上另一張手機(jī)卡和我們將安全助手上程序鎖,看是否有對(duì)應(yīng)的效果。

測試用例表如表1所示:

表1手機(jī)防盜模塊測試

序號(hào)輸入預(yù)期實(shí)際測試1換SIM卡顯示提醒正確顯示提醒通過2打開安全助手提示輸入密碼正確提示通過

(2)病毒查殺模塊的測試:主要測試我們先下載一些未認(rèn)證的數(shù)據(jù)證書到手機(jī)上,在病毒表中加入此數(shù)據(jù),點(diǎn)擊病毒查殺,看是否有對(duì)應(yīng)效果。

測試用例表如表2所示:

表2查殺病毒模塊測試

序號(hào)輸入預(yù)期實(shí)際測試1點(diǎn)擊查殺病毒可以清除病毒文件能夠清除通過

(3)通訊衛(wèi)士模塊測試:主要測試我們先將一個(gè)手機(jī)號(hào)加入黑名單,用該手機(jī)發(fā)短信、打電話進(jìn)行測試,看是否有對(duì)應(yīng)效果。

測試用例表如表3所示:

表3通訊衛(wèi)士模塊測試

序號(hào)輸入預(yù)期實(shí)際測試1攔截來電沒有收到來電能夠攔截通過2攔截短信沒有收到短信能夠攔截通過3全部攔截?cái)r截短信電話能夠攔截通過

(4)軟件管理模塊測試:主要測試我們點(diǎn)擊分享、運(yùn)行、卸載,看是否有對(duì)應(yīng)效果。

測試用例表如表4所示:

表4軟件管理模塊測試

序號(hào)輸入預(yù)期實(shí)際測試1點(diǎn)擊運(yùn)行運(yùn)行軟件能夠運(yùn)行通過2點(diǎn)擊分享分享給好友成功分享通過3點(diǎn)擊卸載卸載軟件卸載成功通過

(5)號(hào)碼歸屬地模塊測試:主要測試我們進(jìn)行撥打一個(gè)號(hào)碼和查詢一個(gè)號(hào)碼,看是否有對(duì)應(yīng)效果。

測試用例表如表5所示:

表5號(hào)碼歸屬地模塊測試

序號(hào)輸入預(yù)期實(shí)際測試1撥打一個(gè)電話顯示歸屬地能顯示歸屬地通過2查詢正確號(hào)碼顯示歸屬地能夠顯示通過3查詢錯(cuò)誤號(hào)碼顯示歸屬地能夠顯示通過

5 總結(jié)

此系統(tǒng)是基于Android平臺(tái)集成的,首先我通過學(xué)習(xí)Android基本知識(shí),后來我慢慢的接觸了Linux操作系統(tǒng),linux操作系統(tǒng)相對(duì)Windows來說更要?jiǎng)俪鲆换I,通過java技術(shù)遵循三層架構(gòu)的特點(diǎn)編寫的代碼,并采用restful風(fēng)格進(jìn)行處理。此系統(tǒng)實(shí)現(xiàn)了防盜模塊,通訊模塊,軟件管理模塊,進(jìn)程模塊,殺毒模塊,優(yōu)化模塊設(shè)置模塊,歸屬地模塊,其基本功能已經(jīng)實(shí)現(xiàn)并可以使用。安全保障主要是通過防盜模塊里面有設(shè)置安全號(hào)碼、設(shè)置程序鎖,殺毒模塊和通訊模塊中的黑名單將對(duì)用戶進(jìn)行全面的保護(hù),不受干擾。同時(shí),通過我們的調(diào)查我們也加入了進(jìn)程管理和軟件管理模塊,可以讓用戶使用更加順暢。

但是一些功能中還是有點(diǎn)缺陷,比如說手機(jī)防盜模塊中功能,我們手機(jī)遺失的時(shí)候,我們系統(tǒng)判斷出此手機(jī)已經(jīng)遺失,那么我們可以將自動(dòng)撥號(hào)打緊急號(hào)碼,還有的是我們可以調(diào)用手機(jī)的前置攝像頭將疑犯的面容拍攝下來發(fā)給我們綁定的郵箱,沒有實(shí)現(xiàn)恢復(fù)用戶誤刪除的數(shù)據(jù),沒有實(shí)現(xiàn)親情號(hào)碼聯(lián)機(jī)等等。今后,作為一個(gè)手機(jī)安全助手軟件,這些功能還遠(yuǎn)遠(yuǎn)不夠,還需進(jìn)一步的完善與實(shí)現(xiàn)。

參考文獻(xiàn)

[1]王家林,王家虎,王家俊.Android項(xiàng)目實(shí)戰(zhàn):手機(jī)安全軟件開發(fā)案例解析[M].北京:電子工業(yè)出版社,2013.

[2]吳燕波.Android手機(jī)安全問題及防護(hù)技術(shù)分析[J].中國新通信,2018.

[3]Lauren Darcey,Shane Conder.Android移動(dòng)開發(fā)一本就夠[M].張巍等,譯.人民郵電出版社,2012.

[4]360公司安全I(xiàn)P惠及移動(dòng)端 手機(jī)助手用戶活躍度再登榜首[N]. 證券日?qǐng)?bào),2017-12-27.

[5]楊建強(qiáng),吳釗,李學(xué)鋒.增強(qiáng)智能手機(jī)安全的動(dòng)態(tài)惡意軟件分析系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì).2010[13].

[6]Herbert Schildt著,周志彬等譯.Java2參考大全[M].北京:電子工業(yè)出 版社,2003

[7]劉澤平.基于Android系統(tǒng)的手機(jī)隱私安全的設(shè)計(jì)與實(shí)現(xiàn)[J].通訊世界,2017.

[8]沈澤剛,秦玉平.Java語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2010

[9]智研咨詢集團(tuán),2017-2022年中國手機(jī)安全軟件行業(yè)分析及未來發(fā)展趨勢報(bào)告,chyxx.com/research/2016.

[10]tonylau_hnu. 五步搞定Android開發(fā)環(huán)境部署.?blog.csdn.net/lxl584685, 2015.

[11]MiracleAce.Android項(xiàng)目實(shí)戰(zhàn)–手機(jī)衛(wèi)士,?blog.csdn.net/u01148553

[12]2011年中國手機(jī)安全狀況報(bào)告.[EB/OL].[2011-08-11].?wenku.baidu.com/view/57.

[13]郭江波. 基于Android手機(jī)安全防御系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].河北科技大學(xué),2018.

[14]李鎮(zhèn)林,陳傲然.淺述Android操作系統(tǒng)手機(jī)的安全問題[J].科學(xué)技術(shù)創(chuàng)新,2017.

[15]洪雙喜. Android平臺(tái)隱私保護(hù)方法研究[D].北京郵電大學(xué),2017.

[16]焦丹丹,張曉東,李大尉,那宏壯,張松,王笑庸.基于Android的手機(jī)安全衛(wèi)士[J].黑龍江科學(xué),2016.

[17]嚴(yán)仁飛. 基于Android平臺(tái)的手機(jī)安全衛(wèi)士系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].江西財(cái)經(jīng)大學(xué),2016.

[18]黃粟.“移動(dòng)衛(wèi)士”讓手機(jī)使用“互聯(lián)網(wǎng)+安全”[J].通信與信息技術(shù),2015(05):26-27.

[19]郭占宇. Android手機(jī)安全衛(wèi)士的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué),2017.

附錄

/**

* 保存應(yīng)用程序全局狀態(tài)的基類

*/

public class App extends Application {

private static final String TAG = “App”;

private List<Activity> mActivities;

private long lastTime;

@Override

public void onCreate() {

super.onCreate();

mActivities = new ArrayList<Activity>();

SpUtil.init(this);

Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());

}

public void addActivity(Activity activity) {

mActivities.add(activity);

}

public void removeActivity(Activity activity) {

mActivities.remove(activity);

}

public void exitWithDoubleClick() {

if (System.currentTimeMillis() – lastTime <= 1500) {

exit();

} else {

lastTime = System.currentTimeMillis();

ToastUtil.makeText(this, R.string.exit_tips);

}

}

public void exit() {

for (Activity activity : mActivities) {

activity.finish();

}

System.exit(0);

}

private class MyUncaughtExceptionHandler implements UncaughtExceptionHandler {

@Override

public void uncaughtException(Thread thread, Throwable ex) {

FileWriter fw = null;

try {

File file = new File(StorageUtil.getFeedbackDir(), DateUtil.dateToDayString(new Date()) + “.log”);

boolean flag = file.exists();

// 這行執(zhí)行完,file就存在了,所以得在這之前判斷文件是否存在

fw = new FileWriter(file, true);

if (!flag) {

fw.write(“當(dāng)前應(yīng)用版本:” + getCurrentVersionName() + “\n”);

fw.write(“當(dāng)前設(shè)備信息:\n”);

fw.write(getMobileInfo());

fw.write(“—————————————————–\n”);

}

fw.write(getErrorInfo(ex));

fw.write(“———————————————————–\n”);

fw.flush();

// 正式發(fā)布后刪掉

ex.printStackTrace();

} catch (Exception e) {

Logger.e(TAG, e.getMessage());

} finally {

if (fw != null) {

try {

fw.close();

} catch (IOException e) {

Logger.e(TAG, e.getMessage());

}

}

}

Process.killProcess(Process.myPid());

// 定期上傳錯(cuò)誤日志到服務(wù)器

}

private String getErrorInfo(Throwable throwable) {

Writer writer = new StringWriter();

PrintWriter pw = new PrintWriter(writer);

throwable.printStackTrace(pw);

pw.close();

return writer.toString();

}

private String getMobileInfo() {

StringBuffer sb = new StringBuffer();

// 通過反射獲取系統(tǒng)的硬件信息

try {

Field[] fields = Build.class.getDeclaredFields();

for (Field field : fields) {

// 暴力反射 ,獲取私有的信息

field.setAccessible(true);

sb.append(field.getName() + “=” + field.get(null).toString());

sb.append(“\n”);

}

} catch (Exception e) {

Logger.e(TAG, e.getMessage());

}

return sb.toString();

}

}

public String getCurrentVersionName() {

try {

return getPackageManager().getPackageInfo(getPackageName(), 0).versionName;

} catch (Exception e) {

return null;

}

}

public int getCurrentVersionCode() {

try {

return getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;

} catch (Exception e) {

return 0;

}

}

public Intent getInstallApkIntent(File apkFile) {

Intent installApkIntent = new Intent();

installApkIntent.setAction(Intent.ACTION_VIEW);

installApkIntent.addCategory(Intent.CATEGORY_DEFAULT);

installApkIntent.setDataAndType(Uri.fromFile(apkFile), Constants.mime.APK);

return installApkIntent;

}

}

/**

* 程序鎖服務(wù)

*/

public class ApplockService extends Service {

private static final String TAG = “ApplockService”;

private AppLockDao mAppLockDao;

private boolean mIsWatching;

private List<String> mTempStopProtectPackageNames;

private List<String> mProtectPackageNames;

private ApplockObserver mApplockObserver;

private ScreenLockReceiver mScreenLockReceiver;

private ScreenUnLockReceiver mScreenUnLockReceiver;

private Intent mAuthIntent;

private ActivityManager mActivityManager;

@Override

public IBinder onBind(Intent intent) {

return new MyBinder();

}

@Override

public void onCreate() {

super.onCreate();

mTempStopProtectPackageNames = new ArrayList<String>();

mAppLockDao = new AppLockDao(this);

mProtectPackageNames = mAppLockDao.findAll();

mAuthIntent = new Intent(this, ApplockAuthActivity.class);

mAuthIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

mScreenLockReceiver = new ScreenLockReceiver();

registerReceiver(mScreenLockReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));

mScreenUnLockReceiver = new ScreenUnLockReceiver();

registerReceiver(mScreenUnLockReceiver,new IntentFilter(Intent.ACTION_SCREEN_ON));

mApplockObserver = new ApplockObserver(new Handler());

getContentResolver().registerContentObserver(AppLockDao.uri,true, mApplockObserver);

mActivityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

startWatchDog();

}

@Override

public void onDestroy() {

mIsWatching = false;

unregisterReceiver(mScreenLockReceiver);

mScreenLockReceiver = null;

unregisterReceiver(mScreenUnLockReceiver);

mScreenUnLockReceiver = null;

getContentResolver().unregisterContentObserver(mApplockObserver);

mApplockObserver = null;

super.onDestroy();

}

protected void startWatchDog() {

new Thread(new Runnable() {

@Override

public void run() {

mIsWatching = true;

while (mIsWatching) {

// 獲取最近創(chuàng)建的任務(wù)棧

RunningTaskInfo runningTaskInfo = mActivityManager.getRunningTasks(2).get(0);

String packageName = runningTaskInfo.topActivity.getPackageName();

if (mProtectPackageNames.contains(packageName)) {

// 如果當(dāng)前應(yīng)用程序沒有處于臨時(shí)停止保護(hù)狀態(tài)

if (!mTempStopProtectPackageNames.contains(packageName)) {

mAuthIntent.putExtra(Constants.extra.PACKAGENAME, packageName);

startActivity(mAuthIntent);

}

}

try {

Thread.sleep(300);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}).start();

}

致謝

通過本次論文的編寫過程,從構(gòu)思到實(shí)現(xiàn),那就是一個(gè)質(zhì)的突變。首先,在此我要特別感謝我的導(dǎo)師陳琪,對(duì)我的論文材料和論文進(jìn)行反復(fù)審閱并指出其中的不足之處。終于,在xx老師的精心教導(dǎo)下,已經(jīng)完成了該助手的大體功能模塊。

畢業(yè)設(shè)計(jì)結(jié)束的同時(shí),也就是說我們的大學(xué)生活將要正式結(jié)束了,我也要感謝我的室友和我的同事們,平時(shí)有什么不懂的地方我就不停的問他們,謝謝他們不管多晚的去問題,他們都會(huì)熱心的幫助我解決問題,非常地感謝他們!

最后,我要向?qū)Ρ疚倪M(jìn)行評(píng)閱和參與答辯的各位老師表示深深的謝意。在此,非常的感謝他們!

源碼鏈接:https://yunjunet.cn/876946.html

基于Android平臺(tái)的手機(jī)安全助手的設(shè)計(jì)與實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
孟津县| 宁南县| 雷山县| 深水埗区| 龙山县| 沾益县| 五莲县| 色达县| 富平县| 沁水县| 基隆市| 忻城县| 通海县| 大邑县| 马鞍山市| 英吉沙县| 兰考县| 浦北县| 大渡口区| 郴州市| 咸宁市| 义乌市| 吴桥县| 合水县| 江城| 西乌珠穆沁旗| 日喀则市| 宁武县| 洛浦县| 丹阳市| 赤水市| 汪清县| 禄丰县| 利川市| 永靖县| 彰武县| 腾冲县| 外汇| 岳西县| 遂宁市| 蓬莱市|