基于Android的行程安排系统_第1页
基于Android的行程安排系统_第2页
基于Android的行程安排系统_第3页
基于Android的行程安排系统_第4页
基于Android的行程安排系统_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、辽宁科技大学本科生毕业设计(论文) 第V页基于Android的行程安排系统摘 要现代大学生的课程越来越多,而且每个班级门同一门每天课程的时间和教室都不固定,给学生的上课带来了一定的麻烦,于是“基于Android的行程安排系统”就应运而生了,基于Android的行程安排系统又叫做“放心行程表”,放心行程表是一款能让用户快速的设置好行程安排的系统,会在行程前通知使用者,而且还方便于用户随时随地的查阅上课的地点与课程名,该系统的使用对象主要是老师和同学,包括上课的行程提醒(特别是针对某些单双周的课程),也适合对工作环境中“安静”和“准时”要求比较高的人士。首先本论文较为详尽地介绍了面向对象分析与设计

2、的有关概念与技术,特别深入介绍了在本系统中运用到的知识,以及系统中所用到的开发技术Android以及Java的特点、结构以及使用方法。接着对该系统的可行性进行了分析,然后对系统的设计思想、设计目标与系统的整体结构进行了明确的规划。最后对系统的主要页面、数据库、应用程序的设计与实现作了较为详细的阐述。关键词:行程;Android;Java;数据库;提醒The Route Arrangement System on the base of AndroidAbstractThe modern college students hava more and more courses with flexi

3、ble time and places. Which bring certain problems to them for having their classes. In terms of solving this problem,the Route Arrangement System on the base of Android is arises at this moment. The Route Arrangement System is also called the Safety Route List which can make the users quickly set up

4、 the route and provide convenience for the users to check the place and the name of the course timely. The main customers of the system are the real teachers and students and the ones who have higher requirements for the quiet and on time of the working environment. The system also includes the tout

5、e caution of the class(especially aims at some sigle and dual week courses). Firstly,this paper particularly introduces the relative conception and technology of the object analysis which is applied to this system and the development technology Android,and the characteristics,structures and using me

6、thods of Java.Secondly,this paper also analyses the feasibility of this system;makes perfect scheme of the design conception,design objectives and wholly structure of this system. Finally,this paper elaborates the design and achivement of the main page,data base,application program of this system.Ke

7、y words:Route; Android; Java; Ddta Base; Caution目 录1 绪论11.1 选题背景11.2 国内外研究状况21.3 运行环境及开发工具21.3.1 MyEclipse21.3.2 Java31.3.3 Tomcat41.3.4 MVC模式41.3.5 Oracle51.3.6 KindEdit52 Android的架构概述及开发环境搭建62.1 Android的架构描述62.2 Android的开发环境的搭建82.2.1 Android软件开发包下载82.2.2 其他注意事项82.2.3 环境安装与搭配83 可行性分析与需求分析143.1 引言14

8、3.2 技术可行性143.3 经济可行性143.4 操作可行性153.5社会可行性153.6 需求分析153.6.1 系统开发背景153.6.2 系统功能的描述164 系统详细设计174.1 引言174.2 概要设计174.3 数据库设计184.4数据存储.194.4.1 SQLite194.4.2 SQLite数据库的创建204.4.3 SQLite数据表的设计204.4.4 Preference214.5 程序的主要类224.5.1 Course类224.5.2 Addclass类和Addplan类224.5.3 DDataManager类234.5.4 AlamServer类234.6

9、首页界面设计255 系统实现275.1 引言275.2 系统运行27结论30致谢32参考文献33辽宁科技大学本科生毕业设计(论文) 第34页 1 绪 论1.1 选题背景随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需

10、要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台Android。Android 是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。根据中国互联网信息中心(CNNIC)发布的消息称,截止2011年底,中国网民数量达到了惊人的5.13亿,正式迈入了

11、“5亿网民”时代,其中手机网民达到3.4亿,手机上网成为网络介入的一个重要发展方向。综上所述,无论是在国内还是在国外,Android平台对手机软件行业和移动手机平台将发挥极大地推动作用,而在未来的几年或者一段时间内,Android将越发的凸显自己的重要性。基于此本文将有Android平台在eclipses环境下开发了一款大学生日程管理系统,它将个人日程管理、课程表管理、定时提醒、安全设置等整合成一个多功能软件,特别是考虑到课程表中特殊的课程安排,在课程表上设置了单双周,自动删除等许多特殊设置,以满足大学生的特定需求。1.2 国内外研究状况国内外这方面的软件种类繁多,就拿Luckydroid组织

