基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目 錄 TOC o 1-2 h z u HYPERLINK l _Toc388887846 HYPERLINK l _Toc388887847 摘要 II基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)摘要:隨著云計算的發(fā)展,越來越多的網(wǎng)絡(luò)服務(wù)需要登錄賬戶用以用戶識別、大數(shù)據(jù)應(yīng)用等,而用戶對于各類用戶名與密碼的記憶與使用,卻是一大不便。隨著移動設(shè)備使用時長的不斷提高,智能手機必將成為用戶獲取信息和服務(wù)的主要途徑。因此,基于安卓平臺的密碼管理軟件必將有很大的發(fā)展空間。本文對目前的用戶應(yīng)用平臺進行分析與比較,包括windows、Mac OSX、 Symbian、windows phone、IOS、Andro

2、id等常見操作平臺。重點研究了Android的系統(tǒng)架構(gòu)及組件模型,接著解析了Android中的重要API和應(yīng)用構(gòu)成,以及Android的界面布局和數(shù)據(jù)存儲。在對Android進行詳細解析之后,基于安卓平臺開發(fā)一款密碼管理軟件。軟件主要包括四個方面的功能,第一個功能就是對進入程序時密碼的設(shè)置與校驗,第二個方面是用戶密碼信息的存儲與查詢,第三個方面就是針對用戶信息的修改及導(dǎo)出,第四個方面就是諸如修改密碼等菜單鍵功能。本程序系統(tǒng)界面美觀流暢,操作簡單,具有良好的可本程序系統(tǒng)界面美觀流暢,操作簡單,具有良好的可擴展性和可維護性;本程序經(jīng)過真機使用與測試,可以穩(wěn)定流暢運行,能滿足軟件的功能要求以及用戶的

3、使用需求。關(guān)鍵詞:安卓;Java;密碼管理;數(shù)據(jù)存儲Design of and Implementation password management systembased on theAndroid platformAbstract: With the development of cloud computing, more and more network services need to login to the user identification, data applications, but memorying and using for ueres the various of

4、 password information, it is a big inconvenience. intelligent mobile phone will become the main way for users to access information and services,because of mobile devices continues to increase long.Therefore, the Android platform based on password management software will have great development spac

5、e.This paper makes analysis and comparison of the user application platform at present, including windows, Mac OSX, Symbian, Windows Phone, IOS, Android and other common operating platform. Focuses on the system architecture and the component model of Android, then analyzes the important API and And

6、roid applications, and Android View and data storage. After a detailed study and understanding of Android, developed a password management software based on the Android platform. Software mainly includes four aspects of the function, the first function is to set and check the password to enter the p

7、rogram, the second aspect is the storage and query the user password information, third aspects it can change and export user information, fourth aspects is menu key function ,such as the modification password. The system interface is beautiful, simple operation, good scalability and maintainability

8、. The program has been tested using a real machine. It can run smoothly and stably and can meet the functional requirements of the software and the users needs., can meet the functional requirements of the software and the demand of users.Key words:Android; Java; password management; data storage. 第

9、一章 引言隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,互聯(lián)網(wǎng)服務(wù)已經(jīng)涉及人們的工作、生活的方方面面。而隨著移動智能設(shè)備的快速發(fā)展,友好的使用界面和良好的用戶體驗直接促進了移動互聯(lián)網(wǎng)的發(fā)展。根據(jù)目前的情況來看,移動端使用時間長于PC端的使用時長的時代已經(jīng)到來,而移動設(shè)備的方便也直接促成互聯(lián)網(wǎng)用戶對移動設(shè)備的依賴。目前國內(nèi)乃至世界使用量最多的移動開發(fā)平臺即為安卓系統(tǒng)。截止2014年第一季度,安卓移動設(shè)備的激活量已超過10億臺,市場占有率超過80%,作為安卓應(yīng)用程序的主要的下載市場之一的Google play,總應(yīng)用超過100萬個。面對如此龐大的應(yīng)用程序使用量,基于安卓平臺的密碼管理程序的開發(fā)卻僅僅處于探索階段,實際開發(fā)

10、量并不多,這也給了本次程序發(fā)展的機遇。下面首先介紹一下安卓系統(tǒng)。安卓是一種以Linux為基礎(chǔ),主要應(yīng)用于移動設(shè)備的操作系統(tǒng),2005年Google向最初開發(fā)者注資后,組建了開放手機聯(lián)盟開發(fā)改良此系統(tǒng)。安卓的核心系統(tǒng)是基于Linux 2.6內(nèi)核(Linux Kernel)的,而安卓運行時(Android Runtime)包括核心庫和Dalvik虛擬機兩部分,而應(yīng)用層(Application)是基于Java語言編寫,運用應(yīng)用框架(Application Framework)開發(fā),可調(diào)用SQLite等安卓類庫的程序。因為自身對安卓手機的熱愛以及未來工作發(fā)展的原因,我開始自學Java語言,通過老師和同

