基于android平台的电子课表查询设计与实现_第1页
基于android平台的电子课表查询设计与实现_第2页
基于android平台的电子课表查询设计与实现_第3页
基于android平台的电子课表查询设计与实现_第4页
基于android平台的电子课表查询设计与实现_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计题目基于ANDROID平台的电子课表查询设计与实现学院软件学院专业软件工程2014年4月18日基于ANDROID平台的电子课表查询设计与实现摘要智能手机虽然早在多年前就已出现,但那时的智能手机的功能主要是本地应用,这些手机以NOKIA的SYMBIAN系统为主。但随着移动互联网时代的到来,本地应用已远远无法满足用户的需求了。然而在创新为王的今天,新的技术总在不断取代旧的技术。以创新闻名的GOOGLE为了进军移动广告市场,就开始研制新的移动操作系统ANDROID。本程序主要使用了JAVA和ANDROID的基础编程知识,用户界面采用MVC模型的电子课表应用程序的结构和设计实现过程。本程序的开发工具为ECLIPSE,并通过与SQLITE数据库相连,从而实现了基于ANDROID的电子课表管理应用程序。关键词ANDROID,SQLITE,MVCQUERYANDROIDPLATFORMBASEDELECTRONICCURRICULUMDESIGNANDIMPLEMENTATIONABSTRACTALTHOUGHMANYYEARSAGOSMARTPHONESHADALREADYAPPEARED,BUTATTHATTIMETHESMARTPHONESMAINFUNCTIONISTHELOCALAPPLICATIONANDTHESEPHONESISBASEDONNOKIASSYMBIANOSBUTWITHTHEARRIVALOFTHEERAOFMOBILEINTERNET,THELOCALAPPLICATIONHASFARUNABLETOMEETTHENEEDSOFUSERSHOWEVER,ININNOVATIONISTHEKINGOFTODAY,NEWTECHNOLOGYISALWAYSREPLACINGTHEOLDTECHNOLOGYINORDERTOENTERTHEMOBILEADVERTISINGMARKET,GOOGLE,KNOWNFORINNOVATION,STARTEDTODEVELOPANEWMOBILEOPERATINGSYSTEMANDROIDTHEREHAVEBEENALLKINDSOFSOFTWAREANDAPPLICATIONSTOJOINTHEANDROIDSYSTEM,THECALENDARAPPLICATIONPROGRAMASONEOFTHEDAILYTOOLS,ITHASMANYSMALLFUNCTIONSMAINLYINTHEDISPLAYOFDATEGIVESPEOPLETHEEXPRESSIONOFTHEVISUALEFFECT,INQUIRESTHEDATEISVERYCONVENIENTANDSIMPLE,ANDITISALSOAREMINDEROFCERTAINFESTIVALSTHATCANBROUGHTUSGREATCONVENIENCEITISAMOREPRACTICALLITTLETOOLTHISPROGRAMISMAINLYUSEDTHEBASICPROGRAMMINGKNOWLEDGEOFJAVAANDANDROIDANDUSERVIEWUSINGTHEMVCMODELITSDEVELOPMENTTOOLISECLIPSE,ANDCONNECTSTOTHESQLITEDATABASE,THEREBYACHIEVEACALENDARAPPLICATIONPROGRAMBASEDONANDROIDITSMAINFUNCTIONSINCLUDETHEFOLLOWINGTWOASPECTSFIRST,THEFRONTDISPLAY,INTHEAPPLICATIONHOMEPAGEYOUCANVIEWDATE;SECOND,BACKGROUNDMANAGEMENT,MAINLYDOSOMETHINGABOUTCREATE,RETRIEVE,UPDATE,DELETEOFINFORMATIONKEYWORDSANDROID,SQLITE,MVC目录摘要1ABSTRACT2目录3第1章绪论511论文研究主要内容512国内外现状6第2章关键技术介绍821JAVA开发方面822ANDROID用户界面技术8第3章系统分析1031系统概述10311功能框架10312系统特性11313需求规格11314系统用例规约12315系统的流程分析1532系统开发环境1633系统任务的可行性分析17第4章系统设计1841设计指导思想和原则18411指导思想18412软件设计原则1842系统的功能结构设计1843系统静态模型设计2044数据库设计22441数据库设计的概述22442概念结构设计23443逻辑结构设计23444物理结构设计24第5章系统实现2551应用程序功能实现2552应用程序界面功能实现25521应用程序主界面25522指定课表界面27523显示所有的课表2853数据库存储方式30第6章系统测试3261测试方案及测试用例3262系统测试计划3263系统测试3264测试总结33第7章结论34参考文献35致谢36外文原文37中文翻译43第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手机在中国市场的销量在未来必然还将有较大发展空间。第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类设置记录信息界面和处理记录的交互。第3章系统分析31系统概述311功能框架根据需求调研结果确定本系统主要包括以下功能模块,如图31所示。图31系统功能框架从系统功能框架中很容易看出,本应用程序采取的是MVC模型,一个ANDROID的ACTIVITY通过业务处理来处理一些事务并把它反映在界面之中。启动应用程序首先看到的是一个显示的主界面,然后可以根据菜单选项访问SQLITE数据库进行事件的添加、修改、查看、删除,这样做的好处是后台服务可以及时更新数据,以保证数据的准确性。设置提醒的时间功能同样也要和数据库相关联进行一系列的操作。DB下的DBSERVICE类封装了许多SQLITE的数据库的增、删、改、查的操作,后台服务会调用它来实现数据库的操作。312系统特性基于ANDROID的课表应用程序是为了向用户展示一个友好的课表界面并能提供一课表应用程序业务处理DB登陆查询添加课表课表信息帮助界面系列的应用操作的一个应用程序。整个系统分为以下几个模块,见表31。表31基于ANDROID的课表应用程序特性概述功能编号功能名称功能描述优先级1课表的显示对日期按照一定的规则显示在界面上中2提醒时间的管理对设置的提醒时间进行管理和维护高续表31基于ANDROID的课表应用程序特性概述功能编号功能名称功能描述优先级3记录信息的管理对所记录的信息进行管理和维护高4切换界面的显示对切换日期的进行准确的显示中5帮助界面的显示对一些额外的信息的介绍中313需求规格(1)日期的显示支持的日期范围从190111至21001231,在日期界面上我们能够很详细的看到这个月的详细信息,在这个界面我们可以通过键盘和触摸能够看到任何一天的日期和带有标记的记录信息和提醒事件的信息。(2)提醒时间的管理用户可以通过提醒时间的界面来设置什么时候去提醒自己去做某件事,在提醒时间界面中用户可以滑动屏幕来设置小时和分钟。(3)记录信息的管理通过菜单选项的记录和提醒控件,用户可以进入记录界面,在记录界面中用户可以添加、查看、修改、删除记录,并且为记录设置提醒时间。这样我们就可以在某一个时间点来通过程序来提醒我们做一些事情。(4)切换日期界面的显示当我们向任意查看某天的信息的时候,我们可以通过菜单选项的制定日期来进入我们想查看的那天的日期。(5)帮助界面的显示在应用程序中要把一些额外的信息告知用户,所以就是在此界面中设置的一些信息来供用户查看。314系统用例规约课表应用程序的几个功能中按照前、后台交互的功能划分,只有提醒时间的管理和记录信息的管理体现了这一部分。(1)提醒时间管理的用例规约用例图提醒时间用例图,如图32所示。用户系统查看日期查看记录设置时间设置响铃或震动图32提醒时间用例图用例描述本用例主要描述了提醒时间的相关功能和进行相关的设置,如表3235所示。表32提醒时间查看日期用例描述用例名称查看日期参与者任何使用本应用程序的用户用例概述想查看某一天日期的详细信息前置条件无基本事件流1、用户打开本课表应用程序可以制定时间的日期。2、当用户使用键盘或者触摸屏幕时可以查看这个日期对应的其他信息。3、在有记录的信息上添加标记,这样用户在查看日期时就能知道此日期对于的提醒时间。其他事件流无表33提醒时间查看记录用例描述用例名称查看记录参与者查看日期并且已经设置记录的用户用例描述查看自己在某一天某一个时间设置的记录信息前置条件用户已经在某一个记录下设置了提醒时间续表33提醒时间查看记录用例描述基本事件流1、用户打开课表应用程序在某一天记录信息2、设置相应的提醒时间其他事件流无表34提醒时间设置时间用例描述用例名称设置时间参与者登陆本应用程序并且已经设置好记录信息用例描述为某一个记录下的事件设置时间前置条件用户已经记录下时间基本事件流1、用户记录下某一事件2、在这一事件下设置指定的时间其他事件流无(2)记录信息管理的用例规约用例图记录信息管理用例图,如图33所示。用户系统添加记录修改记录查看记录修改记录图33记录信息管理用例图用例描述本用例主要描述了记录信息管理的相关功能,如表3639所示。表36记录信息管理添加记录用例描述用例名称添加记录参与者用户用例概述在用户打开应用程序后可以在记录界面中添加记录前置条件用户打开应用程序并且在记录界面上基本事件流1、当用户点击“添加记录”按钮时,程序打开添加记录界面2、用户在相应的文本框中输入信息3、用户点击“完成”按钮时,添加成功其他事件流无表37记录信息管理修改记录用例描述用例名称修改记录参与者用户用例概述在显示记录的界面中可以修改相关的记录信息前置条件用户已经完成记录的添加基本事件流1、当用户打开“修改/查看”按钮时,系统打开记录修改页面,并且显示本记录的信息2、用户填写相关信息,点击“完成”按钮时,更新记录的信息其他时间流无表38记录信息管理查看记录用例描述用例名称查看记录参与者用户用例概述用户查看已经写好的记录前置条件用户在应用程序下查看日期基本事件流1、用户点击“修改/删除”按钮,程序打开记录查询页面2、在此页面下用户可以看到各种相关的记录的信息其他时间流无表39记录信息管理删除记录用例描述用例名称删除记录参与者用户用例概述用户删除已经不用的记录前置条件用户已经成功添加了记录信息基本事件流1、用户打开记录界面,点击“删除”按钮,就可以删除此记录信息2、删除完成后在界面中就看不到这个记录的信息其他时间流无通过以上的描述,能够很清楚的知道记录信息相关的功能和操作的步骤,并且很容易发现系统相关方面的漏洞。315系统的流程分析用户进入课表应用程序可以任意查看每个年份相对应得日期,在每个日期的标志用户可以看到查看的那天是哪一个月的,并且可以为某一天设置记录信息和相应的提醒时间以便提醒我们去做某一件事,从而相应的我们也可以对这个记录进行添加、修改、查看、删除操作。(1)添加记录模块用户进入记录信息管理页面,点击“添加”选项菜单,在添加记录界面中输入信息,如果输入一些非法字符则重新输入信息。流程图如图34所示。用户点击“添加”按钮填写相关信息填写非法信息Y添加成功N图34添加记录流程图(2)设置提醒时间模块用户进入设置时间状态,然后通过滑动时间选项来设置时间。流程图如图35所示。进入设置时间界面设置时间设置成功图35设置提醒时间流程图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系统功能结构图所示。GOOGLEANDROID平台的系统构架图如下所示图41ANDROID分为四层,从上层到底层分别是应用层、应用框架层、系统运行库层和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所示。RECORDETTITLEEDITTEXTETCONTENTEDITTEXTEDITBOOLEANREMINDTIMESTRINGONCREATEVOIDONMENUITEMCLICKBOOLEANONSAVEMENUITEMCLICKONCLICKVOIDONCREATEOPTIONSMENUVOIDACTIVITYGRIDALLRECORDRECORDARRAYLISTARRAYADAPTERARRAYADAPTERIDLISTLISTMYLISTACTIVITYLISTACTIVITYONCREATEVOIDONLISTITEMCLICKVOIDSTARTEDITRECORDACTIVITYVOIDONMENUITEMCLICKBOOLEANDBSERVICEDATABASE_VERSIONINTDATABASE_NAMESTRINGONCREATEVOIDDBSERVICEONUPGRADEVOIDINSERTRECORDVOIDDELETERECORDVOIDGETMAXIDINTQUERYCURSORSQLITEOPENHELPER图43记录类图本应用程序的记录信息方面,除了用到普通的类还要关联数据库,并把用户添加的记录信息放到数据库中。(1)RECORDJAVA直接继承了ACTIVITY类,把记录的相关功能界面显示在虚拟机上,并在此类中写了两个内部类定义了触发事件的方法。(2)ALLRECORDJAVA同样继承了LISTACTIVITY,把添加、删除、修改记录的界面放置在虚拟机上,并写了内部类来定义触发事件的方法。(3)DBSERVICEJAVA和数据库直接相关连的类,在此类中封装了增、删、改、查相关的方法供其它类调用使用。44数据库设计441数据库设计的概述数据库设计是建立在数据库及其应用系统上的技术,是信息系统开发和建设中的核心技术。为了支持相关程序的运行,所以数据库的设计就变得非常复杂,又由于数据库应用系统的复杂性,因此数据库的最佳设计根本不可能就一蹴而就,而只可能是一种“反复探寻,逐步求精”的过程,也就是必须把数据库中的一些数据对象以及这些数据对象之间关系的过程规划和结构化好。数据库是信息系统的基础和核心,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。在数据库设计和开发的过程中,它到处都透漏着软件工程的思想。按照软件的生命周期的思路,能把数据库的应用系统从开始的规划到最后被新系统所取代而停止使用的整个期间称之为数据库系统的生存期。442概念结构设计概念结构设计的任务是根据需求分析阶段产生的需求说明书,按照指定的方法把数据模型抽象为一个不依赖于任何的具体机器,即概念模型。概念模型使设计开发者的注意力能够从繁杂的实现细节中解脱出来,而不仅仅只集中在最重要的信息的处理模式和组织结构上。在数据库的概念结构设计中,通常采用ER图来表示数据库的概念结构设计。ER图将现实世界的信息结构统一用属性、实体和它们之间的联系来描述,而本应用程序最终设计出的实体只有记录这一个,下面就说明这个实体。443逻辑结构设计应用程序的数据库逻辑设计是整个设计的前半段,包括所需的实体和关系,实体规范化等工作,数据库的物理设计是整个设计的后半段,它包含所选择的数据库产品,确定的数据库实体属性(字段)、数据类型、长度、精度确定、DBMS页面大小等。数据库的逻辑设计决定了一个数据库及其应用的整体性能和调优位置。如果一个系统的数据库的逻辑设计的不好,则所有的调优方法对于提高数据库性能的效果都是不明显的。为了逐渐完善数据库设计的方法,必须遵守数据库的相关的规范化理论。而规范化理论又为数据库的逻辑设计提供了理论性的指导和工具,在减少了数据冗余的同时又节约了存储空间,并且同时加快了增、删、改、查的速度。根据用户的记录信息的需求,数据库的逻辑结构设计就包含一个表T_RECORDS,其字段见表42所示。表42数据库表属性数据类型是否为空主键IDINTEGERNOTNULLPRIMARYKEYTITLEVARCHARNOTNULLCONTENTTEXT续表42数据库表属性数据类型是否为空主键RECORD_DATEDATENOTNULLREMIND_TIMETIMEREMINDBOOLEANSHAKEBOOLEANRINGBOOLEAN444物理结构设计设计数据库的物理结构,根据数据库的逻辑结构来选定RDBMS如ORACLE、SYBASE等,并设计和实施数据库的存储结构、存取方式等。第5章系统实现51应用程序功能实现本系统的主要功能所用到类以及其作用,具体如表51系统结构类图说明所示。表51主要文件列表类别用到的类或文件作用MAINXML显示主界面RECORDXML添加记录的界面布局文件MYDATEXML指定日期的界面REMINDJAVA封装提醒时间的属性REMINDSETINGJAVA指定所显示的界面提醒时间的管理ALARMALERTJAVA设置提醒时间的特点RECORDJAVA指定显示的界面和添加数据库中记录信息的管理ALLRECORDJAVA指定界面和处理一些事件核心类GRIDJAVA绘制日历和处理事务的方法52应用程序界面功能实现521应用程序主界面应用程序启动主界面如图51所示。图51系统启动主界面ANDROID的每一个可视化界面都有一个唯一的布局配置文件,该文件里面有许多种布局方式,和各种资源文件如图像,文字,颜色,本程序在运行时,可以通过代码对各配置文件里面的内容进行读取以完成ANDROID应用程序的界面。这样就可以形成多种不同的可视化界面和丰富炫丽的效果。其主要代码如下LINEARLAYOUTMAINLAYOUTLINEARLAYOUTGETLAYOUTINFLATERINFLATERLAYOUTMAIN,NULLSETCONTENTVIEWMAINLAYOUTCALENDARVIEWNEWCALENDARVIEWTHISMAINLAYOUTADDVIEWCALENDARVIEW该代码主要把日程应用程序的主界面展现在用户面前。除此之外,我们能够看到在有一个设置布局的方法SETCONTENTVIEWMAINLAYOUT,而该方法的MAINLAYOUT是通过是通过获取RJAVA类里的ID获取的,而此ID正是代表RES/LAYOUT目录下的MAINXML文件。下面为布局文件MAINXML的代码。522指定课表界面日程应用程序的指定日期界面如图52所示。图52指定课表界面首先需要在单击选项菜单时显示如图52所示的设置课表的对话框,菜单单击事件的代码如下BUILDERNEWALERTDIALOGBUILDERACTIVITYBUILDERSETTITLE“指定日程“DPSELECTDATEINITCALENDARVIEWCEGRIDCURRENTYEAR,CALENDARVIEWCEGRIDCURRENTMONTH,CALENDARVIEWCEGRIDCURRENTDAY,THISBUILDERSETVIEWMYDATELAYOUTADMYDATEBUILDERCREATEONDATECHANGEDDPSELECTDATE,DPSELECTDATEGETYEAR,DPSELECTDATEGETMONTH,DPSELECTDATEGETDAYOFMONTHADMYDATESHOW523显示所有的课表在类中我们可以看到实现记录的一些信息的操作的代码。当单击主界面选项菜单中的“记录/提醒”菜单项,会进入记录列表界面,如图53所示,通过该界面的选项菜单,可以对所记录的信息进行增、删、改、查操作。图53课表界面类的核心是通过数据库来读取记录信息,代码如下PROTECTEDVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATEYEARGETINTENTGETEXTRASGETINT“YEAR“MONTHGETINTENTGETEXTRASGETINT“MONTH“DAYGETINTENTGETEXTRASGETINT“DAY“CURSORCURSORGRIDDBSERVICEQUERYYEAR“MONTH“DAYIFRECORDARRAYNULLRECORDARRAYNEWARRAYLISTIFARRAYADAPTERNULLARRAYADAPTERNEWARRAYADAPTERTHIS,ANDROIDRLAYOUTSIMPLE_LIST_ITEM_1,RECORDARRAYELSEARRAYADAPTERCLEARIDLISTCLEARWHILECURSORMOVETONEXTARRAYADAPTERADDCURSORGETSTRING1IDLISTADDCURSORGETINT0RESOURCESRESGETRESOURCESDRAWABLEDRAWABLERESGETDRAWABLERCOLORCALENDAR_BACKGROUNDTHISGETWINDOWSETBACKGROUNDDRAWABLEDRAWABLE此外,在这个类中还处理了3个选项菜单的事件。这三个菜单事件的代码如下增加记录菜单的事件代码INTENTINTENTNEWINTENTACTIVITY,RECORDCLASSACTIVITYSTARTACTIVITYINTENT修改记录菜单的事件代码如下ALLRECORDALLRECORDALLRECORDACTIVITYINTINDEXALLRECORDGETSELECTEDITEMPOSITIONIFINDEXELEMENTNAMESTHEACTIVITYSUBCLASSTHATIMPLEMENTSTHEACTIVITYTHEICONANDLABELATTRIBUTESPOINTTORESOURCEFILESCONTAININGANICONANDLABELTHATCANBEDISPLAYEDTOUSERSTOREPRESENTTHEACTIVITYTHEOTHERCOMPONENTSAREDECLAREDINASIMILARWAYELEMENTSFORSERVICES,ELEMENTSFORBROADCASTRECEIVERS,ANDELEMENTSFORCONTENTPROVIDERSACTIVITIES,SERVICES,ANDCONTENTPROVIDERSTHATARENOTDECLAREDINTHEMANIFESTARENOTVISIBLETOTHESYSTEMANDARECONSEQUENTLYNEVERRUNHOWEVER,BROADCASTRECEIVERSCANEITHERBEDECLAREDINTHEMANIFEST,ORTHEYCANBECREATEDDYNAMICALLYINCODEASBROADCASTRECEIVEROBJECTSANDREGISTEREDWITHTHESYSTEMBYCALLINGCONTEXTREGISTERRECEIVERFORMOREONHOWTOSTRUCTUREAMANIFESTFILEFORYOURAPPLICATION,SEETHEANDROIDMANIFESTXMLFILEINTENTFILTERSANINTENTOBJECTCANEXPLICITLYNAMEATARGETCOMPONENTIFITDOES,ANDROIDFINDSTHATCOMPONENTBASEDONTHEDECLARATIONSINTHEMANIFESTFILEANDACTIVATESITBUTIFATARGETISNOTEXPLICITLYNAMED,ANDROIDMUSTLOCATETHEBESTCOMPONENTTORESPONDTOTHEINTENTITDOESSOBYCOMPARINGTHEINTENTOBJECTTOTHEINTENTFILTERSOFPOTENTIALTARGETSACOMPONENTSINTENTFILTERSINFORMANDROIDOFTHEKINDSOFINTENTSTHECOMPONENTISABLETOHANDLELIKEOTHERESSENTIALINFORMATIONABOUTTHECOMPONENT,THEYREDECLAREDINTHEMANIFESTFILEHERESANEXTENSIONOFTHEPREVIOUSEXAMPLETHATADDSTWOINTENTFILTERSTOTHEACTIVITYTHEFIRSTFILTERINTHEEXAMPLETHECOMBINATIONOFTHEACTION“ANDROIDINTENTACTIONMAIN“ANDTHECATEGORY“ANDROIDINTENTCATEGORYLAUNCHER“ISACOMMONONEITMARKSTHEACTIVITYASONETHATSHOULDBEREPRESENTEDINTHEAPPLICATIONLAUNCHER,THESCREENLISTINGAPPLICATIONSUSERSCANLAUNCHONTHEDEVICEINOTHERWORDS,THEACTIVITYISTHEENTRYPOINTFORTHEAPPLICATION,THEINITIALONEUSERSWOULDSEEWHENTHEYCHOOSETHEAPPLICATIONINTHELAUNCHERTHESECONDFILTERDECLARESANACTIONTHATTHEACTIVITYCANPERFORMONAPARTICULARTYPEOFDATAACOMPONENTCANHAVEANYNUMBEROFINTENTFILTERS,EACHONEDECLARINGADIFFERENTSETOFCAPABILITIESIFITDOESNTHAVEANYFILTERS,ITCANBEACTIVATEDONLYBYINTENTSTHATEXPLICITLYNAMETHECOMPONENTASTHETARGETFORABROADCASTRECEIVERTHATSCREATEDANDREGISTEREDINCODE,THEINTENTFILTERISINSTANTIATEDDIRECTLYASANINTENTFILTEROBJECTALLOTHERFILTERSARESETUPINTHEMANIFESTFORMOREONINTENTFILTERS,SEEASEPARATEDOCUMENT,INTENTSANDINTENTFILTERS中文翻译应用程序基础ANDROIDDEVELOPERS摘要随着手机市场的发展,3G手机逐渐占领手机市场,3G手机系统开发也成为市场上的热门技术。本论文主要介绍ANDROID系统的一些基本应用程序,是对APPLICATIONFUNDAMENTALS这本书的部分翻译,让更多的学习者可以轻松的学习了解ANDROID系统的开发和应用。论文中的翻译内容是本人对APPLICATIONFUNDAMENTALS的个人理解,与原著存在一些异同,想了解更多关于或更详细ANDROID系统应用基础可以参考本文阅读原著,本文只对ANDR

温馨提示

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

评论

0/150

提交评论