12、设计开发的“Memento v1.3.2”来说,该软件属于“个人助理”,理论上支持支持所有搭载Android 1.5及以上系统机型,具有自定义备忘录、待办任务(Tasks)、CD收藏(CD Collection)、DVD收藏(DVD Collection)、我的软件(My Software)、购物清单(Purchases)、酒类收藏(Wine)、汽车保养(Vehicle Maintenance)、书籍(Books)、烹饪(Recipes)、家庭开销(Home Inventory)、讲稿记录(Lecture Notes)、语音记录(Voice Notes)等功能。可更换备忘录列表主题、背景&qu

13、ot; ,可将单个项目导出至存储卡,或从存储卡导入;可将所有备忘项目备份至存储卡;软件可与谷歌在线服务同步,将备忘录数据上传至服务器,随时随地轻松了解备忘事件;且支持扫描条形码。在手机备忘录这方面,该软件在国内市场应该还处于领先水平。1.3 运行环境及开发工具硬件开发环境:CPU:Intel(R)Core(TM) 2 Duo CPU T6600 2.20GHz,2.20GHz内存:2GB 硬盘:320G系统:32位操作系统软件开发环境:1. 操作系统:Microsoft Windows 72. 浏览器:Internet Explorer 8.03. 开发环境: M

14、yEclipse8.54. 开发语言:Java+Android5. 模式:MVC6. 数据库:Oracle10g7. 应用服务器:Tomcat6.08. 文本编辑工具:KindEditor下面简单介绍一下MyEclipse 、Java、JSP、Tomcat,MVC、Oracle和KindEditor。1.3.1 MyEclipse MyEclipse是一个专门为Eclipse设计的商业插件和开源插件的完美集合。MyEclipse为Eclipse提供了一个大量私有和开源的Java工具的集合,很大程度上解决了各种开源工具的不一致和缺点问题,并大大提高了Java和JSP应用开发的效率。MyEclip

15、se的实际价值来自其发布的大量的可视化开发工具和实用组件。如CCS/JS/HTML/XML的编辑器,帮助创建EJB和Struts项目的向导并产生项目的所有主要的组件如Action/Session Bean/Form等,此外还包含编辑Hibernate配置文件和执行SQL语句的工具。和.NET平台开发工具VS20003/VS2005以及以前的快速开发RAD工具Delphi,PowerBuilder等相比,Java/JSP应用开发的低效率一直是个缺陷。直到Eclipse和MyEclispe等出现后,情况才有所改观(尤其是MyEclispe等可视化开发插件),大大提高了开发效率。新版本的MyEcli

16、pse提供了AJAX、Struts Development、Hibernate Tools、Spring IDE Integration等功能。这些功能毫无疑问可以简化Web应用开发,并对Struts、Hibernate、Spring等开发框架的广泛应用起到了非常好的促进作用。此外MyEclipse还包含大量由其他组织开发的开源插件,Genuitec增强了这些插件的功能并且撰写了很多实用文档便于开发者学习。综上所述,MyEclipse插件对加速Eclipse的流行起到了很重要的作用,并大大简化了复杂Java/JSP应用的开发。1.3.2 JavaJava,是由Sun Microsystems公

17、司于1995年5月推出的Java程序设计语言和Java平台的总称。是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在

18、WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下子变成了白天鹅。Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java由四方面组成:Java编程语言、Java类文件

19、格式、Java虚拟机和Java应用程序接口(Java API)。广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的专业开发者社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。1.3.3 TomcatTomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。

20、因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。1.3.4 MVC模式 MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理

21、仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。模型(Model)就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。模型、视图、控制器三者之间的关系和各自的主要功能,如图2.1所示:图1.1 M

22、VC组件类型的关系和功能图1.3.5 OracleOracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用mysql, SQL server等数据库系统,它的操作很简单,功能也比较齐全。只是相对于Oracle数据库而言,在处理大量数据方面有些不如。1.3.6 KindEditKindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。 KindEditor使用JavaScr