11、學的認真指導(dǎo),開發(fā)出了基于安卓平臺密碼管理系統(tǒng)。通過這次畢業(yè)設(shè)計的研究和展示,我希望能盡量展現(xiàn)出我對安卓開發(fā)的努力和成果。1.1國內(nèi)外手機系統(tǒng)現(xiàn)狀目前國內(nèi)外很多廠商都推出了自己的操作系統(tǒng),下面簡單介紹下目前的主流操作系統(tǒng)。Windows:windows系統(tǒng)是微軟公司1985年提出的DOS之下的操作系統(tǒng)。最初Windows只是一種在 MS-DOS 運行的附加組件,如今 Windows 已經(jīng)發(fā)展成一個獨立的操作系統(tǒng),是目前世界上用戶最多、并且兼容性最強的操作系統(tǒng),但由于移動互聯(lián)網(wǎng)的快速發(fā)展,即使是幾乎壟斷了整個個人電腦操作系統(tǒng)市場的windows也難以擺脫被替代的危險。Macosx:這是一個基于U

12、NIX的核心系統(tǒng)增強了系統(tǒng)的穩(wěn)定性、性能以及響應(yīng)能力。由于Apple公司的封閉式策略,目前Macosx也只能在Apple PC上使用,所以很多軟件企業(yè)都都為MAC開發(fā)專用版本,現(xiàn)在可供MAC使用的軟件也很豐富。但是同樣作為桌面的OS,用戶使用時長被移動設(shè)備所蠶食也在所難免。Linux等非主流操作系統(tǒng):Linux 是一種類UNIX 計算機操作系統(tǒng),而其他如DOS、NSJ、 HYPERLINK /wiki/MenuetOS o MenuetOS MenuetOS等由于其使用的特殊性,在此不表。作為桌面端的操作系統(tǒng),由于移動設(shè)備的軟硬件發(fā)展,其用戶使用時長被進一步壓縮將成為現(xiàn)實,所以對移動系統(tǒng)端的研

13、究就顯得尤為重要,下面我將介紹一下各個移動操作系統(tǒng)。Symbian: Symbian(塞班),是一款有著省 HYPERLINK /wiki/%E8%B5%84%E6%BA%90 o 資源 資源、開放性、多任務(wù)支持等諸多優(yōu)勢的有Nokia負責開發(fā)的移動操作系統(tǒng),它的前身是Psion的 HYPERLINK /wiki/EPOC_(%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F) o EPOC (操作系統(tǒng)) EPOC,并且獨占式的運行于 HYPERLINK /wiki/ARM%E6%9E%84%E6%9E%B6 o ARM構(gòu)架 ARM處理器。包含由 HYPERLINK /w

14、iki/Symbian%E5%85%AC%E5%8F%B8 o 塞班公司 塞班公司所提供的相關(guān)的函數(shù)庫(libraries)、 HYPERLINK /wiki/%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2 o 用戶界面 用戶界面(user interface)架構(gòu)和共用工具(common tools)的參考實現(xiàn)(reference implementation)。Symbian作為曾經(jīng)手機系統(tǒng)霸主,由于錯過了用戶對觸屏和網(wǎng)絡(luò)是的巨大市場需求,終使其在2013年被迫終結(jié)。 HYPERLINK /wiki/Windows_Phone o Windows Phone Wi

15、ndows Phone: HYPERLINK /wiki/Windows_Phone o Windows Phone Windows Phone是 HYPERLINK /wiki/%E5%BE%AE%E8%BB%9F o 微軟 微軟針對移動產(chǎn)品而開發(fā)的精簡 HYPERLINK /wiki/%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1 o 操作系統(tǒng) 操作系統(tǒng),其前身其實是windows mobile,設(shè)計初衷是盡量接近于 HYPERLINK /wiki/%E6%A1%8C%E9%9D%A2 o 桌面 桌面版本的 HYPERLINK /wiki/Windows o Wi

16、ndows Windows。而 HYPERLINK /wiki/Windows_Phone o Windows Phone Windows Phone操作系統(tǒng)出現(xiàn)后,windows mobile逐漸退出市場,但目前的 HYPERLINK /wiki/Windows_Phone o Windows Phone Windows Phone仍然與Android和IOS系統(tǒng)在使用體驗和用戶數(shù)方面存在著不小的差距,導(dǎo)致其應(yīng)用程序嚴重缺失,所以此系統(tǒng)也受到了限制。IOS:iOS(原名:iPhone OS)是由 HYPERLINK /wiki/%E8%98%8B%E6%9E%9C%E5%85%AC%E5%8

17、F%B8 o 蘋果公司 蘋果公司為移動設(shè)備所開發(fā)的 HYPERLINK /wiki/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%B5%B1 o 操作系統(tǒng) 操作系統(tǒng),iOS不支持非蘋果硬件的設(shè)備。其系統(tǒng)架構(gòu)層次包括核心操作系統(tǒng)層(the Core OS layer), HYPERLINK /wiki/%E6%A0%B8%E5%BF%83 o 核心 核心服務(wù)層(the Core Services layer), HYPERLINK /wiki/%E5%AA%92%E4%BD%93 o 媒體 媒體層(the Media layer),觸控應(yīng)用層(the Cocoa Touch la

18、yer)。其用戶體驗良好,但由于使用人數(shù)和軟硬件的限制,IOS對一般開發(fā)者和普通用戶來說就造成了諸多不便。Android:中文名安卓,是一個以Linux為基礎(chǔ)的開放源代碼移動設(shè)備操作系統(tǒng),主要用于移動設(shè)備,由Google成立的Open Handset Alliance(OHA,開放手持設(shè)備聯(lián)盟)持續(xù)領(lǐng)導(dǎo)與開發(fā)中。Google以Apache免費開放源代碼許可證的授權(quán)方式,發(fā)布了Android的源代碼。讓生產(chǎn)商推出搭載Android的智能手機,Android操作系統(tǒng)后來更逐漸拓展到平板電腦及其他領(lǐng)域,目前在中國市場占有率超過80%,移動設(shè)備激活量超過主要競爭對手IOS 50%,是目前中國乃至世界使

