版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录 TOC o 1-2 h z u HYPERLINK l _Toc388887846 HYPERLINK l _Toc388887847 摘要 II基于安卓平台的密码管理系统的设计与实现摘要:随着云计算的发展,越来越多的网络服务需要登录账户用以用户识别、大数据应用等,而用户对于各类用户名与密码的记忆与使用,却是一大不便。随着移动设备使用时长的不断提高,智能手机必将成为用户获取信息和服务的主要途径。因此,基于安卓平台的密码管理软件必将有很大的发展空间。本文对目前的用户应用平台进行分析与比较,包括windows、Mac OSX、 Symbian、windows phone、IOS、Andro
2、id等常见操作平台。重点研究了Android的系统架构及组件模型,接着解析了Android中的重要API和应用构成,以及Android的界面布局和数据存储。在对Android进行详细解析之后,基于安卓平台开发一款密码管理软件。软件主要包括四个方面的功能,第一个功能就是对进入程序时密码的设置与校验,第二个方面是用户密码信息的存储与查询,第三个方面就是针对用户信息的修改及导出,第四个方面就是诸如修改密码等菜单键功能。本程序系统界面美观流畅,操作简单,具有良好的可本程序系统界面美观流畅,操作简单,具有良好的可扩展性和可维护性;本程序经过真机使用与测试,可以稳定流畅运行,能满足软件的功能要求以及用户的
3、使用需求。关键词:安卓;Java;密码管理;数据存储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、一章 引言随着互联网的蓬勃发展,互联网服务已经涉及人们的工作、生活的方方面面。而随着移动智能设备的快速发展,友好的使用界面和良好的用户体验直接促进了移动互联网的发展。根据目前的情况来看,移动端使用时间长于PC端的使用时长的时代已经到来,而移动设备的方便也直接促成互联网用户对移动设备的依赖。目前国内乃至世界使用量最多的移动开发平台即为安卓系统。截止2014年第一季度,安卓移动设备的激活量已超过10亿台,市场占有率超过80%,作为安卓应用程序的主要的下载市场之一的Google play,总应用超过100万个。面对如此庞大的应用程序使用量,基于安卓平台的密码管理程序的开发却仅仅处于探索阶段,实际开发
10、量并不多,这也给了本次程序发展的机遇。下面首先介绍一下安卓系统。安卓是一种以Linux为基础,主要应用于移动设备的操作系统,2005年Google向最初开发者注资后,组建了开放手机联盟开发改良此系统。安卓的核心系统是基于Linux 2.6内核(Linux Kernel)的,而安卓运行时(Android Runtime)包括核心库和Dalvik虚拟机两部分,而应用层(Application)是基于Java语言编写,运用应用框架(Application Framework)开发,可调用SQLite等安卓类库的程序。因为自身对安卓手机的热爱以及未来工作发展的原因,我开始自学Java语言,通过老师和同
11、学的认真指导,开发出了基于安卓平台密码管理系统。通过这次毕业设计的研究和展示,我希望能尽量展现出我对安卓开发的努力和成果。1.1国内外手机系统现状目前国内外很多厂商都推出了自己的操作系统,下面简单介绍下目前的主流操作系统。Windows:windows系统是微软公司1985年提出的DOS之下的操作系统。最初Windows只是一种在 MS-DOS 运行的附加组件,如今 Windows 已经发展成一个独立的操作系统,是目前世界上用户最多、并且兼容性最强的操作系统,但由于移动互联网的快速发展,即使是几乎垄断了整个个人电脑操作系统市场的windows也难以摆脱被替代的危险。Macosx:这是一个基于U
12、NIX的核心系统增强了系统的稳定性、性能以及响应能力。由于Apple公司的封闭式策略,目前Macosx也只能在Apple PC上使用,所以很多软件企业都都为MAC开发专用版本,现在可供MAC使用的软件也很丰富。但是同样作为桌面的OS,用户使用时长被移动设备所蚕食也在所难免。Linux等非主流操作系统:Linux 是一种类UNIX 计算机操作系统,而其他如DOS、NSJ、 HYPERLINK /wiki/MenuetOS o MenuetOS MenuetOS等由于其使用的特殊性,在此不表。作为桌面端的操作系统,由于移动设备的软硬件发展,其用户使用时长被进一步压缩将成为现实,所以对移动系统端的研
13、究就显得尤为重要,下面我将介绍一下各个移动操作系统。Symbian: Symbian(塞班),是一款有着省 HYPERLINK /wiki/%E8%B5%84%E6%BA%90 o 资源 资源、开放性、多任务支持等诸多优势的有Nokia负责开发的移动操作系统,它的前身是Psion的 HYPERLINK /wiki/EPOC_(%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F) o EPOC (操作系统) EPOC,并且独占式的运行于 HYPERLINK /wiki/ARM%E6%9E%84%E6%9E%B6 o ARM构架 ARM处理器。包含由 HYPERLINK /w
14、iki/Symbian%E5%85%AC%E5%8F%B8 o 塞班公司 塞班公司所提供的相关的函数库(libraries)、 HYPERLINK /wiki/%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2 o 用户界面 用户界面(user interface)架构和共用工具(common tools)的参考实现(reference implementation)。Symbian作为曾经手机系统霸主,由于错过了用户对触屏和网络是的巨大市场需求,终使其在2013年被迫终结。 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 微软 微软针对移动产品而开发的精简 HYPERLINK /wiki/%E4%BD%9C%E6%A5%AD%E7%B3%BB%E7%B5%B1 o 操作系统 操作系统,其前身其实是windows mobile,设计初衷是尽量接近于 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操作系统出现后,windows mobile逐渐退出市场,但目前的 HYPERLINK /wiki/Windows_Phone o Windows Phone Windows Phone仍然与Android和IOS系统在使用体验和用户数方面存在着不小的差距,导致其应用程序严重缺失,所以此系统也受到了限制。IOS:iOS(原名:iPhone OS)是由 HYPERLINK /wiki/%E8%98%8B%E6%9E%9C%E5%85%AC%E5%8
17、F%B8 o 苹果公司 苹果公司为移动设备所开发的 HYPERLINK /wiki/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%B5%B1 o 操作系统 操作系统,iOS不支持非苹果硬件的设备。其系统架构层次包括核心操作系统层(the Core OS layer), HYPERLINK /wiki/%E6%A0%B8%E5%BF%83 o 核心 核心服务层(the Core Services layer), HYPERLINK /wiki/%E5%AA%92%E4%BD%93 o 媒体 媒体层(the Media layer),触控应用层(the Cocoa Touch la
18、yer)。其用户体验良好,但由于使用人数和软硬件的限制,IOS对一般开发者和普通用户来说就造成了诸多不便。Android:中文名安卓,是一个以Linux为基础的开放源代码移动设备操作系统,主要用于移动设备,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。Google以Apache免费开放源代码许可证的授权方式,发布了Android的源代码。让生产商推出搭载Android的智能手机,Android操作系统后来更逐渐拓展到平板电脑及其他领域,目前在中国市场占有率超过80%,移动设备激活量超过主要竞争对手IOS 50%,是目前中国乃至世界使
19、用量最多的移动操作系统。1.2国内外手机应用现状由于安卓平台本身的开放性,平台上诸如安卓应用软件、丰富的应用多媒体以及平台和应用程序资源的安全情况,使得Google自家的Google Play已经成长为安卓应用市场同类使用量第一的综合娱乐在线商店,目前已经拥有超过100万个应用,音乐、视频及图书服务也在不断增强。而应用的各方面质量及针对平板类应用,虽然都还暂时无法与苹果App Store相比,而略微匮乏的多媒体应用资源,也使安卓应用的发展存在着部分令人担忧的问题。但显然,只要安卓平台的使用量达到足够大,与供应商进行深度合作的机会成本定然会越来越低,然后良性促进安卓应用程序的用户体验得到不断提升
20、。当然,最不能忽视的,就是开放的安卓平台所带来的安全隐患。在过去一年中,Android已经遭遇了广泛的安全性批评,所以谷歌也不断地牵头加强安卓的各相关部分的安全性,而这,也这是会在2014年达到一个高峰。虽然谷歌目前还没有在应用软件的各个方面给予最大力度的安全性程序处理,但是目前的趋势是厂商会通过添加新的硬件和软件辅助来对加强安卓平台安全性,例如指纹识别功能,就是安卓厂商针对安全性的有力补充。本次开发的基于安卓平台的密码管理系统,是针对目前网页和APP等登陆的多样性与复杂性提供密码的存储与读取功能,采用SQLite做本地化加密,安全便捷。针对目前的发展趋势,移动应用必将成为安全性和便携性的统一
21、,所以针对移动平台的信息服务必须会有超前的发展。1.3移动设备和应用发展趋势随着电子技术的不断发展,数码产品越来越贴近人们的生活。而随着4G网络运营牌照的相继发放,随之而来的就是人们会要求更高的个性化服务,更丰富的便捷性应用,以及更加快乐、轻松的娱乐场景和气氛。在十年前,手机仅仅是作为一个通讯设备出现在人们的面前,但是在网络全球化的今天,手机俨然成为个人的“超级计算机”,品种多样的手机,纷乱复杂的程序软件,不断改变人们手机使用的态度,也不断催生人们的好奇心。手机在这么多的苛刻标准和日新月异的技术创新中,该何去何从。手机产业链的变化该怎么满足不断增长的好奇心和挑剔。移动设备作为用户主要使用的电子
22、设备,未来手机发展总体趋势肯定不止硬件提升和软件的开发,手机将会慢慢发展两大趋势:一是普遍智能化,一是专业智能化。这很可能衍生出普通手机用途和专业人士的特殊用途的两种或几种类型来逐步满足人们的需要。现在很多手机是基于不同平台运行的,各种操作系统各有千秋。未来的手机将会逐步通用这些平台,但不是绝对兼容,必然产生不协调的因素。这些平台很可能开发出通用的手机功能软件或共同开发某种功能或软件。但是竞争的加剧很可能促生出通讯运营商协调各种厂商开发通用版本之类的东西,或更甚者,通讯运营商开发自主平台模式。所以,以后竞争会更加加剧,人们选择的会更加地难于抉择。现在手机参差不齐,价格更是千差万别。未来的手机价
23、格应该逐步具有性价比。手机必然会几级分化,专业必然会比较昂贵,硬件和软件的提升可能使低价手机也据有高端手机的功能,但是可能功能不会那么强大。未来手机将会更加侧重于人们的选择,低价手机也可能具有很多功能,满足人们的需求。那么,以后的手机会成为移动电脑吗?手机要能成为移动电脑是不是要拥有电脑的所有功能和满足人们需求的能力。未来的手机会更加的智能化,但是不能完全取代电脑的作用,因为手机和电脑是联系比较紧密的,手机会逐步替代电脑的某些职能,或者说不是替代是通用了电脑某些职能,这将大大便捷人们的出行和活动。同时,我们也看到电脑产业的发展也很迅速,手机和电脑是相辅相成的。现在手机的用途很大部分用于通信,包
24、括电话、短信、彩信、网页、QQ等等。但这只是手机内部或者说是手机产业内部模式化的服务。硬件提升和软件开发仅仅是手机未来发展的先决条件。手机的发展不仅仅是手机单方面的,是多个方面的发展。比如:手机将可能成为虚拟货币流通渠道,这就需要运营商等等行业的支持1。手机可能出现虚拟人物,这就需要媒体等行业的支持。手机有可能内置其他类别的设备的,比如:医疗,测距,夜视等等就需要很多行业的支持。而智能化的设备,必将针对用户的不同而满足不同的需求,未来的手机将更加的虚拟化和人性化,当然对用户识别的程度也越来越高,而本次设计的主题是作为密码的管理系统,希望能作为抛装引玉之用。1.4主要研究内容本文研究的主要内容是
25、基于安卓平台的密码管理系统的设计与实现。前期即确定了系统的研究目标,分别分析了手机密码管理系统的用户需求、简述了管理系统UI设计、功能模块设计、数据库的调用和设计、系统功能实现、数据库的处理与信息的加密,然后是对此密码管理系统进行测试展示等多方面内容。基于这样的设计思路,本文主要完成以下工作:1.系统的用户需求分析,包括系统研究方向分析、客户端功能需求分析以及后台处理的加密需求分析。2.系统的整体设计,主要系统UI设计、各界面功能结构设计等。3.手机客户端的功能模块设计,主要针对系统进行单一界面的功能设计与处理。4.针对储存数据的加密处理,由于密码存储的特殊性,针对储存信息进行了加密设计。5.
26、针对工程文件和代码进行检查,确保程序理论上的可操作性。6.针对安卓平台,对密码管理系统的功能进行设计与实现。如九宫格的程序管理功能,信息查询功能,以及信息的个性化处理功能等。7.部署系统测试环境,针对软件客户端进行不同方面,多层次的测试。第二章 安卓的相关介绍及分析Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的 HYPERLINK /android/download.html Android SDK 提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API接口。2.1安卓系统特性1.应用程序框架:支持
27、组件的重用与替换 2.Dalvik 虚拟机:专为移动设备优化 3.集成的浏览器:基于开源的 HYPERLINK / WebKit 引擎 4.优化的图形库:包括定制的2D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选) 5.SQLite:开源嵌入式数据库引擎,用作结构化的数据存储 6.多媒体支持:包括常见的音频、视频和静态图像格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) 7.GSM:电话技术 (依赖于硬件) 8.蓝牙Bluetooth, EDGE, 3G, 和 WiFi (依赖于硬件) 9.照相机,GPS,指南针,和加速度计
28、(accelerometer) (依赖于硬件) 10.丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件 2.2安卓系统架构如图2-1所示的是Android操作系统的主要组件。每一部分将会在下面具体描述。2.2.1应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的2。2.2.2 应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块
29、并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。安卓系统架构图,如图2-1所示。隐藏在每个应用后面的是一系列的服务和系统, 其中包括; 图2-1安卓系统架构图1.丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists)网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。 2.内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数(如联系人数据库), 或者共享它们自己的数据 3.资源管理器(Reso
30、urce Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。 4.通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 5.活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。 2.2.3 程序库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过Android 应用程序框架为开发者提供服务。以下是一些核心库:1.系统 C 库:一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基
31、于 embedded linux的设备定制的。 2.媒体库:基于 Packet Video Open CORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。 3.Surface Manager:对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。 4.LibWebCore:一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。 5.SGL:底层的2D图形引擎 6.3D libraries:基于OpenGL ES 1.0 APIs实现;该库
32、可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。 7.FreeType:位图(bitmap)和矢量(vector)字体显示。 8.SQLite:一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。 2.2.4 Android 运行库Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟 机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了 优化。同时虚拟机
33、是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 dx 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。2.2.5 Linux 内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。当然,操作系统的初始化和编程接口和标准的linux系统是有区别的,安卓更多的只是需要一些与移动设备相关的驱动程序,例如Display Driver(显示驱动),Keyboard Driver(键盘驱动)等
34、3。2.3安卓优势介绍1.开放性:Android 系统是一个完备的全开放性的移动平台,系统本身并不没有任何费用,从而大大的降低了移动厂商的开发成本,也使移动运营商可以放心的开发属于自己的新应用。这也是我们选择 Android 平台开发的重要原因之一。2.所有的应用都是平等的:Android 的所有其他的东西除了这个核心引擎Dalvik 虚拟机,包括系统的核心应用和第三方应用都是完全平等的。3.应用间无界限:Android 打破了应用之间的界限,比如开发人员可以进行基于位置服务的开发,这个就将上网 Web 服务,Google maps还有服务器技术连接到了一起。4.快速方便的应用开发:Andro
35、id 平台为移动开发者提供了大量的实用库和工具,开发者可以使这些库文件和工具迅速的创建属于自己的应用。第三章 安卓开发环境的搭建安卓程序由JAVA编程语言开发。因此在开发安卓程序之前,需要下载并安装开发java程序的JDK,以及运行环境Eclipse。除此之外,还需要下载并安装SDK和ADT,并配置JDK和SDK的环境变量。3.1各个组件的含义和功能的简单介绍JDK:全名Java Development Kit,即Java 语言的软件开发工具包。JDK包含的基本组件包括:javac(编译器)、jar(打包工具)、javadoc( 文档生成器)、jdbdebugger(查错工具)、java( 运
36、行编译后的java程序)、appletviewer(小程序 HYPERLINK /view/7718.htm t _blank 浏览器)、Jconsole( Java进行 HYPERLINK /view/25302.htm t _blank 系统调试和监控的工具),目前使用的是发行日期为2014-3-18日的最新版本Java SE 8.0 (1.8.0)。Eclipse:Eclipse 是一个开放 HYPERLINK /subview/60376/5122159.htm t _blank 源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环
37、境。而Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK),目前使用的是由谷歌官网集成提供的Eclipse4.3.0版本。ADT:全名为Android development tools ,是Google专门为Eclipse开发的一个插件用于辅助开发Android程序发的一个插件用于辅助开发Android程序。SDK:这里特指Android SDK,全名 Android software development kit,意为安卓软件开发工具包,是软件开发时为建立应用软件的开发工具的集合。对安卓开发组件有了了解之后,下面我将进行wind
38、ows 7系统下开发环境的搭建。Android开发所需的软件及下载地址如表3.1所示:目前,Google将Android SDK、Eclipse和ADT封装在了一个压缩包内,而我使用即是此压缩包,解压即可。下载完成后文件如图3-1所示:图3-1 最终完成文件截图3.2安装与配置3.2.1.安装JDK双击jdk安装程序,在启动后大约30秒即可点击“next”选项,过程会有多次要求点击“next”,只要一直点击下一步即可。在安装的过程中会出现安装位置的选择以及是否创建快捷方式选项。对于jdk的安装位置,我选择在了D:program filesJava中,且并未创建jdk快捷方式。安装完成之后,需要
39、对系统的环境变量进行配置,具体方法如下:依次点击,计算机(右击)-属性-高级系统设置-系统属性-环境变量,然后在系统变量栏找到path环境变量,如果没有path变量可以点击新建,设置变量名为path,然后找到jdk的安装目录文件,定位到bin文件夹,复制路径,再粘贴到变量值输入框,以“;”结尾即可。而我是系统本身有path变量,所以直接在在变量值后面添加了“D:program filesJavajdk1.8.0_05bin;”同理,在系统变量中,选择点击“新建”按钮,新建一个变量名为“Classpath”的变量,找到jdk目录下的lib文件夹,定位到rt.jar文件,变量值输入框输入“D:pr
40、ogram filesJavajdk1.8.0_05jrelibrt.jar;.”即可(变量名后面是一个点和一个分号)。安装好JDK并配置好环境变量后,运行CMD命令,在控制台输入javac命令,然后输入java version命令,会出现如图3-2所示的JDK编译器信息,其中包括修改命令的语法以及JDK版本等信息。这说明JDK安装成功。 3.2.2 Android SDK和Eclipse的安装目前Google已经将SDK和Eclipse集成于ADT压缩包(目前文件名adt-bundle-windows-x86-20140321)中,所以这一步直接将从下载的ADT包解压即可。解压后,双击Ecl
41、ipse.exe程序,首次打开时会要求创建workspace(工作区),可直接点击默认选项,然后依次点击Eclipse菜单栏“help”-“install new software”-“ADD”在“ADT repository“编辑框的”name中输入名称,例如我输入的“ADT”,然后在下框中输入/android/eclipse/即自动安装ADT,这个过程可能需要几分钟。图3-2 jdk安装结果图按照上述方法安装完成后,只是拥有了安卓4.4.2版本的模拟器,而我也添加了其他版本模拟器,如Android2.3.3,Android4.0等。有网络在线安装的方法,另外的方法则是可以直接下载压缩包,解
42、压后将相关文件复制至“D:adt-bundle-windows-x86-20140321sdkplatforms”目录下,然后依次点击菜单栏“window”-“preference”点击“Android”,再选择解压文件所在文件夹就可导入SDK文件,导入状态如图3-3所示。这种方法除了快捷之外,最重要的是可以避免因为网络原因而出现错误。图3-3 文件导入结果图在模拟器引入完成之后就需要配置SDK的环境变量,和配置JDK一样,直接在PATH后添加 D:adt-bundle-windows-x86-20140321sdkplatform-tools;即可。完成以上步骤之后,运行CMD命令,在控制台
43、中输入adb命令,将输出如图3-4所示的Android SDK的相关信息,这说明Android SDK安装成功。图3-4 Android SDK安装结果图3.2.3 模拟器的创建如上已完成安装后,已自带安卓4.4.2模拟器,加之自行添加的Android2.3.3,Android4.2等模拟器,就可以对安卓模拟器进行创建与使用,而我目前创建的模拟器如下图3-5示:图3-5 创建的模拟器列表第四章 基于安卓平台的密码管理系统的设计与实现4.1研究目标1.了解Java语言的性质,应用领域等Java特性 2.了解安卓系统基本特性,以及安卓界面布局及数据库调用的基本知识 3.掌握Eclipse开发环境的
44、搭建与使用,熟悉Eclipse相关组件的使用以及安卓ADT的安装与使用 4.掌握Java编程开发技术,并通过设置断点对程序进行调试 5.生成APK软件包对程序进行终端调试及BUG处理 4.2需求分析本软件是一个基于安卓平台的密码管理系统,启动程序后可对用户需要记忆的账户、用户名和密码信息进行存储和查看,在手机终端数据库进行加密保存,有效防止密码泄露。因此可以基本了解软件的功能需求:1.首先是用户用户名和密码的存储;2.其次对用户所存储的密码信息进行加密保存;3.对用户所存信息的查找和排序;4.对用户使用此软件系统进行九宫格加密操作。4.3程序功能设计作为基于安卓平台的密码管理系统,最主要的功能
45、就是对用户存储的信息进行安全保存,而安全管理首先要考虑的因素即为软件的使用权限,并且出于方便性考虑,采用九宫格解锁方式对软件权限进行限制。针对信息的敏感性,对程序存储信息的查询与加密也显得尤为重要,所以软件必须采用加密算法以尽量保证信息安全。在信息安全的前提下,对所存储信息进行可视化操作也是软件的基本功能。如图4-1所示,为软件的功能图。4.3 UI界面设计根据需求分析及软件的实际apk程序,可以知道这个程序一个有四个界面,这里需要进一步分析每个用户界面中应该包括哪些显示内容。第一个界面即为九宫格解锁界面,而如果是用户第一次安装,则会直接进行初始密码设定,而后续使用必须要密码正常才可使用,由于
46、加密管理的原因,此软件登陆密码的破解可能性很小,截图如图4-2所示。进入程序后界面功能区分为信息添加和信息查询两部分,顾名思义为对用户信息的处理,添加功能直接点击“添加”按钮即可,查询功能采用精确匹配方式进行查询,避免误操作,界面如图4-3所示。在对用户信息进行添加之后,为了方便用户对信息的管理,可对屏幕长按进行更多选项操作,其中包括详细信息的查看和修改,顺序的移动,txt文件的到处等操作,界面如图4-4所示。在程序主界面下,还有一个选项,那就是采用物理菜单按键进行相应功能,其中包括软件说明,九宫格密码的修改,txt文件的导入,当然,还有程序退出选项,界面如图4-5所示。 4.4功能模块设计从
47、功能需求上分析可以看出,整个应用程序应划分为四个模块,分别是九宫格解锁、主界面、长按选项和菜单选项功能区。九宫格解锁界面是用户进入程序使用的管理的界面,可以比喻为进入仓库安全门的钥匙;而主界面主要是用户信息的存储与查询,可比喻为仓库内物品的进存;然后是长按选项,可以对存储密码信息的查看、排序和文件导出,可比喻为仓库的物品处理及物品调出;最后是菜单选项界面,包括软件说明,九宫格密码的修改和程序退出功能等,可理解为仓库的最终管理。4.5程序数据库设计和数据加密 SQLite 是 Android 系统中的轻量级自包含的开源数据库管理系统,所以程序直接采用了此数据库。SQLite 编译运行时的内存开销
48、和磁盘开销都非常小,并且支持绝大部分的标准 SQL 语句。SQLite 是一个以文件为主的关系型数据库,其包含的数据为某个应用程序所私有,如果其他应用程序想要使用这些数据,该应用程序必须提供包含这些数据的 Content Provider 以向其他应用程序共享这些数据。针对本次系统设计的安全性要求,在数据库中,主要采用了java secretkey安全加密程序对程序及程序数据库进行了加密,将字符串转化为十六进制进行存储,不管是数字还是字母,都是以字符串的形式进行转化,尽量保证用户数据安全。在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。4.6程序处理流程 如图4-6所示,
49、为密码管理系统的业务处理流程图;图4-6 程序处理流程图4.7文件结构与用途在程序开发阶段,首先确定“基于安卓平台的密码管理系统”的工程名为PMS,据程序模块设计的内容,建立PMS工程。PMS工程源代码的结构如图4-7和图4-8所示。而表4.1则对PMS中,对各个工程文件用途加以说明 图4-7工程源代码结构图一图4-8工程源代码结构图二Android的资源文件保存在/res的子目录中。其中/res/ drawable目录中保存的是黑色图片背景和相关按钮XML文件,/res/ drawable-hdpi目录中保存的是图像文件(图片),/res/values目录中保存的是用来自定义字符串和颜色的文
50、件,/res/ layout目录中保存的是XML格式的布局文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中。4.8程序主要代码4.8.1 九宫格部分代码在介绍PMS的核心代码前,首先了解一下九宫格设置的部分代码;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;/圆点初始状态时的图片private Bitmap locus_round_click;/圆点点击时的图片private Bitmap locus_round_click_error;/出错时圆点的图片private Bitmap locus_line;/正常状态下线的图片p
52、rivate Bitmap locus_line_semicircle;private Bitmap locus_line_semicircle_error;private Bitmap locus_arrow;/线的移动方向private Bitmap locus_line_error;/错误状态下的线的图片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; /数据库游标 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长按选项部分代码根据程序界面的深入,下面看看长按密码信息的长按选项按钮的
55、相关代码;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(数据操作项); 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, 导出为txt); );4.8.4 选项菜单主要代码最后,看看关于菜单栏中关于密码修改部分的相关源代码; 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-新疆-新疆药剂员二级(技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-四川-四川放射技术员二级(技师)历年参考题库含答案详解3套试卷
- 2026年11月小雪活动方案 小雪与初冬景象
- 2026年10月寒露主题班会 二十四节气之寒露
- 2026年秋季开学高三决战高考晨会讲话课件
- 2025年河南省卫辉市《行测》考试考前冲刺试卷及完整答案详解【名校卷】
- 2025年吉林省磐石市《行测》考试考前冲刺试卷附完整答案详解(全优)
- 2025年山西省介休市《行测》考试模拟试卷附参考答案详解【培优A卷】
- 2025年湖南省韶山市《行测》考试考前冲刺密卷(名师系列)附答案详解
- 2026年湖北省松滋市《行测》考试模拟试卷及参考答案详解(模拟题)
- 广东省工程勘察设计服务成本取费导则(2024版)
- 《原子吸收光谱法》课件
- 《水利工程施工监理规范》SL288-2014
- JB-T 14580-2023 滚动轴承 商用车轮毂轴承及单元
- ISO27001:2022信息安全管理手册+全套程序文件+表单
- 七年级数学上册 期中考试卷(沪科安徽版)
- 集装箱场站安全管理制度范本
- 制冰机安全操作规程
- 风电场道路及平台施工方案
- 景观生态学Chapter6景观格局分析
- GB/T 4968-2008火灾分类
评论
0/150
提交评论