23、ipt编写,可以无缝的于Java、.NET、PHP、ASP等程序接合。 KindEditor非常适合在CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用,2006年7月首次发布2.0以来,KindEditor依靠出色的用户体验和领先的技术不断扩大编辑器市场占有率,目前在国内已经成为最受欢迎的编辑器之一。 2 Android的架构概述及开发环境搭建 2.1Android的架构描述Android是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定一个层次的系统架构,Android的架构图如下图所示:图2.1 Android架

24、构图 分析:第一层:Linux操作系统和驱动(Linux kernel),由C语言实现。Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型。Linux内核也作为硬件和软件栈之间的抽象层。除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理。第二层:本地框架和Java运行环境(LIBRARIES 和 ANDROID RUNTIME)由C/C+实现。包含C/C+库,被Android系统中不同组件使用,它们通过Androi

25、d应用程序框架为开发者进行服务。系统C库:(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库。多媒体库:基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式。Suface Manager:显示子系统管理器,并且为多个应用程序提供2D和3D图层的无缝融合。LibWebCore:一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图。SGL:Skia图形库,底层的2D图形引擎。3D libraries:基于OpenGL ES1.0 API的实现;该库可以使用硬件

26、3D加速(如果可用),或者使用高度优化的3D软加速。FreeType:位图(bitmap)和矢量(vector)字体显示。Android运行环境(ANDROID RUNTIME):提供了Java编程语言核心库的大多数功能,由Dalvik Java虚拟机和基础的Java类库组成。Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀名为.dex的Dalvik可执行文件,该格式的文件针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的

27、类都是有Java编译器编译,然后通过SDK中的“dx”工具转化为.dex格式由虚拟机执行。Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。第三层:Android应用框架(ANDROIDFRAMEWORK)在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。包含的框架入上图(不在陈述)第四层:Android应用程序(APPLICATIONS)注意:Android应用程序都是有Java语言编写的。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。2.2Android开

28、发环境的搭建工欲善其事必先利其器,下面介绍一下android开发环境的配置。2.2.1 Android软件开发包下载(1) JDK4.0 请到网址 下载。(2) Eclipse3.4(Europe) 请到网址 /downloads/ 下载。 Eclipse IDE for java Developers。(3) Android SDK1.5 请到网址 下载。(4) APT插件。2.2.2其他注意事项Android的Eclipse插件安装需注意,Eclipse可以对应的网站下载安装,如果通过网络远程安装不成功,可以下载到本地安装。2.2.3环境安装与搭配

29、安装JDK将下载好的JDK安装好以后,设置环境变量步骤如下:我的电脑->属性->高级->环境变量->系统变量中添加以后环境变量:JAVA_HOME值为:D:Program FilesJavajdk1.6.0_18 (你安装JDK的目录)在开始追加 %JAVA_HOME%bin;安装完成后,可以检查JDK是否安装成功。打开cmd窗口,输入java-version查看JDK版本信息,出现以后画面表示安装成功。图2.2 画面表示安装成功安装Eclipse将根据上面给的地址下载后安装即可,也可以选择下载绿色版,解压即可使用。安装Android JDK运行SDK Set

30、up.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https:/."这项,再点击Available Packages。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包。在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。图2.3 路径点击“确定”重新启动计算机,重启之

31、后进入cmd窗口,检查SDK是不是安装成功,运行android h ,如果有类似下面的输出,表示安装成功。图2.4 安装成功安装ADT打开Eclipse IDE,进入菜单中的”help”->”Install New Software”。点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http:/dl-图2.5安装ADT确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。

32、 如下图所示:图2.6 添加的ADT完成之后就按提示一步一步next:i、选择Window > Preferences.ii、在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为: D:AndroidDevelopandroid-sdk-windowsiii、点击Apply、OK。配置完成。创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。在Eclipse中。选择Windows > Android SDK and AVD Manager。点击左侧面板的Virtual Devices,再右侧点击New。填入Name,选择

33、Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值。点击Create AVD即可完成创建AVD。注意:如果你点击左侧面板的Virtual Devices,再右侧点击New,而target下拉列表没有课选项时,这时候你:1) 点击右侧面板的Available Packages,在右侧勾选https:/dl-图2.7 右侧勾选2) 然后点击Install Selected按钮,接下来就是按提示做就行了要做这两步,原因是在1.3、Android SDK安装中没有安装一些必要的可用包(Available Packages)。Hello World通过File