19、用量最多的移動操作系統(tǒng)。1.2國內(nèi)外手機應(yīng)用現(xiàn)狀由于安卓平臺本身的開放性,平臺上諸如安卓應(yīng)用軟件、豐富的應(yīng)用多媒體以及平臺和應(yīng)用程序資源的安全情況,使得Google自家的Google Play已經(jīng)成長為安卓應(yīng)用市場同類使用量第一的綜合娛樂在線商店,目前已經(jīng)擁有超過100萬個應(yīng)用,音樂、視頻及圖書服務(wù)也在不斷增強。而應(yīng)用的各方面質(zhì)量及針對平板類應(yīng)用,雖然都還暫時無法與蘋果App Store相比,而略微匱乏的多媒體應(yīng)用資源,也使安卓應(yīng)用的發(fā)展存在著部分令人擔憂的問題。但顯然,只要安卓平臺的使用量達到足夠大,與供應(yīng)商進行深度合作的機會成本定然會越來越低,然后良性促進安卓應(yīng)用程序的用戶體驗得到不斷提升

20、。當然,最不能忽視的,就是開放的安卓平臺所帶來的安全隱患。在過去一年中,Android已經(jīng)遭遇了廣泛的安全性批評,所以谷歌也不斷地牽頭加強安卓的各相關(guān)部分的安全性,而這,也這是會在2014年達到一個高峰。雖然谷歌目前還沒有在應(yīng)用軟件的各個方面給予最大力度的安全性程序處理,但是目前的趨勢是廠商會通過添加新的硬件和軟件輔助來對加強安卓平臺安全性,例如指紋識別功能,就是安卓廠商針對安全性的有力補充。本次開發(fā)的基于安卓平臺的密碼管理系統(tǒng),是針對目前網(wǎng)頁和APP等登陸的多樣性與復(fù)雜性提供密碼的存儲與讀取功能,采用SQLite做本地化加密,安全便捷。針對目前的發(fā)展趨勢,移動應(yīng)用必將成為安全性和便攜性的統(tǒng)一

21、,所以針對移動平臺的信息服務(wù)必須會有超前的發(fā)展。1.3移動設(shè)備和應(yīng)用發(fā)展趨勢隨著電子技術(shù)的不斷發(fā)展,數(shù)碼產(chǎn)品越來越貼近人們的生活。而隨著4G網(wǎng)絡(luò)運營牌照的相繼發(fā)放,隨之而來的就是人們會要求更高的個性化服務(wù),更豐富的便捷性應(yīng)用,以及更加快樂、輕松的娛樂場景和氣氛。在十年前,手機僅僅是作為一個通訊設(shè)備出現(xiàn)在人們的面前,但是在網(wǎng)絡(luò)全球化的今天,手機儼然成為個人的“超級計算機”,品種多樣的手機,紛亂復(fù)雜的程序軟件,不斷改變?nèi)藗兪謾C使用的態(tài)度,也不斷催生人們的好奇心。手機在這么多的苛刻標準和日新月異的技術(shù)創(chuàng)新中,該何去何從。手機產(chǎn)業(yè)鏈的變化該怎么滿足不斷增長的好奇心和挑剔。移動設(shè)備作為用戶主要使用的電子

22、設(shè)備,未來手機發(fā)展總體趨勢肯定不止硬件提升和軟件的開發(fā),手機將會慢慢發(fā)展兩大趨勢:一是普遍智能化,一是專業(yè)智能化。這很可能衍生出普通手機用途和專業(yè)人士的特殊用途的兩種或幾種類型來逐步滿足人們的需要。現(xiàn)在很多手機是基于不同平臺運行的,各種操作系統(tǒng)各有千秋。未來的手機將會逐步通用這些平臺,但不是絕對兼容,必然產(chǎn)生不協(xié)調(diào)的因素。這些平臺很可能開發(fā)出通用的手機功能軟件或共同開發(fā)某種功能或軟件。但是競爭的加劇很可能促生出通訊運營商協(xié)調(diào)各種廠商開發(fā)通用版本之類的東西,或更甚者,通訊運營商開發(fā)自主平臺模式。所以,以后競爭會更加加劇,人們選擇的會更加地難于抉擇。現(xiàn)在手機參差不齊,價格更是千差萬別。未來的手機價

