已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
29 / 34 本科畢業(yè)設(shè)計(jì)(論文)面向android手機(jī)的人臉識(shí)別系統(tǒng)的研發(fā)學(xué) 院 計(jì)算機(jī)學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 年級班別 2009年1班 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 2020年02月摘 要隨著信息技術(shù)的飛速成長和成熟,現(xiàn)代信息技術(shù)已經(jīng)滲入到人們?nèi)粘I畹姆椒矫婷?。人們無論是工作、生活、休閑娛樂,都會(huì)與各種信息媒介發(fā)生打交道,而接觸的同時(shí),也會(huì)產(chǎn)生個(gè)人隱私信息泄漏的隱患。由于互聯(lián)網(wǎng)應(yīng)用而產(chǎn)生的隱私泄露已經(jīng)屢見不鮮,郵箱、游戲帳號等信息會(huì)由于網(wǎng)絡(luò)環(huán)境的開放而產(chǎn)生被盜取的危險(xiǎn),人們已經(jīng)時(shí)刻警惕并采取了類似安裝電腦殺毒軟件、防火墻等的方式加以保護(hù)。此外,十幾年來發(fā)展至今的移動(dòng)通訊工具手機(jī),已經(jīng)由起初的簡單通訊設(shè)備,逐漸演變?yōu)榧显絹碓蕉嗟膫€(gè)人應(yīng)用并可移動(dòng)獲取資訊的新的個(gè)人信息中心。開放式手機(jī)平臺(tái)的普及標(biāo)志著智能手機(jī)時(shí)代已經(jīng)來臨,就中國而言,2008年末3G牌照的正式發(fā)放,更使得手機(jī)終端各種新應(yīng)用服務(wù)勢如春筍,而由于手機(jī)作為新一代個(gè)人信息中心,關(guān)于手機(jī)產(chǎn)生的“隱私”和“信息安全”的關(guān)注度也隨之提升。作為個(gè)人的信息移動(dòng)終端,手機(jī)的私密性更強(qiáng),用戶在手機(jī)上的私人信息與自身利益更加相關(guān)。手機(jī)的通訊錄,通話記錄,短信這些信息都已成為了您重要的私密信息。近期以來,隨著各種手機(jī)信息安全事件及隱私泄漏事件的頻頻出現(xiàn),手機(jī)防偷窺和防信息泄露的越來越收到人們的關(guān)注。關(guān)鍵詞:智能手機(jī),個(gè)人信息安全,加密解密AbstractWith the rapid development of information technology and become more and more mature,modern information technology has penetrated into every aspect of peoples daily lives.Whether people work,life,entertainment,they can not deal with all kinds of information without media occurs.when people close to the media occurs,it also bad to people because of the hidden danger from privacy information.More and more privacy has been happen because of the Intent,The mailbox,game account information such as the network environment of opening up has become easy to stolen risk.People have to be vigilant and to adopt a similar installation of computer antivirus software,firewall to protect their privacy .In addition,since the development often years,the mobile communication tool-mobile phone, this Simple communication equipment has become new Personal information center collection and mobile access to information,open-ended mobile phone platform penetration marks the era of intelligent mobile phone has come.As far as China is concerned,the formal issuance of 3G licenses issuance by the end of 2008,so more and more various new application service has been produced,as the mobile phone as a new generation of personal information center,attention on mobile phone producesprivacyandinformation securitywill increase.Key words:,目 錄1 緒 論11.1研究目的和意義11.2國內(nèi)外技術(shù)發(fā)展現(xiàn)狀與趨勢11.2.1題目研究方法22 相關(guān)技術(shù)42.1Android系統(tǒng)42.2 Android應(yīng)用的構(gòu)成和工作機(jī)制62.2.1 Activity72.2.2 Intent Receiver82.2.3 Service82.2.4 Content Provider92.3 開發(fā)語言java語言簡介92.4 SQLite數(shù)據(jù)庫102.5 DES算法103 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)123.1需求分析123.2 系統(tǒng)開發(fā)環(huán)境123.3系統(tǒng)架構(gòu)123.4具體功能實(shí)現(xiàn)133.4.1 界面布局133.4.2 添加權(quán)限153.4.3 數(shù)據(jù)庫模塊163.4.4 程序鎖功能183.4.5 DES加密解密算法實(shí)現(xiàn)193.4.6 xml保存私人信息204 功能演示224.1 配置虛擬機(jī)224.2 程序鎖234.3 加密解密24結(jié)論28參考文獻(xiàn)29致 謝301 緒 論1.1 研究目的和意義在信息社會(huì),信息安全關(guān)乎著每一位信息相關(guān)者的切身利益。隨著3G網(wǎng)絡(luò)的大規(guī)模建造及其業(yè)務(wù)的逐步應(yīng)用,寬帶移動(dòng)通信呈現(xiàn)高速發(fā)展態(tài)勢。移動(dòng)通信在運(yùn)行中存在兩大安全隱患:一是一旦手機(jī)失竊或丟失,存入手機(jī)內(nèi)的信息資源會(huì)隨之丟失,并可能產(chǎn)生一系列負(fù)面影響;二是手機(jī)的短信、通訊錄等信息傳輸常遭到非法讀取,機(jī)主正當(dāng)通訊權(quán)益遭受威脅。伴隨著手機(jī)應(yīng)用業(yè)務(wù)的發(fā)展,信息安全需求越來越顯得重要。移動(dòng)設(shè)備信息安全,是當(dāng)前應(yīng)用領(lǐng)域前沿?zé)狳c(diǎn)問題。盡管國內(nèi)外對此有比較廣泛的研究,但是還不夠深入,還沒有真正有效的市場產(chǎn)品。本項(xiàng)目將研發(fā)一種基于人臉識(shí)別系統(tǒng)android手機(jī)安全軟件,旨在解決上述信息安全問題。該安全軟件融合人臉生物特征值技術(shù)和對私人信息加解密技術(shù),以人臉特征標(biāo)識(shí)符和隨機(jī)字符為密鑰,建立信息加密體系,實(shí)現(xiàn)加密密鑰的防盜換,并以此實(shí)現(xiàn)手機(jī)安全認(rèn)證和短信、通訊錄等信息隱匿傳輸。為此,我們將致力于手機(jī)人臉圖像捕獲、人臉檢測、人臉識(shí)別算法,手機(jī)加密算法,等關(guān)鍵問題的研究,以期實(shí)現(xiàn)突破,建立有效的對手機(jī)信息及數(shù)字內(nèi)容安全算法及軟件,以及合理的處理與響應(yīng)速度。項(xiàng)目所研發(fā)的新型手機(jī)信息及數(shù)字內(nèi)容安全軟件,將在相關(guān)手機(jī)操作系統(tǒng)和開發(fā)軟件環(huán)境下作試驗(yàn)。1.2 國內(nèi)外技術(shù)發(fā)展現(xiàn)狀與趨勢中國報(bào)告大廳2012年中國手機(jī)市場研究預(yù)測報(bào)告研究表明,2010 年全球手機(jī)銷量上升 32 達(dá)到 1.6 億部。智能手機(jī)銷量較去年同期增長 72 至 297 萬臺(tái),基于 Android 平臺(tái)的設(shè)備,其銷售增加了近十倍至 67 億美元。2012年中國手機(jī)市場研究預(yù)測報(bào)告研究表明,中國移動(dòng)終端市場2010年第4季度國內(nèi)手機(jī)銷售總量達(dá)6759.8萬部(不計(jì)黑手機(jī)和水貨手機(jī)),環(huán)比增長5%。本季度3G手機(jī)銷量突破了1500萬大關(guān),環(huán)比增長24.5%。截止2010年12月,CDMA手機(jī)已占中國手機(jī)市場銷量的25.7%,其中,名列國內(nèi)CDMA手機(jī)市場2010年度銷量前兩位的企業(yè)分別是三星和華為。就手機(jī)中應(yīng)用的生物識(shí)別技術(shù)而言,目前有提到的只有指紋、聲音、人臉識(shí)別三種種方法。2011年美國摩托羅拉公司推出了帶指紋識(shí)別3G手機(jī)ME960;而三星的上代旗艦手機(jī)的文件系統(tǒng)底層里面,發(fā)現(xiàn)了“SecSettings.apk” 文件和指紋識(shí)別相關(guān)圖片,蘋果也在去年夏天收購了安全技術(shù)公司AuthenTec,更和仿生安全系統(tǒng)公司 Microlatch 達(dá)成交易。但是現(xiàn)在我們還沒見到蘋果手機(jī)有相關(guān)的技術(shù)成果,不過也表明蘋果公司也在致力于研發(fā)指紋識(shí)別方面的技術(shù)。聲音識(shí)別技術(shù)在手機(jī)中的應(yīng)用早在五年前已經(jīng)開始研制,并在目前的多款手機(jī)中應(yīng)用2。2011年10月19日,谷歌和三星在香港召開新聞發(fā)布會(huì),正式發(fā)布代號為“冰激凌三明治”的谷歌新一代Android 4.0系統(tǒng)以及三星GALAXY Nexus智能手機(jī)。谷歌新一代Android 4.0系統(tǒng)擁有全新設(shè)計(jì)的UI,界面簡化,運(yùn)行速度能力提升。系統(tǒng)內(nèi)置全新的壁紙,在使用手機(jī)上的觸摸按鈕時(shí)會(huì)出現(xiàn)發(fā)光效果,并且增加了語音輸入、人臉識(shí)別、照片編輯、流量監(jiān)測、Android Beam功能。而在最新的報(bào)道里面,谷歌還準(zhǔn)備在谷歌眼鏡里面添加人臉識(shí)別功能,但 Glass 產(chǎn)品總監(jiān) Steve Lee 之前曾對紐約時(shí)報(bào)講述過,除非有隱私保護(hù)政策,否則不會(huì)加入人臉識(shí)別功能。而和android手機(jī)一樣操作系統(tǒng)的平板電腦,谷歌公司推出了一項(xiàng)新的功能,當(dāng)用戶通過Android平板電腦觀看電影并按下暫停鍵時(shí),可以自動(dòng)在屏幕上提供電影演員和音樂的背景信息。而完成機(jī)主識(shí)別過程,同時(shí)利用生物特征值和數(shù)字水印對手機(jī)內(nèi)的數(shù)字內(nèi)容、短信、個(gè)人名片簿等重要信息加密或隱藏,有效提升了個(gè)人信息的安全性。這項(xiàng)應(yīng)用現(xiàn)在也有很多三方應(yīng)用在android市場出現(xiàn)。1.2.1 題目研究方法Android的安全設(shè)計(jì)包括以下兩個(gè)原則:在默認(rèn)情況下,在android 平臺(tái)下運(yùn)行的應(yīng)該程序沒有權(quán)限執(zhí)行對其他應(yīng)用程序,操作系統(tǒng)有害的操作。這些操作包括讀寫用戶的隱私數(shù)據(jù)(如聯(lián)系方式或短信)等。(2)Android應(yīng)用程序的進(jìn)程是運(yùn)行在一個(gè)安全的“沙箱”環(huán)境中。它不能干擾其他應(yīng)用程序,除非它明確聲明權(quán)限。這些權(quán)限請求能夠被不同方式的操作所處理,特別的要基于證書和用戶的提示被自動(dòng)允許或禁止。而且權(quán)限請求在應(yīng)用程序中被聲明為靜態(tài),所以在此之后在安裝的時(shí)候系統(tǒng)會(huì)預(yù)先知道。基于android的安全設(shè)計(jì)原則,我們無法對手機(jī)的隱私數(shù)據(jù)直接操作,而谷歌的android手機(jī)系統(tǒng)的架構(gòu)是Linux內(nèi)核、C/C+函數(shù)庫、Dalvik虛擬機(jī)、應(yīng)用框架以及關(guān)鍵應(yīng)用程序構(gòu)成的,只要取得root權(quán)限,就可以對手機(jī)的一切信息進(jìn)行操作,但是有利有弊,root權(quán)限對手機(jī)的安全造成了很大的影響,而谷歌在設(shè)計(jì)android系統(tǒng)的時(shí)候?yàn)榱颂峁橛脩粢粋€(gè)良好的平臺(tái)也提供了一個(gè)私人信息同步的模塊,為了此模塊,android設(shè)計(jì)了數(shù)據(jù)存取與共享機(jī)制ContentProvider為應(yīng)用程序提供一些訪問方法, 使用Content Provider能夠靈活的替換底層使用的存儲(chǔ)設(shè)備,使開發(fā)者可以專著于應(yīng)用邏輯的開發(fā),不用考慮底層存儲(chǔ)設(shè)備的細(xì)節(jié),從而使應(yīng)用系統(tǒng)具有良好的數(shù)據(jù)12。但是此共享機(jī)制必須得到相應(yīng)的權(quán)限,而且用戶在安裝此類軟件的時(shí)候會(huì)提示用戶。所以加密解密此模塊就是建立在ContentProvider這種共享機(jī)制上面。通過間接的方式對手機(jī)擁有者的個(gè)人隱私信息進(jìn)行讀取,加密解密。2 相關(guān)技術(shù)2.1 Android系統(tǒng)Android一詞的本義指“機(jī)器人”同時(shí)也是Google。于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。它采用軟件堆層(Software Stack,又名軟件疊層)的架構(gòu),主要分為三部分。底層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和虛擬機(jī)Virtual Machine,由C+開發(fā)。最上層是各種應(yīng)用軟件,包括通話程序,短信程序等,應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分,不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。Google通過與軟、硬件開發(fā)商、設(shè)備制造商、電信運(yùn)營商等其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標(biāo)準(zhǔn)化、開放式的移動(dòng)電話軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開放式的生態(tài)系統(tǒng)1。對于設(shè)備制造商來說,Android是一個(gè)免費(fèi)的平臺(tái)。對硬體開發(fā)廠商來說,Android是個(gè)開放的平臺(tái)。只要廠商有能力,可以在這個(gè)平臺(tái)上自由加入特有的裝置或功能,不受手機(jī)作業(yè)系統(tǒng)廠商的限制。對于手持裝置的開發(fā)者來說,Android是個(gè)先進(jìn)的平臺(tái)。平臺(tái)上的應(yīng)用程式可相容于各種型號的Android 手機(jī),免去為各種不同手機(jī)機(jī)型開發(fā)的困擾。Android平臺(tái)支援各種先進(jìn)的網(wǎng)絡(luò)、繪圖、3D 處理能力,可以用來提供更好的使用者體驗(yàn)。Android它的開放性就優(yōu)于其它封閉式的手機(jī)系統(tǒng),因此,任何人都可能根據(jù)自己的喜好將手機(jī)系統(tǒng)中的所有功能重新編寫。這使得越來越多的人關(guān)注這個(gè)操作系統(tǒng)。關(guān)鍵應(yīng)用程序:Android平臺(tái)內(nèi)包含一些關(guān)鍵應(yīng)用程序,如郵件收發(fā)客戶端程序、短信收發(fā)程序、日歷、網(wǎng)頁瀏覽器等,而更多有特色的Android應(yīng)用程序還有待于廣大開發(fā)者共同參與開發(fā)3。Java程序運(yùn)行環(huán)境:Android的Java程序運(yùn)行環(huán)境包含一組Java核心函數(shù)庫及Dalvik虛擬機(jī),它們有效地優(yōu)化了Java程序的運(yùn)行過程。Linux內(nèi)核:Android系統(tǒng)平臺(tái)基于優(yōu)化了的Linux內(nèi)核,它提供諸如內(nèi)存管理、進(jìn)程管理、設(shè)備驅(qū)動(dòng)等服務(wù),同時(shí)也是手機(jī)軟硬件的連接層。 Android應(yīng)用程序以各種組件(API)為基礎(chǔ),API是Android軟件平臺(tái)的重要組成部分,也是開發(fā)Android應(yīng)用的關(guān)鍵所在4。當(dāng)前活動(dòng)程序Activity:作為最常用的應(yīng)用程序組件,幾乎所有Activity都會(huì)通過創(chuàng)建U I窗口與用戶進(jìn)行交流。Activity具有生命周期,它包含運(yùn)行、暫停、停止等幾個(gè)狀態(tài),狀態(tài)間的轉(zhuǎn)換可通過調(diào)用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop ()、onDestory()等方法來實(shí)現(xiàn)。要開啟新的activity,可以調(diào)用startActivity(Intent),或調(diào)用startSubActivity(Intent, int),后者通常和onActivityResult(int,int, String,Bundle)聯(lián)合使用,以從一個(gè)activity獲取某結(jié)果并返回給打開它的activity5。事件Intent: Intent抽象描述了想要執(zhí)行的某種操作,它與startActivity一起使用可以開啟新的activity,與startService 一起使用可以開啟后臺(tái)服務(wù)。Intent最重要的作用還是加載activity,它是不同activity間的橋梁。Intent也可以被認(rèn)為是一種概括操作行為的數(shù)據(jù)結(jié)構(gòu),它主要包括action (動(dòng)作)和data(數(shù)據(jù))兩部分,此外它還具有一些附加屬性如category(intent種類)、type (數(shù)據(jù)類型)等。常用的Intent方法有intent() (構(gòu)造intent)、addcategory() (添加intent類型)、getAction()(獲取intent動(dòng)作)、getData()(獲取intent數(shù)據(jù))等6。數(shù)據(jù)存取與共享機(jī)制ContentProvider: ContentProvider為應(yīng)用程序提供一些訪問方法,包括: Query(Uri, String , String,String , String, String, String)(數(shù)據(jù)信息的查詢) ,insert (Uri, Contentvalues) (在Contentp rovider中添加新數(shù)據(jù)) , updata(Uri, Contentvalues, String, String )(更新Conntp rovider中的數(shù)據(jù)), delect(Uri, String,String )(刪除數(shù)據(jù)) , Gettype (Uri)(獲取數(shù)據(jù)類型)。其中,Uri標(biāo)明了ContentProvider存儲(chǔ)的數(shù)據(jù)類型,在執(zhí)行訪問方法時(shí)都需依據(jù)Uri作為路徑標(biāo)識(shí)來確定要訪問哪個(gè)ContentProvider。后臺(tái)服務(wù)Service: Service是運(yùn)行在后臺(tái)的應(yīng)用程序組件,不直接與用戶交互。當(dāng)前活動(dòng)程序可以使用Context. StartService()開啟一項(xiàng)后臺(tái)服務(wù),還可以通過Context. bindService()與后臺(tái)服務(wù)通信7。Android的架構(gòu)是Linux內(nèi)核、C/C+函數(shù)庫、Dalvik虛擬機(jī)、應(yīng)用框架以及關(guān)鍵應(yīng)用程序構(gòu)成的,如圖2-1。通過編譯基于框架的應(yīng)用程序可以降低開發(fā)負(fù)荷。應(yīng)用軟件原則上是在Dalvik VM上運(yùn)行的。圖2-1 Android架構(gòu)圖Android的Java程序運(yùn)行環(huán)境包含一組Java核心函數(shù)庫及Dalvik虛擬機(jī),它們有效地優(yōu)化了Java程序的運(yùn)行過程。所有的Android應(yīng)用都運(yùn)行在它自己的進(jìn)程里,該進(jìn)程是一個(gè)Dalvik虛擬機(jī)的實(shí)例,Dalvik被設(shè)計(jì)成能在一臺(tái)設(shè)備上高效的運(yùn)行多個(gè)虛擬機(jī)實(shí)例。Dalvik虛擬機(jī)的可執(zhí)行文件被封裝成Dalvik可執(zhí)行格式(.dex)。這是被優(yōu)化過的最小內(nèi)存依賴的格式。Java編譯器(dx工具)將注冊了的和運(yùn)行時(shí)用到的類編譯成.dex格式。Dalvik虛擬機(jī)依賴于底層Linux內(nèi)核提供的功能,如線程機(jī)制,和內(nèi)存管理機(jī)制等。2.2 Android應(yīng)用的構(gòu)成和工作機(jī)制對于一個(gè)Android應(yīng)用程序來說,是由Activity、 Intent Receiver 、Service、Content Provider四部分組成,但并不是每一個(gè)Android應(yīng)用程序都必須由這四部分組成。在應(yīng)用程序中使用時(shí),需要在配置文件AndroidMainfestxml中進(jìn)行配置。這個(gè)配置文件是每個(gè)Android應(yīng)用程序所必需的,用于定義應(yīng)用程序的組件、組件的功能以及必要條件等8。2.2.1 ActivityActivity是構(gòu)成應(yīng)用程序中最重要的構(gòu)造塊, 在Android應(yīng)用程序中,幾乎都是通過Activity來與用戶進(jìn)行交互,所以Activity主要負(fù)責(zé)的就是創(chuàng)建與用戶進(jìn)行交互的顯示窗口,你可以在這些窗口里通過調(diào)用setContentView(View)方法來顯示你自己的用戶界面9?;顒?dòng)(Activity)在系統(tǒng)中以活動(dòng)棧的形式進(jìn)行管理。當(dāng)一個(gè)新的活動(dòng)啟動(dòng)后,被放到了棧頂,成為了運(yùn)行活動(dòng),而新活動(dòng)之前的活動(dòng)在活動(dòng)棧里總位于新活動(dòng)之下,直到新的活動(dòng)退出才重新回到前臺(tái)。從圖2-2可以看出,Activity有三個(gè)關(guān)鍵的循環(huán):(1)活動(dòng)的整個(gè)生命期:從首次調(diào)用onCreate(Bundle)開始,到最終調(diào)用onDestroyO結(jié)束。在onCreate()中進(jìn)行所有初始化,在onDestroyO時(shí)進(jìn)行清理工作,釋放資源。(2)活動(dòng)的可見生命期:從調(diào)用onStart()開始,到onStop()被調(diào)用為止。在這段時(shí)間內(nèi),即使活動(dòng)不與用戶進(jìn)行交互,用戶也可以在屏幕上看到它。在這兩個(gè)方法調(diào)用之間,可以維護(hù)活動(dòng)顯示給用戶的資源。onStart()和onStop()方法可以多次調(diào)用,因?yàn)榛顒?dòng)隨時(shí)可以在可見和隱藏之間進(jìn)行轉(zhuǎn)換。(3)活動(dòng)的后臺(tái)生命期:從調(diào)用onResume()開始,到onPause()被調(diào)用為止。這段時(shí)間內(nèi)活動(dòng)處于其它所有活動(dòng)之前,并與用戶進(jìn)行交互。一個(gè)活動(dòng)可以不斷在resumed狀態(tài)和paused狀態(tài)之間變換。Android使用了Intent類來實(shí)現(xiàn)活動(dòng)之間的切換工作。Intent負(fù)責(zé)對應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及的數(shù)據(jù)和附加數(shù)據(jù)進(jìn)行描述。根據(jù)Intent的描述,負(fù)責(zé)找到對應(yīng)的組件,將Intent傳遞給調(diào)用的組件并完成組件的調(diào)用。因此,Intent起著一種媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。在應(yīng)用中,我們可以以兩種形式來使用Intent:直接Intent,指定了component屬性的Intent,通過指定具體的組件類,通知應(yīng)用啟動(dòng)對應(yīng)的組件。間接Intent,沒有指定component屬性的Intent,則需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在所有的可用組件中,確定滿足此Intent的組件10。圖2-2 Activity狀態(tài)變換路徑圖2.2.2 Intent ReceiverIntent Receiver是用于對外部事件的響應(yīng),當(dāng)外部事件發(fā)生時(shí),會(huì)使用Notification Manager通知用戶。當(dāng)一個(gè)Intent Receiver被觸發(fā)時(shí),系統(tǒng)會(huì)在需要的時(shí)候啟動(dòng)對應(yīng)的應(yīng)用程序。如在本系統(tǒng)中,當(dāng)用戶正在其它界面進(jìn)行操作時(shí),有好友發(fā)送消息過來,就會(huì)以通知的形式發(fā)送到當(dāng)前界面的正上方來通知用戶。各種應(yīng)用還可以通過使用ContextBroadcast Intent()將它們的Intent Receiver廣播給其它的應(yīng)用程序,實(shí)現(xiàn)應(yīng)用之間的通訊11。2.2.3 ServiceService是提供連續(xù)信息的應(yīng)用程序。它是運(yùn)行于應(yīng)用程序后臺(tái)的服務(wù),在用戶進(jìn)行其它活動(dòng)的時(shí)候,這個(gè)服務(wù)將一直運(yùn)行在基于Android平臺(tái)的即時(shí)通訊系統(tǒng)的研究與實(shí)現(xiàn)后臺(tái),直到用戶停止該服務(wù)或服務(wù)運(yùn)行結(jié)束。本系統(tǒng)客戶端擴(kuò)展功能就是采用Service來進(jìn)行設(shè)計(jì)和開發(fā)的。2.2.4 Content ProviderContent Provider應(yīng)用程序能夠?qū)⑺鼈兊臄?shù)據(jù)保存到文件、SQL數(shù)據(jù)庫和其它的存儲(chǔ)設(shè)備中。當(dāng)應(yīng)用程序需要使用存儲(chǔ)設(shè)備中的數(shù)據(jù)時(shí),可以使用Content Provider來完成。使用Content Provider能夠靈活的替換底層使用的存儲(chǔ)設(shè)備,使開發(fā)者可以專著于應(yīng)用邏輯的開發(fā),不用考慮底層存儲(chǔ)設(shè)備的細(xì)節(jié),從而使應(yīng)用系統(tǒng)具有良好的數(shù)據(jù)。2.3 開發(fā)語言java語言簡介Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)(即JavaSE, JavaEE, JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(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)勢和廣闊前景。2.3Android開發(fā)工具及平臺(tái)搭建Android的上層應(yīng)用程序是用Java語言開發(fā),同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因?yàn)槭鞘褂肑ava語言進(jìn)行開發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時(shí),還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級或者變更,是Eclipse下開發(fā)工具的升級下載的工具。簡言之,需要以下軟件,才能搭建Android開發(fā)環(huán)境,從而進(jìn)行Android應(yīng)用程序的開發(fā)。(1) Java SDK(2) Eclipse(3) Android SDK(4) ADTAndroid開發(fā)平臺(tái)搭建步驟:(1)首先到/downloads/下載Eclipse集成開發(fā)環(huán)境并且解壓,這里推薦下載Java EE 集成版本。去/javase/downloads/index.jsp 站點(diǎn)下載SDK后安裝,下載/android/android-sdk-windows-1.5_r1.zip,Android SDK1.5后解壓。第一步下載工序就結(jié)束了。 (2)雙擊Eclipse解壓后目錄中的eclipse.exe然后啟動(dòng),選擇Eclipse菜單中的Help-Install New Software- Available Software,點(diǎn)擊右側(cè)的“Add”輸入/android/eclipse/后確定,然后在“Work with”下拉菜單中選擇剛才輸入的網(wǎng)址。過一會(huì)就會(huì)出現(xiàn)一個(gè)Developer Tools選項(xiàng),勾上以后點(diǎn)擊Next以后Eclipse會(huì)自動(dòng)網(wǎng)上查找Android 開發(fā)工具插件,然后要到Android DDMS和Android Development Tools,選中這兩個(gè)點(diǎn)擊Finish,Eclipse就會(huì)自動(dòng)下載并安裝Android插件了,最后會(huì)提示重啟Eclipse。(3)重啟后選擇Eclipse菜單中的Windows- Preferences 在左側(cè)的Android項(xiàng)目中SDK Location中填入Android SDK解壓后的目錄,然后點(diǎn)擊Apply。(4)在Windows XP的系統(tǒng)變量中的path變量中添加一個(gè)值,該值指向解壓后的Android SDK目錄下的tools文件夾。2.4 SQLite數(shù)據(jù)庫SQLite是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項(xiàng)目。不像常見的客戶-服務(wù)器范例,SQLite引擎不是個(gè)程序與之通信的獨(dú)立進(jìn)程,而是連接到程序中成為它的一個(gè)主要部分。所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時(shí)間和整體簡單性上有積極的作用。整個(gè)數(shù)據(jù)庫(定義、表、索引和數(shù)據(jù)本身)都在宿主主機(jī)上存儲(chǔ)在一個(gè)單一的文件中。它的簡單的設(shè)計(jì)是通過在開始一個(gè)事務(wù)的時(shí)候鎖定整個(gè)數(shù)據(jù)文件而完成的。Android 在運(yùn)行時(shí)集成了 SQLite,所以每個(gè) Android 應(yīng)用程序都可以使用 SQLite 數(shù)據(jù)庫。對數(shù)熟悉 SQL 的開發(fā)人員來時(shí),使用 SQLite 相當(dāng)簡單13。2.5 DES算法數(shù)據(jù)加密算法(Data Encryption Algorithm,DEA)的數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,DES)是規(guī)范的描述,它出自 IBM 的研究工作,并在 1997 年被美國政府正式采納。它很可能是使用最廣泛的秘鑰系統(tǒng),特別是在保護(hù)金融數(shù)據(jù)的安全中,最初開發(fā)的 DES 是嵌入硬 件中的。通常,自動(dòng)取款機(jī)(Automated Teller Machine,ATM)都使用 DES。8DES 使用一個(gè) 56 位的密鑰以及附加的 8 位奇偶校驗(yàn)位,產(chǎn)生最大 64 位的分組大小。這是一個(gè)迭代的分組密碼,使用稱為 Feistel 的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過程會(huì)繼續(xù)下去,但最后一個(gè)循環(huán)不交換。DES 使用 16 個(gè)循環(huán)。攻擊 DES 的主要形式被稱為蠻力的或徹底密鑰搜索,即重復(fù)嘗試各種密鑰直到有一個(gè)符合為止。如果 DES 使用 56 位的密鑰,則可能的密鑰數(shù)量是 2 的 56 次方個(gè)。隨著計(jì)算機(jī)系統(tǒng)能力的不斷發(fā)展,DES 的安全性比它剛出現(xiàn)時(shí)會(huì)弱得多,然而從非關(guān)鍵性質(zhì)的實(shí)際出發(fā),仍可以認(rèn)為它是足夠的。3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1需求分析3.1.1 功能需求:1.程序鎖:監(jiān)聽android系統(tǒng)的任務(wù)棧,判斷這個(gè)應(yīng)用的包名,程序名,是否是要鎖定的應(yīng)用名字一致。2.加密解密:通過DES加密算法,對手機(jī)私人信息如短信,通訊錄進(jìn)行加密解密。3.2 系統(tǒng)開發(fā)環(huán)境硬件配置:機(jī)器:普通臺(tái)式機(jī)CPU: Core 2 T5670 1.8GHz內(nèi)存:DDR2 3G硬盤:500G操作系統(tǒng):Microsoft Windows 7 開發(fā)工具:eclipse ,SQLite Expert Personal 3工具插件:Android SDK3.3系統(tǒng)架構(gòu) 系統(tǒng)架構(gòu)采用三層架構(gòu),模型層(model)視圖層(view)控制器層(controller)并作為之后組件和模塊設(shè)計(jì)的架構(gòu)依據(jù)。視圖層主要顯示UI界面,模型層主要存放與UI分離的業(yè)務(wù)數(shù)據(jù)操作??刂破鲗又饕康膭t是確保模型層和視圖層的同步,一旦模型層改變,視圖層應(yīng)該同步更新。 3.4具體功能實(shí)現(xiàn) 3.4.1 界面布局Android的資源文件保存在/res的子目錄中。其中/res/drawable/目錄中保存的是圖像文件,/res/values目錄中保存的是用來自定義字符串和顏色的文件,/res/xml目錄中保存的是XML格式的數(shù)據(jù)文件。所有在程序開發(fā)階段可以被調(diào)用的資源都保存在這些目錄中,在對界面進(jìn)行繪制時(shí)要考慮到不同手機(jī)屏幕大小可能不一樣,應(yīng)盡量兼容大多數(shù)手機(jī)屏幕尺寸,使之顯示無障礙。主界面繪制代碼如下: 當(dāng)用戶打開程序而剛剛好在數(shù)據(jù)庫中是必須加鎖的時(shí)候,會(huì)跳出一個(gè)窗口,要求用戶輸入密碼來通過驗(yàn)證權(quán)限。繪制代碼如下: 3.4.2 添加權(quán)限在默認(rèn)情況下,在android 平臺(tái)下運(yùn)行的應(yīng)該程序沒有權(quán)限執(zhí)行對其他應(yīng)用程序,操作系統(tǒng)有害的操作。這些操作包括讀寫用戶的隱私數(shù)據(jù)(如聯(lián)系方式或短信)等。除非它明確聲明權(quán)限。這些權(quán)限請求能夠被不同方式的操作所處理,特別的要基于證書和用戶的提示被自動(dòng)允許或禁止。而且權(quán)限請求在應(yīng)用程序中被聲明為靜態(tài),所以在此之后在安裝的時(shí)候系統(tǒng)會(huì)預(yù)先知道。需要添加的權(quán)限代碼如下: 3.4.3 數(shù)據(jù)庫模塊 為保存需要加鎖的程序包名,在sqlite中創(chuàng)建了一個(gè)數(shù)據(jù)庫保存起來,實(shí)現(xiàn)代碼如下:public void onCreate(SQLiteDatabase db) db.execSQL(CREATE TABLE applock (_id integer primary key autoincrement, packname varchar(30);為了更方便的操作數(shù)據(jù)庫,創(chuàng)建了AppLockDao.java來對數(shù)據(jù)庫進(jìn)行增刪改查的操作,代碼實(shí)現(xiàn)如下:public class AppLockDao private Context context;private AppLockDBHelper dbHelper;public AppLockDao(Context context) this.context = context;dbHelper = new AppLockDBHelper(context);/* * 查詢 */public boolean find(String packname) boolean result = false;SQLiteDatabase db = dbHelper.getReadableDatabase();if (db.isOpen() Cursor cursor = db.rawQuery(select packname from applock where packname=?,new String packname );if (cursor.moveToNext() result = true;cursor.close();db.close();return result;/* * 添加 */public void add(String packname)if(find(packname)return ;SQLiteDatabase db = dbHelper.getWritableDatabase();if(db.isOpen()db.execSQL(insert into applock (packname) values (?), new Objectpackname);db.close();/
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度主題餐飲商鋪?zhàn)赓U管理合同
- 二零二五年度邊境運(yùn)輸合同糾紛管轄權(quán)跨境協(xié)議
- 二零二五年度稻谷種植與鄉(xiāng)村旅游融合發(fā)展合同
- 2025年度白酒全國總代理合同-品牌授權(quán)與市場運(yùn)營協(xié)議
- 二零二五年度商業(yè)寫字樓租賃合同終止書
- 2025年度石材行業(yè)市場調(diào)研與咨詢合同
- 2025年度多功能車庫租賃及綜合性服務(wù)合同
- 二零二五年度建筑工拖欠工資無合同糾紛調(diào)解協(xié)議書
- 2025年度采石場租賃合同生態(tài)補(bǔ)償與恢復(fù)協(xié)議
- 2025年度火鍋店線上線下營銷推廣合作協(xié)議
- 2024年供應(yīng)鏈安全培訓(xùn):深入剖析與應(yīng)用
- 飛鼠養(yǎng)殖技術(shù)指導(dǎo)
- 壞死性筋膜炎
- 整式的加減單元測試題6套
- 股權(quán)架構(gòu)完整
- 山東省泰安市2022年初中學(xué)業(yè)水平考試生物試題
- 注塑部質(zhì)量控制標(biāo)準(zhǔn)全套
- 銀行網(wǎng)點(diǎn)服務(wù)禮儀標(biāo)準(zhǔn)培訓(xùn)課件
- 二年級下冊數(shù)學(xué)教案 -《數(shù)一數(shù)(二)》 北師大版
- 晶體三極管資料
- 石群邱關(guān)源電路(第1至7單元)白底課件
評論
0/150
提交評論