34、-> New -> Project 菜单,建立新项目"Android Project"。 然后填写必要的参数,如下图所示:(注意这里我勾选的是Google APIs,你可以选你喜欢的,但你要创建相应的AVD。图2.8 创建相应的AVD点击Finish后,点击Eclipse的Run菜单选择Run Configuration。选择“Android Application”,点击在左上角(按钮像一张纸上有个“+”号)或者双击“Android Application”, 有个新的选项“New_configuration”(可以改为我们喜欢的名字)。在右侧Android面

35、板中点击Browse,选择HelloWorld在Target面板的Automatic中勾选相应的AVD,如果没有可用的AVD的话,你需要点击右下角的Manager,然后新建相应的AVD。如下图所示:图2.9 新建相应的AVD然后点Run按钮即可,运行成功的话会有Android的模拟器界面,如下图所示图2.10 模拟器界面出现以上画面后,你就可以开始开发属于自己的Android程序了。3 可行性分析与需求分析3.1 引言可行性研究(feasibility study),顾名思义,是为了弄清所定义的项目是不是可能实现和值得进行。研究的过程,实际上是一次大大简化了的系统分析和系统设计的过程。但是,这

36、个过程的目的不是解决用户提出的问题,仅是确定这个问题是否值得去解决,分析存在着哪些风险。可行性研究的目的就是用较小的代价尽可能快的确定问题是否能够解决,是否值得解决,并通过分析以避免冒太大的风险。即使研究的结论是不值得进行的,花在可行性研究上精力也不算白费,因为它避免了一次更大的浪费。对研究中可能提出的任何一种解决方案,都要从经济,应用,技术等方面来研究其可行性,作出明确的结论供用户参考。需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确的反应了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。需求分析的基本任务是要准确地定义新

37、系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。3.2 技术可行性本系统利用了Android技术,并结合JAVA和Oracle数据库开发而成,搭建于Tomcat服务器上,无论是前台页面,还是后台处理,还是数据存储,各个技术环节都有保障。因此,此系统在技术上是可行的。技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。数据库服务器选用Oracle数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,只需要将该系统放人任何一台智能手

38、机中都可以运行。3.3 经济可行性开发本系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本软件,与手抄相比,具有高效率、低成本、高质量的特点,可以节省人力、物力及时间。所以,从经济的角度来看,该系统可行。3.4 操作可行性本系统是基于手机上的小软件,操作简便,页面都是按钮和链接,只需用手轻轻一点,稍有用过其它软件的人都能轻松操作。而且,操作速度快,用户使用起来非常得心应手。因此,从系统的操作方面考虑,本系统是可行的。3.5 社会可行性随着Internet技术的快速发展,放心行程表已成为老师和同学们用来帮助自己记忆的主

39、要方式。在学校,人们可以随时随地的查看课程、教师、时间、和任课老师。放心行程表给老师和同学们提供了方便,它会成为老师和同学们手机里面必要的软件。所以说放心行程表对当今的学生和老师是相当重要的。3.6 需求分析手机电子课表在手机应用程序中并不常见,一般在手机上较为常见的日程提醒程序无法实现自由设置校历,重复提醒等功能。经过对周边同学的调查研究,普遍认为这款软件方便实用,其主要功能如下:(1)课程到点闹铃提示;(2)自定义设置每天课程数量;(3)设置校历;(4)能依据校历区分课程单双周;(5)能依据校历设置学习计划提醒;3.6.1系统开发背景 在日常繁杂的工作中,总是有很多重要日程需要安排,个人的

40、日常工作、领导的重要会议、个人重要日期或者时间等,都需要在特定时间给予醒目标识或者提示,日程安排就可以完成这些工作。日常安排主要功能是完成个人一般日程和重要日程安排,可以选择提醒方式。 日程安排主要是完成本人或者他人日常工作计划制定、备忘录等功能。对该系统特性面向的最终用户、能够提供的具体服务以及使用时机和必要的依赖关系进行简明、清晰的描述。3.6.2 系统功能的描述1)添加日程: 用户能添加自己不同类型的日程。2)查看日程: 用能查看已添加的日程详细信息。3)修改日程: 当用户觉得某一个日程内容需要修改是可以修改相关内容,时间,日期,闹铃提醒等。4)删除日程: 当用户觉得某一条日程已无用或已