23、格應(yīng)該逐步具有性價比。手機必然會幾級分化,專業(yè)必然會比較昂貴,硬件和軟件的提升可能使低價手機也據(jù)有高端手機的功能,但是可能功能不會那么強大。未來手機將會更加側(cè)重于人們的選擇,低價手機也可能具有很多功能,滿足人們的需求。那么,以后的手機會成為移動電腦嗎?手機要能成為移動電腦是不是要擁有電腦的所有功能和滿足人們需求的能力。未來的手機會更加的智能化,但是不能完全取代電腦的作用,因為手機和電腦是聯(lián)系比較緊密的,手機會逐步替代電腦的某些職能,或者說不是替代是通用了電腦某些職能,這將大大便捷人們的出行和活動。同時,我們也看到電腦產(chǎn)業(yè)的發(fā)展也很迅速,手機和電腦是相輔相成的?,F(xiàn)在手機的用途很大部分用于通信,包

24、括電話、短信、彩信、網(wǎng)頁、QQ等等。但這只是手機內(nèi)部或者說是手機產(chǎn)業(yè)內(nèi)部模式化的服務(wù)。硬件提升和軟件開發(fā)僅僅是手機未來發(fā)展的先決條件。手機的發(fā)展不僅僅是手機單方面的,是多個方面的發(fā)展。比如:手機將可能成為虛擬貨幣流通渠道,這就需要運營商等等行業(yè)的支持1。手機可能出現(xiàn)虛擬人物,這就需要媒體等行業(yè)的支持。手機有可能內(nèi)置其他類別的設(shè)備的,比如:醫(yī)療,測距,夜視等等就需要很多行業(yè)的支持。而智能化的設(shè)備,必將針對用戶的不同而滿足不同的需求,未來的手機將更加的虛擬化和人性化,當然對用戶識別的程度也越來越高,而本次設(shè)計的主題是作為密碼的管理系統(tǒng),希望能作為拋裝引玉之用。1.4主要研究內(nèi)容本文研究的主要內(nèi)容是

25、基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)。前期即確定了系統(tǒng)的研究目標,分別分析了手機密碼管理系統(tǒng)的用戶需求、簡述了管理系統(tǒng)UI設(shè)計、功能模塊設(shè)計、數(shù)據(jù)庫的調(diào)用和設(shè)計、系統(tǒng)功能實現(xiàn)、數(shù)據(jù)庫的處理與信息的加密,然后是對此密碼管理系統(tǒng)進行測試展示等多方面內(nèi)容?;谶@樣的設(shè)計思路,本文主要完成以下工作:1.系統(tǒng)的用戶需求分析,包括系統(tǒng)研究方向分析、客戶端功能需求分析以及后臺處理的加密需求分析。2.系統(tǒng)的整體設(shè)計,主要系統(tǒng)UI設(shè)計、各界面功能結(jié)構(gòu)設(shè)計等。3.手機客戶端的功能模塊設(shè)計,主要針對系統(tǒng)進行單一界面的功能設(shè)計與處理。4.針對儲存數(shù)據(jù)的加密處理,由于密碼存儲的特殊性,針對儲存信息進行了加密設(shè)計。5.

26、針對工程文件和代碼進行檢查,確保程序理論上的可操作性。6.針對安卓平臺,對密碼管理系統(tǒng)的功能進行設(shè)計與實現(xiàn)。如九宮格的程序管理功能,信息查詢功能,以及信息的個性化處理功能等。7.部署系統(tǒng)測試環(huán)境,針對軟件客戶端進行不同方面,多層次的測試。第二章 安卓的相關(guān)介紹及分析Android 是一個專門針對移動設(shè)備的軟件集,它包括一個操作系統(tǒng),中間件和一些重要的應(yīng)用程序。Beta版的 HYPERLINK /android/download.html Android SDK 提供了在Android平臺上使用Java語言進行Android應(yīng)用開發(fā)必須的工具和API接口。2.1安卓系統(tǒng)特性1.應(yīng)用程序框架:支持

27、組件的重用與替換 2.Dalvik 虛擬機:專為移動設(shè)備優(yōu)化 3.集成的瀏覽器:基于開源的 HYPERLINK / WebKit 引擎 4.優(yōu)化的圖形庫:包括定制的2D圖形庫,3D圖形庫基于OpenGL ES 1.0 (硬件加速可選) 5.SQLite:開源嵌入式數(shù)據(jù)庫引擎,用作結(jié)構(gòu)化的數(shù)據(jù)存儲 6.多媒體支持:包括常見的音頻、視頻和靜態(tài)圖像格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) 7.GSM:電話技術(shù) (依賴于硬件) 8.藍牙Bluetooth, EDGE, 3G, 和 WiFi (依賴于硬件) 9.照相機,GPS,指南針,和加速度計

28、(accelerometer) (依賴于硬件) 10.豐富的開發(fā)環(huán)境 包括設(shè)備模擬器,調(diào)試工具,內(nèi)存及性能分析圖表,和Eclipse集成開發(fā)環(huán)境插件 2.2安卓系統(tǒng)架構(gòu)如圖2-1所示的是Android操作系統(tǒng)的主要組件。每一部分將會在下面具體描述。2.2.1應(yīng)用程序Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的2。2.2.2 應(yīng)用程序框架開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊

