基于android的加密记事本软件的设计与实现_第1页
基于android的加密记事本软件的设计与实现_第2页
基于android的加密记事本软件的设计与实现_第3页
基于android的加密记事本软件的设计与实现_第4页
基于android的加密记事本软件的设计与实现_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ANDROID的加密记事本软件的设计与实现摘要智能手机虽然早在多年前就已出现,但那时的智能手机的功能主要是本地应用,这些手机以NOKIA的SYMBIAN系统为主。但随着移动互联网时代的到来,本地应用已远远无法满足用户的需求了。然而在创新为王的今天,新的技术总在不断取代旧的技术。以创新闻名的GOOGLE为了进军移动广告市场,就开始研制新的移动操作系统ANDROID。本程序主要使用了JAVA和ANDROID的基础编程知识,用户界面采用MVC模型的日历应用程序的结构和设计实现过程。本程序的开发工具为ECLIPSE,并通过与SQLITE数据库相连,从而实现了基于ANDROID的加密记事本应用程序。关键词ANDROIDSQLITEMVCABSTRACTSMARTPHONEMANYYEARSAGO,HADALREADYAPPEARED,BUTWHENTHESMARTPHONEISMAINLYLOCALAPPLICATION,THESEPHONESWITHNOKIASSYMBIANSYSTEMHOWEVER,WITHTHEADVENTOFTHEMOBILEINTERNETERA,LOCALAPPLICATIONHASFARCANNOTMEETTHENEEDSOFUSERSHOWEVER,INNOVATIONISKINGTODAY,NEWTECHNOLOGYALWAYSCONSTANTLYREPLACETHEOLDTECHNOLOGYAREPUTATIONFORINNOVATIONINORDERTOENTERTHEMOBILEADVERTISINGMARKET,GOOGLESTARTEDTODEVELOPANEWMOBILEOPERATINGSYSTEMANDROIDTHEPROGRAMUSINGBASICPROGRAMMINGKNOWLEDGEOFJAVAANDANDROIDUSERINTERFACEUSINGTHECALENDARAPPLICATIONOFTHEMVCMODELSTRUCTUREANDDESIGNPROCESSTHEPROGRAMDEVELOPMENTTOOLSFORECLIPSE,ANDCONNECTEDTOTHESQLITEDATABASE,INORDERTOACHIEVETHEANDROIDBASEDTASKMANAGEMENTAPPLICATIONKEYWORDSANDROIDSQLITEMVC目录摘要IABSTRACTII第1章绪论111论文研究主要内容112国内外现状1第2章关键技术介绍321JAVA开发技术322ANDROID用户界面技术323开发工具及环境简介4231开发工具4232开发环境524开发技术5241利用SOAP技术与网络接口交互525ANDROIDSDK常见公共类库介绍6251SQLITE3数据库的使用相关类库介绍6252ANDROID界面ACTIVITY介绍726开发语言简介8261ANDROID简介8262ANDROIDFEATURES特性827ANDROID系统的四大组件828搭建ANDROID开发环境9第3章系统分析1031系统概述10311功能框架10312系统特性10314系统用例规约11315系统的流程分析1432系统开发环境1533系统任务的可行性分析16第4章系统设计1741设计指导思想和原则17411指导思想17412软件设计原则1742系统的功能结构设计1743系统静态模型设计1944数据库设计21441数据库设计的概述21442概念结构设计21443逻辑结构设计21444物理结构设计22第5章系统实现2351应用程序功能实现2352应用程序界面功能实现23521应用程序主界面23522指定日程界面2453数据库存储方式2554部分代码26第6章系统测试3661测试方案及测试用例3662系统测试计划3663系统测试3664测试总结37结论38致谢39参考文献40外文原文41中文翻译48第1章绪论ANDROID是由GOOGLE发布的基于LINUX的开放源码操作系统,刚开始的时候它主要用于手机移动设备,它是第一个完全定制、免费、开发的手机平台。最初由ANDYRUBIN开发,刚开始主要支持手机,后来慢慢发展逐渐扩展到平板电脑及其他领域上。ANDROID是一种基于LINUX内核的软件平台和操作系统,采用了软件堆层(SOFTWARESTACK)的架构,共分为四层。第一层是LINUX内核,提供由操作系统内核管理的底层基础;第二层是中间件层,由函数库和ANDROID运行时构成;第三层是应用程序框架层,提供了ANDROID平台基本的管理功能和组建重用机制;第四层是应用程序层,提供了一系列核心应用程序。ANDROID作为一种开放操作系统,随着它的快速发展,受到了越来越多的人的关注。所以就有越来越多的开发者使用许多种编程语言来编写ANDROID。而不再像以前那样只能使用单一的编程语言来编写应用程序,因而有越来越多的人来开发ANDROID。在这几年中由于ANDROID的便携性和可开发性,使得ANDROID的操作系统已经移植于越来越多的手机上。11论文研究主要内容通过开发一个项目,了解ANDROID平台的相关特性和开发的流程。具体来讲1通过分析当前阶段下各种人群的喜好和对事物的关注程度来选择究的项目,即日程管理软件;2通过独立设计UI来了解ANDROID以至于移动平台开发的UI的设计方法;3通过选取相应的数据存储来方式存储日程管理的数据,来了解ANDROID平台的类库和其相关的设计模式,了解其先进的思想和API的特点;4通过设计功能点来初步的了解移动平台开发的所需注意事项,初步的了解移动平台的开发,并了解别体会如何获得更好的人机交互;5通过测试来完善程序,使其BUG不合理地方最少化,并进一步了解ANDROID平台的相关先进的特点和其人性化的设计,与此同时熟悉软件开发的相关流程并深刻认识在编码时一些注意事项的重要性;6其实完全可以通过发布程序到GOOGLEANDROIDMARKET上,了解ANDROID程序发布的流程,并通过它了解其他平台下的开发、发布的流程。并通过用户的反馈来进行相关的修改。基于此更深刻的理解人机交互的重要性和设计的重要性。12国内外现状ANDROID操作系统于2007年在美国推出后,凭借其良好的用户体验,低廉的成本和较高的开放性吸引着越来越多的终端厂商采用,根据GARTNER等国际研究机构的报告,ANDROID在这几年的全球智能手机的市场份额在逐渐增多,并且于2011年成功超过了SYMBIAN系统在全球智能手机的市场份额。在ANDROID出现之前,智能手机操作系统市场中SYMBIAN和WM两者占据大部分的市场份额,但随着移动互联网的快速发展,终端应用的趋势逐渐成为主流的情况下,两者的劣势逐渐突出,而ANDROID的优势也越来越明显。SYMBIAN由于发展了很多年,已经被很多人熟悉,在这十多年中SYMBIAN几乎没发生什么变化,它的用户体验功能已经无法满足现在人的需求。WM系统同样也较为封闭,对终端厂商来讲引入成本较为昂贵,娱乐性一般,多用于商务机型。2007年,苹果IPHONE上市后IOS凭借IPHONE优秀的用户体验和多种多样的功能获得了巨大的成功,特别值得一提的是苹果的应用开发分成模式刺激了开发者不断进入,使得苹果的应用程序能不断的更新和发展,截至2010年8月,可用于IOS的应用已经超过了25万,苹果公司因为顺应了终端应用的智能手机发展趋势,取得了快速的发展但IOS也有许多问题,因为IOS属于半开放的OS,实现了移动互联网产业链上各环节的普及还是较为困难;其次IPHONE的价格比较高,短期时间内难以满足中低端市场的需求。而ANDROID系统,虽然它目前存在安全性和版本混乱等问题,但是拥有低廉的引入成本,良好的用户体验和开放性较强的特点,再加上ANDROIDMARKET和众多第三方应用商店做后盾,在应用方面的资源也非常丰富。ANDROID系统在近几年取得了迅猛的发展,主要还是因为其适应了移动互联网的发展趋势,符合了移动互联网产业链各方的发展变化需求。当然,ANDROID也同样面临着一些挑战和争议。虽然ANDROID在发展过程中遇到一些问题,但在多方面积极的因素推动下,总体趋势仍旧看好。当前,随着HTC进入中国市场,以及酷派、华为、中兴等终端厂商的发力,ANDROID在国内的发展会越来越好;而随着ANDROID系统的发展,ANDROID手机在中国市场的销量在未来必然还将有较大发展空间。目前国内外有4款下载量较高记事本软件。分别是EVERNOTE、小米便签、NOTEEVERYTHING、麦库记事。EVERNOTE在软件界面方面布局简洁,需注册登录后才可使用,图标布局比较协调,记事笔记方面可编写内容,添加标签,支持上传图片、音频、视频、文件等附件。特色功能方面具有搜索笔记和发送笔记、定位服务、同步等功能。资源占用方面内存占最多,CPU占用适中。小米便签在软件界面方面功能简单,可查看和新建便签,菜单功能相对丰富,记事方面只支持文字内容,可以选择桌面WIDGET颜色、字体大小等。特色功能方面可以移进文件夹和分享、备份、还原和设置保护密码,资源占用方面内存占用较中,CPU占用最少。NOTEEVERYTHING界面简洁,上方有新建记事和搜索等按钮,菜单功能非常丰富,支持文本、绘图、语音、图片、清单、图库、视频、条形码等形式,可固定显示记事。特色是单个记事加密,数据备份、还原、导入、到处创建快捷方式,内存占用最少,CPU占用合理。麦库记事界面比较精美,菜单功能相对简单,可选分类、加标签、附件支持拍照和实时录音。特色是笔记搜索和分类,网络同步和笔记分享,内存占用适中,CPU占用最多。第2章关键技术介绍21JAVA开发技术对于JAVA语言而言,ANDROID系统给了JAVA一个新的机会。随着ANDROID平台在市场占有率的逐渐上升,采用JAVA语言开发的ANDROID应用肯定会越来越多。由于ANDROID的JAVA开发方面从接口到功能,都有层出不穷的变化,所以ANDROID支持并使用了JAVA作为编程语言来开发应用程序。为了能够提高效率和减少资源占用并且考虑到JAVA虚拟机的效率和资源的占用,GOOGLE重新设计了ANDROID的JAVA,因而它与J2ME等有许多不同之处。其中ACTIVITY就是一个ANDROID的用户界面,一个ACTIVITY类(CLASS)主要负责创建UI界面(WINDOWS),SERVICE就是一个活动中的ACTIVITY在前景模式,背景运行下的程序。它们两者之间通过由SERVICECONNECTION和AIDL连接,达到多种程序同时运行的效果。如果运行中的ACTIVITY下的全部画面被其他的ACTIVITY取代时,该ACTIVITY便会被停止(STOPPED),甚至有可能会被系统清除(KILL)。在ANDROID中的VIEW和J2ME的DISPLAYABLE挺类似的,程序开发人员可以通过把VIEW类与“XMLLAYOUT”文件放置在UI的视窗上,ANDROID15的版本也可以利用VIEW创建出所谓的WIDGETS,其实WIDGET只是VIEW的一种形式,所以也可以使用XML文件来设计它的LAYOUT,现在的许多手机都包含大量WIDGET的。至于VIEWGROUP它是各种LAYOUT的基础抽象类(ABSTRACTCLASS),VIEWGROUP之内还可以包含VIEWGROUP。VIEW的构造函数其实是不需要在ACTIVITY中调用,但是DISPLAYABLE是必须被调用的,在ACTIVITY中,是需要通过FINDVIEWBYID来从XML中来获得一个VIEW的,并且ANDROID的VIEW类的显示在很大程度上是从XML中获取的。VIEW与事件息息相关,它们之间通过LISTENER结合在一起,每一个VIEW都可以注册一个事件监听器。22ANDROID用户界面技术ANDROID用户界面框架采用MVC模型。MVC模型为用户界面提供了处理用户输入的控制器,显示用户界面和图像的视图,以及保存数据和代码的模型。MVC模型中的视图将应用程序的信息反馈给用户,可能的反馈方法包括视觉、听觉或触觉等,但最常用的就是通过屏幕显示反馈信息。(1)创建界面通过工程下的RES/LAYOUT目录下的MAINXML,MYDATEXML,RECORDXML,ABOUTXML等配置文件,分别设置日程应用程序的主界面,制定日期的界面,添加记录的界面和关于的界面。通过工程下的RES/VALUES目录下的COLORSXML,STRINGSXML,DIMENSIONXML配置文件获得界面中的颜色,尺寸大小,一些属性的名字。通过工程下的RES/DRAWABLE目录获得应用程序所用到的图片。通过工程下的ANDROIDMANIFESTXML的文件来描述ANDROID应用程序整体资讯的设定档。简单来说,这是一个自我介绍档,我们可以向ANDROID系统介绍我们的ANDROID应用程序,以便让ANDROID系统完整地了解我们的应用程序资讯。(2)创建模型类创建DISSERVICE类实现对数据库的增、删、改、查操作,创建GRID类绘制万年类的主体部分日期和表格,创建CALENDARELEMENT接口,定义绘制图形的方法,创建BORDER类定义边框,REMIND类定义提醒时间的一些信息,ALLRECORD类定义记录的一些信息。(3)创建控制器主要的是MAIN类来实现界面和一些模型类的交互,把结果展示在界面上。REMINDSETTING类设置指定日期的类,RECORD类设置记录信息界面和处理记录的交互。23开发工具及环境简介231开发工具1ECLIPSECLASSIC372ECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTKIT,JDK)。ECLIPSE是著名的跨平台的自由集成开发环境(IDE)。最初主要用来JAVA语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C和PYTHON的开发工具。ECLIPSE的本身只是一个框架平台,但是众多插件的支持使得ECLIPSE拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以ECLIPSE为框架开发自己的IDE。ECLIPSE最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的ECLIPSE代码基础,包括PLATFORM、JDT和PDE。目前由IBM牵头,围绕着ECLIPSE项目已经发展成为了一个庞大的ECLIPSE联盟,有150多家软件公司参与到ECLIPSE项目中,其中包括BORLAND、RATIONALSOFTWARE、REDHAT及SYBASE等。ECLIPSE是一个开发源码项目,它其实是VISUALAGEFORJAVA的替代品,其界面跟先前的VISUALAGEFORJAVA差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括ORACLE在内的许多大公司也纷纷加入了该项目,并宣称ECLIPSE将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。2SQLITE3SQLITE3是一款轻型的数据库,是遵守ACID的关联式数据库管理系统。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持WINDOWS/LINUX/UNIX等等主流的操作系统,同时能够跟很多程序语言相结合,比如TCL、C、PHP、JAVA等,还有ODBC接口,同样比起MYSQL、POSTGRESQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLITE第一个ALPHA版本诞生于2000年5月至今已经有10个年头,SQLITE也迎来了一个版本SQLITE3已经发布。3ADT目前ANDROID开发所用的开发工具是ECLIPSE,在ECLIPSE编译IDE环境中,安装ADT,为ANDROID开发提供开发工具的升级或者变更,简单理解为在ECLIPSE下开发工具的升级下载工具。4ANDROIDSDKSDK(SOFTWAREDEVELOPMENTKIT)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,ANDROIDSDK指的既是ANDROID专属的软件开发工具包。232开发环境本软件是在WINDOWS7操作系统中,利用ECLIPSECLASSIC372开发工具搭载ANDROIDSDK工具包,结合ANDROID手机自带的SQLITE3数据库进行开发。24开发技术本软件的的开发技术可以概括为在ANDROID平台的开发环境下,通过手机的2G/3G,或者是WIFI网络使用SOAP协议连接HTTP/WWWWEBXMLCOMCN/ZH_CN/INDEXASPX上面的接口服务,获取数据后对数据用ANDROID的特有展现方式展现在手机屏幕上,并且完成交互操作,获取收据并且成功展示后,通过本地化的管理对数据进行本地化的存储和管理。利用SOAP协议通过手机网络获取数据后,就会对各模块中需要用到的对象进行实例化,实例化的时候用到的是单例模式,以便不同的界面调用相同的内容,这是本软件资源共享的一个处理方式,在获取数据的时候利用进度条通知用户此时是在获取数据,而获取数据的动作时放在了区别于主线程的一个分线程中,当获取数据完毕后,利用ANDROID中独有的HANDLER通知界面UI处理,此时所做的处理时关闭进度条,在ANDROID中如果不同线程之间需要影响UI界面,就必须要使用HANDLER,否则就会报出ANDROIDRUNTIME28964ATANDROIDAPPACTIVITYTHREADMAINACTIVITYTHREADJAVA3703的错误,HANDLER在本软件的制作过程中是必不可少的,在完成展示后,专门为用户设计了收藏的功能,不再需要经过一定的寻找过程来查找想要的数据,此时使用的是ANDROID使用的小型关系型数据库SQLITE3,是一种小巧快速并且功能强大的数据库。241利用SOAP技术与网络接口交互SOAP采用了已经广泛使用的两个协议HTTP和XML。HTTP用于实现SOAP的RPC风格的传输,而XML是它的编码模式。采用几行代码和一个XML解析器,HTTP服务器MS的IIS或APACHE立刻成为SOAP的ORBS。SOAP通讯协议使用HTTP来发送XML格式的信息。HTTP与RPC的协议很相似,它简单、配置广泛,并且对防火墙比其它协议更容易发挥作用。HTTP请求一般由WEB服务器软件如IIS和APACHE来处理,但越来越多的应用服务器产品正在支持HTTP。XML作为一个更好的网络数据表达方式NDR。SOAP把XML的使用代码化为请求和响应参数编码模式,并用HTTP作传输。具体地讲,一个SOAP方法可以简单地看作遵循SOAP编码规则的HTTP请求和响应,一个SOAP终端则可以看作一个基于HTTP的URL,它用来识别方法调用的目标。像CORBA/IIOP一样,SOAP不需要具体的对象绑定到一个给定的终端,而是由具体实现程序来决定怎样把对象终端标识符映像到服务器端的对象。在使用本协议过程中需要定义一个WSDL如PRIVATESTATICFINALSTRINGWSDL“HTTP/WWWWEBXMLCOMCN/WEBSERVICES/WEATHERWEBSERVICEASMXWSDL“。SOAP是个通信协议,SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数,放在HTTPBODY上提交个WEBSERVICE服务器SERVLET,ASP等等处理完成后,结果也写成XML作为RESPONSE送回用户端,为了使用户端和WEBSERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。25ANDROIDSDK常见公共类库介绍251SQLITE3数据库的使用相关类库介绍本软件代码编写过程中对数据库的操作主要涉及三个工具类,分别是(1)ANDROIDDATABASESQLITESQLITEDATABASE(2)ANDROIDDATABASECURSOR(3)ANDROIDDATABASESQLITESQLITEOPENHELPER创建和更新数据库必须继承ANDROIDDATABASESQLITESQLITEOPENHELPER继承这个类必须实现一个构造方法和两个覆写方法,否则是不可以使用的。下面是主要代码说明PUBLICCLASSCHANNELDBHELPEREXTENDSSQLITEOPENHELPERPRIVATESTATICFINALSTRINGDATABASENAME“ASSISTANTCHANNELDB“/数据库名称PRIVATESTATICFINALINTDATABASEVERSION1/数据库版本PUBLICCHANNELDBHELPERCONTEXTCONTEXTSUPERCONTEXT,DATABASENAME,NULL,DATABASEVERSION/TODOAUTOGENERATEDCONSTRUCTORSTUBOVERRIDEPUBLICVOIDONCREATESQLITEDATABASEDB/TODOAUTOGENERATEDMETHODSTUBDBEXECSQL“CREATETABLECHANNELIDINTEGERPRIMARYKEYAUTOINCREMENT,CHANNELNOINTEGER,CHANNELNAMEVARCHAR20“/执行有更改的SQL语句OVERRIDEPUBLICVOIDONUPGRADESQLITEDATABASEDB,INTOLDVERSION,INTNEWVERSION/TODOAUTOGENERATEDMETHODSTUBDBEXECSQL“DROPTABLEIFEXISTSCHANNEL“ONCREATEDB252ANDROID界面ACTIVITY介绍ANDROID的界面是由每一个成为ACTIVITY的JAVA类组成的,这个类库是制作ANDROID软件必须使用的,只有使用了这个才可以让用户看得见,本类中有几个常用的覆写方法来表示界面的生存周期,分别是ONCREATE,ONSTART,ONRESUME,ONPAUSE,ONSTOP,ONDESTROY,ONRESTART七个方法。ACTIVITY的生命周期图,如图21所示。图21ANDROIDACTIVITY生存周期图26开发语言简介261ANDROID简介ANDROID一词的本义指“机器人”,同时也是GOOGLE于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。ANDROID是基于LINUX内核的软件平台和操作系统,早期由GOOGLE开发(在华注册商标名为“安致”),后由开放手机联盟(OPENHANDSETALLIANCE)开发。它采用了软件堆层(SOFTWARESTACK,又名以软件叠层)的架构,主要分为三部分。低层以LINUX内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以JAVA作为编写程序的一部分。另外,为了推广此技术,GOOGLE和其它几十个手机公司建立了开放手机联盟。ANDROID在未公开之前常被传闻为GOOGLE电话或GPHONE。大多传闻认为GOOGLE开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,GOOGLE开始发表自家品牌手机电话的NEXUSONE。目前最新SDK版本为ANDROID403。262ANDROIDFEATURES特性ANDROID系统有如下的几大特性应用程序框架支持组件的重用与替换DALVIK虚拟机专门为移动设备做了优化内部集成浏览器该浏览器基于开源的WEBKIT引擎优化的图形库包括2D和3D图形库,3D图形库基于OPENGLESSQLITE用作结构化的数据存储多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4、H264、MP3、AAC、AMR、JPG、PNG、GIF)GSM电话(依赖于硬件)蓝牙BLUETOOTH,EDGE,3GANDWIFI(依赖于硬件)照相机,GPS,指南针,和加速度计(依赖于硬件)丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和ECLIPSE集成开发环境插件。27ANDROID系统的四大组件在ANDROID系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像ACTIVITY,CONTENTPROVIDER是可见的视图,SERVICE和BROADCASTRECEIVER是不可见的,它们只在系统的后台运行。下面分别介绍四大组件1ACTIVITY简介在ANDROID系统中ACTIVITY提供可视化的用户界面,一个ANDROID应用通常由多个ACTIVITY组成。多个ACTIVITY组成了ACTIVITY栈(STACK),当前活动的ACTIVITY处于栈顶。ACTIVITY有自己的生命周期,由ANDROID系统来控制。2SERVICE简介顾名思义SERVICE就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个SERVICE类比较简单,只要继承SERVICE类,实现其生命周期中的方法就可以了。一个定义好的SERVICE必须在ANDROIDMANIFESTXML配置文件注册,通过元素声明才能使用SERVICE有自己的生命周期,我们可以调用STARTSERVICE启动一个SERVICE或者BINDSERVICE方法来绑定一个存在的SERVICE。BROADCASTRECEIVER简介BROADCASTRECEIVER顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用INTENT来启动一个程序组件,我们还可以通过使用SENDBROADCAST方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现BROADCASTRECEIVER来监听和响应这些广播的INTENT。4CONTENTPROVIDER简介CONTENTPROVIDER用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。ANDROID为常用的数据类型(如音视频、图片和联系方式等)提供了大量的CONTENTPROVIDER。它们被定义在ANDROIDPROVIDER包下面。通过这样定义好的CONTENTPROVIDER我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定CONTENTPROVIDER共享我们的数据,方便用户的访问。28搭建ANDROID开发环境任何事物要运行,都要有它的环境,ANDROID也有它的环境才能够运行,下面介绍ANDROID的开发环境配置。搭建开发环境需要的软件1操作系统WINDOWXP,WINDOW7或LINUX;2软件包ANDROIDSDKSOFTWAREDEVELOPMENTKITJAVADEVELOPM、ADTANDROIDDEVELOOPMENTTOOL);3IDE环境ECLIPSEIDEADTECLIPSE33以上;4JDKJAVARUNTIMEENVIRONMENT虚拟机、JDKJAVADEVELOPMENTKIT安装步骤如下第一步安装JAVA虚拟机SUNJAVA6JDK版本;第二步安装ECLIPSE35工具,到官网HTTP/WWWECLIPSEORG/DOWNLOADS/,选择版本下载后进行安装。第3章系统分析31系统概述311功能框架从系统功能框架中很容易看出,本应用程序采取的是MVC模型,一个ANDROID的ACTIVITY通过业务处理来处理一些事务并把它反映在界面之中。启动应用程序首先看到的是一个显示的主界面,然后可以根据菜单选项访问SQLITE数据库进行事件的添加、修改、查看、删除,这样做的好处是后台服务可以及时更新数据,以保证数据的准确性。设置提醒的时间功能同样也要和数据库相关联进行一系列的操作。DB下的DBSERVICE类封装了许多SQLITE的数据库的增、删、改、查的操作,后台服务会调用它来实现数据库的操作。312系统特性基于ANDROID的加密记事本程序是为了向用户展示一个友好的日程界面并能提供一系列的应用操作的一个应用程序。整个系统分为以下几个模块,见表31。表31基于ANDROID的应用程序特性概述功能编号功能名称功能描述优先级1日期的显示对日期按照一定的规则显示在界面上中2提醒时间的管理对设置的提醒时间进行管理和维护高3记录信息的管理的对所记录的信息进行管理和维护高4切换界面的显示对切换日期的进行准确的显示中5关于界面的显示对一些额外的信息的介绍中(1)日期的显示支持的日期范围从190111至21001231,在日期界面上我们能够很详细的看到这个月的详细信息,以及我们是否在这个月的某一天记录了一些信息或者在某一天设置了提醒事件的响铃或者震动。在这个界面我们可以通过键盘和触摸能够看到任何一天的日期和带有标记的记录信息和提醒事件的信息。(2)提醒时间的管理用户可以通过提醒时间的界面来设置什么时候去提醒自己去做某件事,在提醒时间界面中用户可以滑动屏幕来设置小时和分钟。(3)记录信息的管理通过菜单选项的记录和提醒控件,用户可以进入记录界面,在记录界面中用户可以添加、查看、修改、删除记录,并且为记录设置提醒时间。这样我们就可以在某一个时间点来通过程序来提醒我们做一些事情。(4)切换日期界面的显示当我们向任意查看某天的信息的时候,我们可以通过菜单选项的制定日期来进入我们想查看的那天的日期。(5)关于界面的显示在应用程序中要把一些额外的信息告知用户,所以就是在此界面中设置的一些信息来供用户查看。314系统用例规约记事本应用程序的几个功能中按照前、后台交互的功能划分,只有提醒时间的管理和记录信息的管理体现了这一部分。(1)提醒时间管理的用例规约用例图提醒时间用例图,如图31所示。用户系统查看日期查看记录设置时间设置响铃或震动图31提醒时间用例图用例描述本用例主要描述了提醒时间的相关功能和进行相关的设置,如表32至35所示。表32提醒时间查看日期用例描述用例名称查看日期参与者任何使用本应用程序的用户用例概述想查看某一天日期的详细信息前置条件无基本事件流1、用户打开本应用程序可以制定时间的日期。2、当用户使用键盘或者触摸屏幕时可以查看这个日期对应的其他信息。3、在有记录的信息上添加标记,这样用户在查看日期时就能知道此日期对于的提醒时间。其他事件流无表33提醒时间查看记录用例描述用例名称查看记录参与者查看日期并且已经设置记录的用户用例描述查看自己在某一天某一个时间设置的记录信息前置条件用户已经在某一个记录下设置了提醒时间基本事件流1、用户打开应用程序在某一天记录信息2、设置相应的提醒时间3、这样当手机震动或者响铃时就可以查看相应的记录其他事件流无表34提醒时间设置时间用例描述用例名称设置时间参与者登陆本应用程序并且已经设置好记录信息用例描述为某一个记录下的事件设置时间前置条件用户已经记录下时间基本事件流1、用户记录下某一事件2、在这一事件下设置指定的时间其他事件流无表35提醒时间设置响铃或者震动用例描述用例名称设置响铃或者震动参与者已经记录信息并且设置好时间的用户用例描述为某一提醒时间设置响铃或者震动前置条件已经记录信息并且设置好时间基本事件流1、用户记录下某一事件2、在这一事件下设置指定的时间3、设置对应时间的震动或者响铃其他事件流无通过以上的用例描述,能够很清楚的看到应用程序的提醒时间相关的功能和相应的操作步骤。(2)记录信息管理的用例规约用例图记录信息管理用例图,如图32所示。用户系统添加记录修改记录查看记录修改记录图32记录信息管理用例图用例描述本用例主要描述了记录信息管理的相关功能,如表36至39所示。表36记录信息管理添加记录用例描述用例名称添加记录参与者用户用例概述在用户打开应用程序后可以在记录界面中添加记录前置条件用户打开应用程序并且在记录界面上基本事件流1、当用户点击“添加记录”按钮时,程序打开添加记录界面2、用户在相应的文本框中输入信息3、用户点击“完成”按钮时,添加成功其他事件流无表37记录信息管理修改记录用例描述用例名称修改记录参与者用户用例概述在显示记录的界面中可以修改相关的记录信息前置条件用户已经完成记录的添加基本事件流1、当用户打开“修改/查看”按钮时,系统打开记录修改页面,并且显示本记录的信息2、用户填写相关信息,点击“完成”按钮时,更新记录的信息其他时间流无表38记录信息管理查看记录用例描述用例名称查看记录参与者用户用例概述用户查看已经写好的记录前置条件用户在应用程序下查看日期基本事件流1、用户点击“修改/删除”按钮,程序打开记录查询页面2、在此页面下用户可以看到各种相关的记录的信息其他时间流无表39记录信息管理删除记录用例描述用例名称删除记录参与者用户用例概述用户删除已经不用的记录前置条件用户已经成功添加了记录信息基本事件流1、用户打开记录界面,点击“删除”按钮,就可以删除此记录信息2、删除完成后在界面中就看不到这个记录的信息其他时间流无通过以上的描述,能够很清楚的知道记录信息相关的功能和操作的步骤,并且很容易发现系统相关方面的漏洞。315系统的流程分析用户进入程序可以任意查看每个年份相对应得日期,在每个日期的标志用户可以看到查看的那天是哪一个月的,并且可以为某一天设置记录信息和相应的提醒时间以便提醒我们去做某一件事,从而相应的我们也可以对这个记录进行添加、修改、查看、删除操作。(1)添加记录模块用户进入记录信息管理页面,点击“添加”选项菜单,在添加记录界面中输入信息,如果输入一些非法字符则重新输入信息。流程图如图33所示。用户点击“添加”按钮填写相关信息填写非法信息Y添加成功N图33添加记录流程图(2)设置提醒时间模块用户进入设置时间状态,然后通过滑动时间选项来设置时间。流程图如图34所示。进入设置时间界面设置时间设置成功图34设置提醒时间流程图32系统开发环境(1)软件环境开发环境JDK16、ECLIPSE37、ADT数据库SQLITE数据库ANDROID环境ANDROIDSDK(2)硬件环境笔记本电脑(任何一部配置电脑即可)33系统任务的可行性分析1技术及开发方法可行性该应用程序使用的是最主流和前沿的先进技术和工具。本程序采用的是MVC模式的开发,使用了ECLIPSE作为开发平台,结合了ANDROID和JAVA的基本知识,采用了SQLITE数据库,因为它占用的空间小,并且能够处理大量的数据。该应用程序基于ANDROID系统,该系统提供了非常友好的界面和容易实现的操作,它的安全性,灵活性和易用性为数据库和编程提供良好的条件。因此本日程应用程序开发成熟可行。2管理可行性通过采用系统结构化的设计开发方法,将整个程序划分为多个模块,独立管理维护,这样当某一个类出现错误,就可以直接找到这个模块进行修改,而不用去每个类文件进行修改。所以经过这样的模块划分,就更加有利于程序的管理和维护。3经济可行性经过各方面详细谨慎的调研,采取了经济高效的开发,以及科学的设计开发方法,以达到降低程序的开发成本。4运行可行性本应用程序操作简单易懂,界面友好,程序的运行环境只要基于ANDROID系统即可。本程序的开发符合软件设计所遵循的几大原则,符合人们的逻辑思维习惯,所以本程序的设计为以后的程序升级留有很大的空间。第4章系统设计41设计指导思想和原则411指导思想本应用程序的前端开发使用的是ANDROID布局技术,而后台数据库采用的是SQLITE数据库。SQLITE设计目标是嵌入式的程序,它是是一款非常轻型的数据库,而且目前已经在很多嵌入式的产品中使用了它,它占用的资源非常的低,在嵌入式的设备中,可能只仅仅需要几百K的内存就足够了,因此能够很大程度上节约系统的内存。它能够支持目前比较主流的几种操作系统,并且同时也能够跟很多编程语言相结合,比如PHP、JAVA等,还有JDBC接口,同时它的处理速度比MYSQL、POSTGRESQL这两款开源世界著名的数据库管理系统都快。SQLITE虽然占用的资源很小,但是它支持的SQL语句绝对不会比其他开源数据库的差,同时它还支持事务处理功能等等。本应用程序以ECLIPSE为主要开发工具,整个程序在开发过程中符合MVC模式。MVC模式要求对应用分层,虽然要做许多额外的工作,但程序的结构清晰,可扩展性强、产品的应用性通过MVC模式可以得到更好地体现。这恰恰是日程应用程序所需要的。该程序的功能会随着时代的发展及用户的需要不断的扩展,因此这个程序需要不断的进行功能的升级和修改。412软件设计原则本应用程序的功能主要包括两方面一是主界面的显示,在程序的打开界面上能够看到日期的显示和相关的其他信息;二是后台管理,主要实现对记录信息的增、删、改、查等操作。进入程序界面后,就可以很清晰地感受到该程序的设计所遵循的一贯原则,就是从人性化和智能化的角度出发,很好的为用户服务。42系统的功能结构设计根据上一章的系统分析,本应用程序实现的功能主要有提醒时间的管理和记录信息的管理等操作,具体如图41系统功能结构图所示。图41GOOGLEANDROID平台的系统构架ANDROID分为四层,从上层到底层分别是应用层、应用框架层、系统运行库层和LINUX内核层。1应用层。应用层是用JAVA语言编写的运行在虚拟机上的程序。其实,GOOGLE最开始时就在ANDROID系统中捆绑了一些核心应用,比如EMAIL客户端、SMS短消息程序、日历、地图、游览器、联系人管理程序,等等。2应用框架层。这一层编写GOOGLE发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来发布自己的应用,这样便简化了程序开发的构架设计,但是必须遵守其框架的开发顺序。ANDROID提供了如下一些组件1丰富而又可扩展的视图可以用来构建应用程序,它包括列表LIST、网络GRID、文本框TEXTBOX、按钮BUTTON,以及可嵌入的WEB游览器。2内容提供器CONTENTPROVIDER它可以让一个应用程序访问另一个应用程序的数据。3资源管理器RESOUREMANAGER提供非代码资源的访问,如本地字符串、图形和布局文件LAYOUTFILE。4通知管理器NOTIFICATIONMANAGER应用可以在状态栏中显示自定义的提示信息。5活动管理器ACTIVITYMANAGER用来管理应用程序生命周期并提供常用的导航回退功能。6窗口管理器WINDOWMANAGER管理所有的窗口程序。7包管理器PACKAGEMANAGERANDROID系统内的程序管理。43系统静态模型设计由于本系统是记事本应用程序,类图主要包括了类的属性和方法,在系统的实现上,本程序主要包括日期的绘制、添加记录和提醒时间的设置这几个方面,所以类图主要解释这几个方面的信息。其中日期的绘制类图如图42所示。CALENDARELEMENTCALENDARPARENTACTIVITYACTIVITYPAINTPAINTBORDERMARGINFLOATWEEKNAMEMARGINFLOATWEEKNAMESIZEFLOATSUNDAYSATURDAYCOLORINTCALENDARPARENTDRAWVOIDCALENDARELEMENTSARRAYLISTGRIDGRIDCALENDARDRAWCANVASCANVASVOIDCALENDARVIEWCECALENDARONDRAWCANVASCANVASVOIDONTOUCHEVENTMOTIONEVENTMOTIONBOOLEANONKEYDOWNINTKEYCODE,KEYEVENTEVENTBOOLEANGRIDDBSERVICEDBSERVICEDAYSSTRINGRECORDDAYSBOOLEANMONTHNAMESSTRINGCELLXFLOATCELLYFLOATCURRENTROWINTCURRENTCOLINTSETCURRENTROWVOIDGETRECORDDAYSVOIDSETCURRENTCOLVOIDGETMONTHDAYSINTCALCULATEDAYSVOIDGRIDISCURRENTDAYBOOLEANDRAWVOID图42日期的绘制类图本日程的日期绘制除去配置和XML文件,主要用到了GRIDJAVA、CALENDARPARENTJAVA、CALENDARVIEWJAVA、CALENDARJAVA这四个文件。(1)CALENDARPARENTJAVACALENDARPARENTJAVA主要封装了显示界面的一些尺寸大小和颜色,除此之外实现了CALENDARPARENTJAVA的接口,实现了DRAW()方法,以便让后面的类实现这个类,就可以绘制日历了。而这个类的构造方法直接把要显示的界面和公用的属性放在里面。(2)CALENDARJAVA在构造方法里引用GRID类,并把边框和日期全都加到日历的显示主界面中,然后继承CALENDARPARENTJAVA,去实现这个DRAW()方法绘制日历。(3)CALENDARVIEWJAVA这个类直接继承了VIEW类,同样要去用DRAW()这个方法去绘制日历,然后的ONTOUCHEVENT()方法的意思是当手动滑动屏幕时日历的显示位置,而ONKEYDOWN()方法是当在键盘上按上、下、左、右四个方向键时日历的显示位置。(4)GRIDJAVA此类是本日历应用程序的核心类,它的主要作用是封装了日历和处理一些事务的方法,主要方法具体见表41所示。表41GRIDJAVA主要方法方法名功能说明SETCURRENTROWINTCURRENTROW设置当前日期所在的行GETRECORDDAYS获取记录的天数SETCURRENTCOLINTCURRENTCOL设置当前日期所在的列GETCURRENTROW获取当前日期的行GETCURRENTCOL获取当前日期的列GETMONTHDAYSINTYEAR,INTMONTH获取某年某月的天数CALCULATEDAYS计算出某个月的天数UPDATEMSGBOOLEANTODAY更新当前日期的信息DRAWCANVASCANVAS绘制日期ISCURRENTDAY判定所选的日期是否是当天记录信息的类图如图43所示。RECORDETTITLEEDITTEXTETCONTENTEDITTEXTEDITBOOLEANREMINDTIMESTRINGONCREATEVOIDONMENUITEMCLICKBOOLEANONSAVEMENUITEMCLICKONCLICKVOIDONCREATEOPTIONSMENUVOIDACTIVITYGRIDALLRECORDRECORDARRAYLIST

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论