41、过期可以删除该日程。5)删除全部日程: 用户可以清除添加的全部日程。(3) 系统数据流图 图3系统数据流图4 系统详细设计4.1 引言在明确了用户的需求以后,下一步的任务就是对未来的软件系统进行设计。概要设计的任务是确定软件系统的结构,进行模块划分,确定每个模块的功能,接口以及模块间的间的调用关系。在对上述工作进行详细、认真的分析后,对系统的各项功能有了全面的认识,下面进行系统的概要设计。详细设计是建立在概要设计的基础上,进一步确定实现系统各层次上所需的具体功能。因此,详细设计注重于模块微观上和框架内的设计,它的任务不是编写主要的代码,而是设计出程序的实现过程,使程序员能根据详细设计文档写出实

42、际的程序代码。4.2 概要设计从程序流程来分,用户在第一次进入程序时会进入设置界面,设置一些基本的配置信息以方便数据库管理,然后进入添加课程界面,进行添加课程操作。添加课程除了UI展示以外其他的方式都是在操作数据库,在程序中使用SQLite以实现校历功能,按天查询功能,单双周功能等。在程序主界面使用用list展示记录,从数据表中按当天的时间读取出当天的记录,得到当天每节课的课程id,再通过课程id从class表中查询出对应了课程信息,并在主界面中显示。程序的配置信息主要存在preference中,该信息在数据显示时读取必要的配置信息,比如读取本学期的第一周星期一是哪一天,用户选择第几周星期几时

43、就可以计算出当天的日期,再通过日期在数据表表中查询。添加学习计划模块也是采用preference中的键值对的方式存储数据,键为计划提醒的时间,值为计划的提示信息。这样在service中监听系统时间变化,每分钟会收到一个当时时间的消息,通过转换成时间字符串在preference中去查询,如果能得到计划的值,则说明在此时间有计划,弹出提示信息并播放音乐,用来实现计划提醒和上课提醒功能,如图4-1所示:用户主界面PreferenceSQLite用户设置界面课程添加界面计划添加界面Service用户设置信息计划信息提示时间课程信息课程信息课程时间课程时间图4.1 程序数据流图4.3 数据库设计数据库设

44、计的好坏直接关系到系统的运行效率和实现效果。合理地设计数据库结构可以提高数据存储效率,保证数据的完整和统一。数据库设计一般包括数据库需求分析和数据库逻辑结构设计。首先,根据实体类设计数据库中的表。如表4.1所示:表4.1 数据库表表名功能说明Tb-schedule行程(包括星期一星期五和周末的行程信息)Tb-plan计划(可以是学习计划、运动计划等)详细设计如表4.2所示。 表4.2数据库表列名数据类型约束条件其他说明WeekINTEGER行程IDWhichLessonString星期periodString课次startTimeString日期/时间周期EndTime文本行程开始时间Addr

45、ess文本行程结束时间RemendTimeString上课地点IsRemendString提醒时间SubmitDateString是否需要提醒TeacherString上课老师IsRemendByRingBoolean设置时间RemendByRingBoolean是否铃声提醒4.4 数据存储本程序数据存取方面主要用到了SQLite数据库和Preference存储机制。其中,SQLite主要用来存储课程信息,Preference则主要用来存储配置信息。4.4.1 SQLiteSQLite数据库是Android系统中非常重要的数据存储方法,它是Android系统唯一支持的数据库类型,也是Andro

46、id应用程序进行持久化存储的三种方式之一。 SQLite数据库是SQL数据库的简化版,支持大部分SQL操作。SQLite是Android应用程序中非常常用的一种数据存储手段。MyDBHelper继承SQLiteOpenHelper抽象类。SQLiteOpenHelper是创建数据库和数据库版本管理的辅助类,想要得到SQLiteOpenHelper,通过SQLiteDataBase实例的一些方法,可以执行SQL语句,对数据库进行增、删、改、查的操作。4.4.2 SQLite数据库的创建创建数据库主要用到了DBHelper类,该类继承了SQLiteOpenHelper类,实现了数据库、数据表的创建

47、。SQLiteOpenHelper有3个函数 onCreate、onUpgrade、onOpen,关键是重写onCreate方法一般在onUpgrade方法中边删除数据表并建立新的数据表,也可不做任何操作。具体方法如下:public Cursor queryAllCourses() SQLiteDatabase db = mOpenHelper.getReadableDatabase();String col = ID, WEEK, WHICH_LESSON, COURSE_NAME, PERIOD, START_TIME, END_TIME, ADDRESS, REMIND_TIME, IS