29、并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。安卓系統(tǒng)架構(gòu)圖,如圖2-1所示。隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括; 圖2-1安卓系統(tǒng)架構(gòu)圖1.豐富而又可擴展的視圖(Views),可以用來構(gòu)建應(yīng)用程序, 它包括列表(lists)網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web瀏覽器。 2.內(nèi)容提供器(Content Providers)使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)(如聯(lián)系人數(shù)據(jù)庫), 或者共享它們自己的數(shù)據(jù) 3.資源管理器(Reso

30、urce Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和布局文件( layout files )。 4.通知管理器 (Notification Manager) 使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。 5.活動管理器( Activity Manager) 用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。 2.2.3 程序庫Android 包含一些C/C+庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些核心庫:1.系統(tǒng) C 庫:一個從 BSD 繼承來的標準 C 系統(tǒng)函數(shù)庫( libc ), 它是專門為基

31、于 embedded linux的設(shè)備定制的。 2.媒體庫:基于 Packet Video Open CORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。 3.Surface Manager:對顯示子系統(tǒng)的管理,并且為多個應(yīng)用程序提 供了2D和3D圖層的無縫融合。 4.LibWebCore:一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖。 5.SGL:底層的2D圖形引擎 6.3D libraries:基于OpenGL ES 1.0 APIs實現(xiàn);該庫

32、可以使用硬件 3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。 7.FreeType:位圖(bitmap)和矢量(vector)字體顯示。 8.SQLite:一個對于所有應(yīng)用程序可用,功能強勁的輕型關(guān)系型數(shù)據(jù)庫引擎。 2.2.4 Android 運行庫Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每一個Android應(yīng)用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬 機實例。Dalvik被設(shè)計成一個設(shè)備可以同時高效地運行多個虛擬系統(tǒng)。 Dalvik虛擬機執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了 優(yōu)化。同時虛擬機

33、是基于寄存器的,所有的類都經(jīng)由JAVA編譯器編譯,然后通過SDK中 的 dx 工具轉(zhuǎn)化成.dex格式由虛擬機執(zhí)行。Dalvik虛擬機依賴于linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制。2.2.5 Linux 內(nèi)核Android 的核心系統(tǒng)服務(wù)依賴于 Linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進程管理, 網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。 Linux 內(nèi)核也同時作為硬件和軟件棧之間的抽象層。當然,操作系統(tǒng)的初始化和編程接口和標準的linux系統(tǒng)是有區(qū)別的,安卓更多的只是需要一些與移動設(shè)備相關(guān)的驅(qū)動程序,例如Display Driver(顯示驅(qū)動),Keyboard Driver(鍵盤驅(qū)動)等

34、3。2.3安卓優(yōu)勢介紹1.開放性:Android 系統(tǒng)是一個完備的全開放性的移動平臺,系統(tǒng)本身并不沒有任何費用,從而大大的降低了移動廠商的開發(fā)成本,也使移動運營商可以放心的開發(fā)屬于自己的新應(yīng)用。這也是我們選擇 Android 平臺開發(fā)的重要原因之一。2.所有的應(yīng)用都是平等的:Android 的所有其他的東西除了這個核心引擎Dalvik 虛擬機,包括系統(tǒng)的核心應(yīng)用和第三方應(yīng)用都是完全平等的。3.應(yīng)用間無界限:Android 打破了應(yīng)用之間的界限,比如開發(fā)人員可以進行基于位置服務(wù)的開發(fā),這個就將上網(wǎng) Web 服務(wù),Google maps還有服務(wù)器技術(shù)連接到了一起。4.快速方便的應(yīng)用開發(fā):Andro

35、id 平臺為移動開發(fā)者提供了大量的實用庫和工具,開發(fā)者可以使這些庫文件和工具迅速的創(chuàng)建屬于自己的應(yīng)用。第三章 安卓開發(fā)環(huán)境的搭建安卓程序由JAVA編程語言開發(fā)。因此在開發(fā)安卓程序之前,需要下載并安裝開發(fā)java程序的JDK,以及運行環(huán)境Eclipse。除此之外,還需要下載并安裝SDK和ADT,并配置JDK和SDK的環(huán)境變量。3.1各個組件的含義和功能的簡單介紹JDK:全名Java Development Kit,即Java 語言的軟件開發(fā)工具包。JDK包含的基本組件包括:javac(編譯器)、jar(打包工具)、javadoc( 文檔生成器)、jdbdebugger(查錯工具)、java( 運

36、行編譯后的java程序)、appletviewer(小程序 HYPERLINK /view/7718.htm t _blank 瀏覽器)、Jconsole( Java進行 HYPERLINK /view/25302.htm t _blank 系統(tǒng)調(diào)試和監(jiān)控的工具),目前使用的是發(fā)行日期為2014-3-18日的最新版本Java SE 8.0 (1.8.0)。Eclipse:Eclipse 是一個開放 HYPERLINK /subview/60376/5122159.htm t _blank 源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)