48、_REMIND, IS_REMIND_BY_VIBRATO, IS_REMIND_BY_RING, TEACHER, SUBMIT_DATE ;Cursor c = db.query(TABLE_NAME_SCHEDULE, col, null, null, null, null, null);return c;public void deleteCourseById(int id) try SQLiteDatabase db = mOpenHelper.getWritableDatabase();String str = "id=" + id;db.delete(TABL

49、E_NAME_SCHEDULE, str, null); catch (SQLException e) public void deletePlan(int pno) try SQLiteDatabase db = mOpenHelper.getWritableDatabase();String str = "pno=" + pno;db.delete(TABLE_NAME_PLAN, str, null);db.close(); catch (SQLException e) public void onUpgrade(SQLiteDatabase db, int oldV

50、ersion, int newVersion) / TODO Auto-generated method stub4.4.3 SQLite数据表的设计根据对本程序的需求分析,本程序一共需要用到两张数据表,分别为Class表和term表。Class表主要用来存储已经添加的课程,用户每添加一个课程就会在该表中新增一条记录,并且自动生成一个唯一的id,用以区别各个课程,同样名称但是分成两次添加的课程会被认为是不同的课程,这样设计的目的主要是为了方便查询。该表结构设计如下:_id: 已添加的课程id,课程表主键,用来查找课程,获取课程信息_time: 第一节课的开始时间;_startnum:第一节课的

51、编号;_endnum:最后一节课的编号;_name:课程名称;_address: 上课地点;term表主要用来记录整个学期的课程。该表结构如下:_date: 日期;_weeknum:周数;_one:第一节课的id;_two:第二节课的id;_three: 第三节课的id;_four:第四节课的id;_five:第五节课的id;_six:第六节课的id;_sevn:第七节课的id;_eight: 第八节课的id;该数据库设计初衷为保存整个学期的课程,这样实现整个学期的课程排布,包括数据的存储,课程的提醒和查询都比较方便。开始的两列包括日期和周数,从定义的本学期的第一周的星期一开始计算,完全实现自

52、动生成,用户只需要通过选择周数和星期就可以生成日期。表中从第三列开始保存的为课表的id,通过该id可以在class表中查询出对应的课程内容。4.4.4 PreferencePreference是一种轻量级的数据存储机制,它将一些简单数据类型的数据以键值对的形式存储在程序的Preference目录中。在Android平台上,可以通过一个Context对象调用getSharedPreferences(String name,int mode)方法传入Preferences文件名和打开模式,就可以获得一个Sharedpreferences的对象。Preferences从其保存数据的结构来分析,这是一

53、个相对较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。4.5程

54、序中的主要类 4.5.1 Course类该类为整个应用的主Activity, 显示课程表的主界面2。其主要方法如下:onCreate:Activity主要重写方法之一,实现程序初始化和UI展示;onResume:Activity重写方法之一,实现在唤醒Activity时刷新界面;onCreateOptionMenu:实现Option菜单的创建;onMenuItemSeleted:实现菜单项的点击事件响应;getDayClassRecord:从数据库中获取当天的课程信息;UpdateUI:在数据发生改变时刷新UI;removeClass: 从数据库中删除课程;界面设计方面通过RelativeLa

55、yout实现布局,使用了TextView,ImageButton课程列表通过ListView实现UI展示。该类通过继承BaseAdapter还实现了一个名为MyListAdapter的内部类,用来显示ListView中的数据并实现对ListView上ImageView控件点击的统一响应 5。4.5.2Addclass类和AddPlan类AddClass类为实现添加课程界面的Activity,主要实现由用户选择和输入课程信息,并将所有的课程信息添加到数据库中。主要方法如下:onCreate: 初始化UI控件;SetDefaultData: 设置初始化时默认的数据;SaveData:将添加的课程保存进数据库中;gettimeString: 将输入的课程信息转换成对应的时间字符串返回;AddPlan类实现添加计划界面,并将添加的数据存入Preference中。主要方法如下:onCreate:实现初始化UI控件;onClick:实现button点击事件的响应;setPlan:实现添加计划到preference中;4.5.3 BDataManager类该类为自定义的重要的数据库处理类,用来管理

温馨提示

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

评论

0/150

提交评论