37、境。而Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK),目前使用的是由谷歌官網(wǎng)集成提供的Eclipse4.3.0版本。ADT:全名為Android development tools ,是Google專門為Eclipse開發(fā)的一個插件用于輔助開發(fā)Android程序發(fā)的一個插件用于輔助開發(fā)Android程序。SDK:這里特指Android SDK,全名 Android software development kit,意為安卓軟件開發(fā)工具包,是軟件開發(fā)時為建立應(yīng)用軟件的開發(fā)工具的集合。對安卓開發(fā)組件有了了解之后,下面我將進行wind

38、ows 7系統(tǒng)下開發(fā)環(huán)境的搭建。Android開發(fā)所需的軟件及下載地址如表3.1所示:目前,Google將Android SDK、Eclipse和ADT封裝在了一個壓縮包內(nèi),而我使用即是此壓縮包,解壓即可。下載完成后文件如圖3-1所示:圖3-1 最終完成文件截圖3.2安裝與配置3.2.1.安裝JDK雙擊jdk安裝程序,在啟動后大約30秒即可點擊“next”選項,過程會有多次要求點擊“next”,只要一直點擊下一步即可。在安裝的過程中會出現(xiàn)安裝位置的選擇以及是否創(chuàng)建快捷方式選項。對于jdk的安裝位置,我選擇在了D:program filesJava中,且并未創(chuàng)建jdk快捷方式。安裝完成之后,需要

39、對系統(tǒng)的環(huán)境變量進行配置,具體方法如下:依次點擊,計算機(右擊)-屬性-高級系統(tǒng)設(shè)置-系統(tǒng)屬性-環(huán)境變量,然后在系統(tǒng)變量欄找到path環(huán)境變量,如果沒有path變量可以點擊新建,設(shè)置變量名為path,然后找到j(luò)dk的安裝目錄文件,定位到bin文件夾,復(fù)制路徑,再粘貼到變量值輸入框,以“;”結(jié)尾即可。而我是系統(tǒng)本身有path變量,所以直接在在變量值后面添加了“D:program filesJavajdk1.8.0_05bin;”同理,在系統(tǒng)變量中,選擇點擊“新建”按鈕,新建一個變量名為“Classpath”的變量,找到j(luò)dk目錄下的lib文件夾,定位到rt.jar文件,變量值輸入框輸入“D:pr

40、ogram filesJavajdk1.8.0_05jrelibrt.jar;.”即可(變量名后面是一個點和一個分號)。安裝好JDK并配置好環(huán)境變量后,運行CMD命令,在控制臺輸入javac命令,然后輸入java version命令,會出現(xiàn)如圖3-2所示的JDK編譯器信息,其中包括修改命令的語法以及JDK版本等信息。這說明JDK安裝成功。 3.2.2 Android SDK和Eclipse的安裝目前Google已經(jīng)將SDK和Eclipse集成于ADT壓縮包(目前文件名adt-bundle-windows-x86-20140321)中,所以這一步直接將從下載的ADT包解壓即可。解壓后,雙擊Ecl

41、ipse.exe程序,首次打開時會要求創(chuàng)建workspace(工作區(qū)),可直接點擊默認選項,然后依次點擊Eclipse菜單欄“help”-“install new software”-“ADD”在“ADT repository“編輯框的”name中輸入名稱,例如我輸入的“ADT”,然后在下框中輸入/android/eclipse/即自動安裝ADT,這個過程可能需要幾分鐘。圖3-2 jdk安裝結(jié)果圖按照上述方法安裝完成后,只是擁有了安卓4.4.2版本的模擬器,而我也添加了其他版本模擬器,如Android2.3.3,Android4.0等。有網(wǎng)絡(luò)在線安裝的方法,另外的方法則是可以直接下載壓縮包,解

42、壓后將相關(guān)文件復(fù)制至“D:adt-bundle-windows-x86-20140321sdkplatforms”目錄下,然后依次點擊菜單欄“window”-“preference”點擊“Android”,再選擇解壓文件所在文件夾就可導(dǎo)入SDK文件,導(dǎo)入狀態(tài)如圖3-3所示。這種方法除了快捷之外,最重要的是可以避免因為網(wǎng)絡(luò)原因而出現(xiàn)錯誤。圖3-3 文件導(dǎo)入結(jié)果圖在模擬器引入完成之后就需要配置SDK的環(huán)境變量,和配置JDK一樣,直接在PATH后添加 D:adt-bundle-windows-x86-20140321sdkplatform-tools;即可。完成以上步驟之后,運行CMD命令,在控制臺

43、中輸入adb命令,將輸出如圖3-4所示的Android SDK的相關(guān)信息,這說明Android SDK安裝成功。圖3-4 Android SDK安裝結(jié)果圖3.2.3 模擬器的創(chuàng)建如上已完成安裝后,已自帶安卓4.4.2模擬器,加之自行添加的Android2.3.3,Android4.2等模擬器,就可以對安卓模擬器進行創(chuàng)建與使用,而我目前創(chuàng)建的模擬器如下圖3-5示:圖3-5 創(chuàng)建的模擬器列表第四章 基于安卓平臺的密碼管理系統(tǒng)的設(shè)計與實現(xiàn)4.1研究目標1.了解Java語言的性質(zhì),應(yīng)用領(lǐng)域等Java特性 2.了解安卓系統(tǒng)基本特性,以及安卓界面布局及數(shù)據(jù)庫調(diào)用的基本知識 3.掌握Eclipse開發(fā)環(huán)境的

44、搭建與使用,熟悉Eclipse相關(guān)組件的使用以及安卓ADT的安裝與使用 4.掌握Java編程開發(fā)技術(shù),并通過設(shè)置斷點對程序進行調(diào)試 5.生成APK軟件包對程序進行終端調(diào)試及BUG處理 4.2需求分析本軟件是一個基于安卓平臺的密碼管理系統(tǒng),啟動程序后可對用戶需要記憶的賬戶、用戶名和密碼信息進行存儲和查看,在手機終端數(shù)據(jù)庫進行加密保存,有效防止密碼泄露。因此可以基本了解軟件的功能需求:1.首先是用戶用戶名和密碼的存儲;2.其次對用戶所存儲的密碼信息進行加密保存;3.對用戶所存信息的查找和排序;4.對用戶使用此軟件系統(tǒng)進行九宮格加密操作。4.3程序功能設(shè)計作為基于安卓平臺的密碼管理系統(tǒng),最主要的功能

45、就是對用戶存儲的信息進行安全保存,而安全管理首先要考慮的因素即為軟件的使用權(quán)限,并且出于方便性考慮,采用九宮格解鎖方式對軟件權(quán)限進行限制。針對信息的敏感性,對程序存儲信息的查詢與加密也顯得尤為重要,所以軟件必須采用加密算法以盡量保證信息安全。在信息安全的前提下,對所存儲信息進行可視化操作也是軟件的基本功能。如圖4-1所示,為軟件的功能圖。4.3 UI界面設(shè)計根據(jù)需求分析及軟件的實際apk程序,可以知道這個程序一個有四個界面,這里需要進一步分析每個用戶界面中應(yīng)該包括哪些顯示內(nèi)容。第一個界面即為九宮格解鎖界面,而如果是用戶第一次安裝,則會直接進行初始密碼設(shè)定,而后續(xù)使用必須要密碼正常才可使用,由于

46、加密管理的原因,此軟件登陸密碼的破解可能性很小,截圖如圖4-2所示。進入程序后界面功能區(qū)分為信息添加和信息查詢兩部分,顧名思義為對用戶信息的處理,添加功能直接點擊“添加”按鈕即可,查詢功能采用精確匹配方式進行查詢,避免誤操作,界面如圖4-3所示。在對用戶信息進行添加之后,為了方便用戶對信息的管理,可對屏幕長按進行更多選項操作,其中包括詳細信息的查看和修改,順序的移動,txt文件的到處等操作,界面如圖4-4所示。在程序主界面下,還有一個選項,那就是采用物理菜單按鍵進行相應(yīng)功能,其中包括軟件說明,九宮格密碼的修改,txt文件的導(dǎo)入,當然,還有程序退出選項,界面如圖4-5所示。 4.4功能模塊設(shè)計從

47、功能需求上分析可以看出,整個應(yīng)用程序應(yīng)劃分為四個模塊,分別是九宮格解鎖、主界面、長按選項和菜單選項功能區(qū)。九宮格解鎖界面是用戶進入程序使用的管理的界面,可以比喻為進入倉庫安全門的鑰匙;而主界面主要是用戶信息的存儲與查詢,可比喻為倉庫內(nèi)物品的進存;然后是長按選項,可以對存儲密碼信息的查看、排序和文件導(dǎo)出,可比喻為倉庫的物品處理及物品調(diào)出;最后是菜單選項界面,包括軟件說明,九宮格密碼的修改和程序退出功能等,可理解為倉庫的最終管理。4.5程序數(shù)據(jù)庫設(shè)計和數(shù)據(jù)加密 SQLite 是 Android 系統(tǒng)中的輕量級自包含的開源數(shù)據(jù)庫管理系統(tǒng),所以程序直接采用了此數(shù)據(jù)庫。SQLite 編譯運行時的內(nèi)存開銷

48、和磁盤開銷都非常小,并且支持絕大部分的標準 SQL 語句。SQLite 是一個以文件為主的關(guān)系型數(shù)據(jù)庫,其包含的數(shù)據(jù)為某個應(yīng)用程序所私有,如果其他應(yīng)用程序想要使用這些數(shù)據(jù),該應(yīng)用程序必須提供包含這些數(shù)據(jù)的 Content Provider 以向其他應(yīng)用程序共享這些數(shù)據(jù)。針對本次系統(tǒng)設(shè)計的安全性要求,在數(shù)據(jù)庫中,主要采用了java secretkey安全加密程序?qū)Τ绦蚣俺绦驍?shù)據(jù)庫進行了加密,將字符串轉(zhuǎn)化為十六進制進行存儲,不管是數(shù)字還是字母,都是以字符串的形式進行轉(zhuǎn)化,盡量保證用戶數(shù)據(jù)安全。在完成用戶界面設(shè)計、數(shù)據(jù)庫設(shè)計和模塊設(shè)計后,至此程序設(shè)計階段基本完成。4.6程序處理流程 如圖4-6所示,

49、為密碼管理系統(tǒng)的業(yè)務(wù)處理流程圖;圖4-6 程序處理流程圖4.7文件結(jié)構(gòu)與用途在程序開發(fā)階段,首先確定“基于安卓平臺的密碼管理系統(tǒng)”的工程名為PMS,據(jù)程序模塊設(shè)計的內(nèi)容,建立PMS工程。PMS工程源代碼的結(jié)構(gòu)如圖4-7和圖4-8所示。而表4.1則對PMS中,對各個工程文件用途加以說明 圖4-7工程源代碼結(jié)構(gòu)圖一圖4-8工程源代碼結(jié)構(gòu)圖二Android的資源文件保存在/res的子目錄中。其中/res/ drawable目錄中保存的是黑色圖片背景和相關(guān)按鈕XML文件,/res/ drawable-hdpi目錄中保存的是圖像文件(圖片),/res/values目錄中保存的是用來自定義字符串和顏色的文

50、件,/res/ layout目錄中保存的是XML格式的布局文件。所有在程序開發(fā)階段可以被調(diào)用的資源都保存在這些目錄中。4.8程序主要代碼4.8.1 九宮格部分代碼在介紹PMS的核心代碼前,首先了解一下九宮格設(shè)置的部分代碼;public class LocusPassWordView extends View private float w = 0;private float h = 0;/private boolean isCache = false;/private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);/private Point

51、mPoints = new Point33;/ 圓的半徑private float r = 0;/ 選中的點private List sPoints = new ArrayList();private boolean checking = false;private Bitmap locus_round_original;/圓點初始狀態(tài)時的圖片private Bitmap locus_round_click;/圓點點擊時的圖片private Bitmap locus_round_click_error;/出錯時圓點的圖片private Bitmap locus_line;/正常狀態(tài)下線的圖片p

52、rivate Bitmap locus_line_semicircle;private Bitmap locus_line_semicircle_error;private Bitmap locus_arrow;/線的移動方向private Bitmap locus_line_error;/錯誤狀態(tài)下的線的圖片private long CLEAR_TIME = 0;/清除痕跡的時間private int passwordMinLength = 5;/密碼最小長度private boolean isTouch = true;/ / 是否可操作private Matrix mMatrix = ne

53、w Matrix();private int lineAlpha = 50;/連線的透明度4.8.2主界面的主要代碼在看完九宮格的部分代碼之后,下面看看程序主界面的主要代碼;public class InfoActivity extends Activity int count=0; int sid = 0; /ID int posi =0;/索引 String new_str=; String new_id=;/新增ID String new_name=;/新增名稱 String new_username=;/新增用戶名 String new_password=;/新增密碼 Cursor g

54、lobal_cursor; /數(shù)據(jù)庫游標 Button button1;/查詢按鈕 Button button2;/添加按鈕 static final String m=按名稱,按用戶名;/查詢條件 Spinner spinner1; /下拉框 ArrayAdapter adapter; /適配器 ListView list;/LISTVIEWArrayListHashMap listItem;HashMap map;SQLiteDatabase db;SimpleAdapter listItemAdapter;4.8.3長按選項部分代碼根據(jù)程序界面的深入,下面看看長按密碼信息的長按選項按鈕的

55、相關(guān)代碼;list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; posi = info.position; map = listItem.get(info.p

56、osition); new_name = (String)map.get(ItemTitle); global_cursor = db.rawQuery(SELECT ID FROM PwdTable where Name = ?,new Stringnew_name); if(global_cursor.moveToNext() sid = global_cursor.getInt(0); menu.setHeaderTitle(數(shù)據(jù)操作項); menu.add(0, 0, 0, 詳細信息); menu.add(0, 1, 0, 新增); menu.add(0, 2, 0, 刪除); men

57、u.add(0, 3, 0, 修改); menu.add(0, 4, 0, 向上移動); menu.add(0, 5, 0, 向下移動); menu.add(0, 6, 0, 移至第一); menu.add(0, 7, 0, 移至最后); menu.add(0, 8, 0, 導(dǎo)出為txt); );4.8.4 選項菜單主要代碼最后,看看關(guān)于菜單欄中關(guān)于密碼修改部分的相關(guān)源代碼; public class SetPasswordActivity extends Activity private LocusPassWordView lpwv;private String password;priva

58、te boolean needverify = true;private Toast toast;private void showToast(CharSequence message) if (null = toast) toast = Toast.makeText(this, message, Toast.LENGTH_SHORT); else toast.setText(message);toast.show();Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceStat

59、e); setContentView(R.layout.setpassword_activity); lpwv = (LocusPassWordView)this.findViewById(R.id.mLocusPassWordView); lpwv.setOnCompleteListener(new OnCompleteListener() public void onComplete(String mPassword) password = mPassword;if (needverify) if (lpwv.verifyPassword(mPassword) showToast(密碼輸入

60、正確,請輸入新密碼!);lpwv.clearPassword();needverify = false; else showToast(密碼輸入錯誤,請重新輸入!);lpwv.clearPassword();password = ;);OnClickListener mOnClickListener = new OnClickListener() public void onClick(View v) switch (v.getId() case R.id.tvSave:if (StringUtil.isNotEmpty(password) lpwv.resetPassWord(passwor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論