基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx

上传人:b****4 文档编号:6153628 上传时间:2023-05-06 格式:DOCX 页数:27 大小:212.87KB
下载 相关 举报
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第1页
第1页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第2页
第2页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第3页
第3页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第4页
第4页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第5页
第5页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第6页
第6页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第7页
第7页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第8页
第8页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第9页
第9页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第10页
第10页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第11页
第11页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第12页
第12页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第13页
第13页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第14页
第14页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第15页
第15页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第16页
第16页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第17页
第17页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第18页
第18页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第19页
第19页 / 共27页
基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx

《基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx(27页珍藏版)》请在冰点文库上搜索。

基于Android平台的日历提醒软件的设计与实现Word文档下载推荐.docx

 

2相关技术介绍

2.1 Sqlite技术

2.1.1Sqilte介绍

SQLite,是一款小型的数据库,是遵从ACID的关联式模式的数据库管理系统,它的设计目标是基于嵌入式的小型数据库的,而且目前它已经被运用到很多嵌入式产品中,它占用系统资源非常少,在一些嵌入式设备中,几百KB的内存就能够满足系统的需要。

它支持Windows/Linux/Unix等许多的主流操作系统,同时与很多程序语言能够结合,比如Xml、PHP、C#、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源程序语言界最著名的数据库管理系统来说,它的处理速度比他们快的多[3]。

SQLite第一个Alpha版本于2000年5月诞生.到目前已经12年了,SQLite也发布了一个新的版本SQLite3。

2.1.2Sqlite支持的SQL语句

SQLite虽然相对于其他数据库非常的小,但是支持Sqlite的SQL语句绝对不会比其他开源数据库差劲,它所支持的SQL语句包括:

 

ATTACH DATABASE 、BEGIN TRANSACTION、comment、COMMIT TRANSACTION、COPY、CREATEINDEX、CREATETABLE、CREATE TRIGGER、CREATEVIEW、DELETE 、DETACHDATABASE、DROPINDEX 、DROP TABLE、DROP TRIGGER、DROPVIEW、END TRANSACTION、EXPLAIN 、expression 、INSERT 、ONCONFLICTclause、PRAGMA、REPLACE 、ROLLBACK TRANSACTION、SELECT、UPDATE。

2.1.3Sqlite的特征

1.ACID事务。

2.零配置–无需进行复杂的安装和繁琐管理配置。

3.一个完整的数据库中能够存储一个存在在单一磁盘中的文件。

4.在不同字节顺序的机器间能够自由地共享数据库文件。

5.数据库大小能够拓展到2TB。

6.规模足够小小,只要3万行C代码即能实现功能,大小约为250K。

7.在大部分的普通数据库中的操作要比在一些流行数据库中快。

8.简单,轻松的API。

9.包含TCL绑定,同时通过Wrapper支持其他语言的绑定。

10.良好注释的源代码,并且有着90%以上的测试覆盖率。

11.独立:

没有额外依赖。

12.Source完全的Open,你可以用于任何用途,包括出售它。

 

13.支持多种开发语言,C,PHP,Perl,Java,C#,Python。

2.2WebService技术

2.2.1WebService简介

WebService是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;

它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。

WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过WebService内部执行得到所需结果.WebService可以执行从简单的请求到复杂商务处理的任何功能。

一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务系统功能需求。

2.2.2WebService技术和规则

1.XML:

描述数据的标准方法。

2.SOAP:

表示信息交换的协议[4]。

简单对象访问协议,简单对象访问协(SOAP)是一种轻量的、简单的、基于XML的协议,SOAP可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。

它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

它是用来交换结构化和固定在网络上的信息。

3.WSDL:

是Web Service的描述语言:

用于描述WebService的接口信息等。

4.UDDI(Universal Description,DiscoveryandIntegration):

通用描述、发现与集成,它是一种基于XML语言的独立于平台之外的用于在描述互联网上的商务的协议。

2.3Android平台

2.3.1Android平台简介

Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统[5]。

刚开始的时候,是一个名为Android的公司来进行开发的,谷歌在2005年收购Android公司以后,继续进行对Android系统的开发以及运营,它采用了软件堆层(softwarestack,又名软件叠层)的架构,主要分为三部分。

Linux内核只提供底层功能,其他的应用软件则由各个使用Android来进行开发的公司进行自行开发,部分程序以Java语言来编写。

2.3.2Android应用程序框架

Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序、日历、地图、浏览器,联系人管理程序等[7]。

利用Java语言编写其他所有应用程序。

核心应用程序所使用的API框架可以完全被开发人员所访问。

该应用程序的架构设计简化了组件的重用;

任何应用程序都可以发布其功能、发布任何其他块的应用程序,可以利用他们发布的功能块(需要遵循的安全限制的框架)。

同样,用户可以利用应用的程序重用机制更方便的替换程序组件。

Android应用程序背后都隐藏了许多服务其中包括:

视图(Views),可以用来构建应用程序,它包括文本框(text boxes),按钮(buttons),列表(lists),网格(grids),甚至可以将这些元素嵌入到Web浏览器。

内容提供器(ContentProviders),共享它们自己的数据时都需要内容提供器的服务,或者当一个应用程序想要访问另一个应用程序的数据(如联系人数据库)。

资源管理器(ResourceManager),它可以提供如图形和布局文件(layoutfiles)非代码资源的访问[8]、本地字符串。

通知管理器 (NotificationManager),自定义的提示信息显示在应用程序可以在状态栏中。

活动管理器(ActivityManager),用来管理应用程序生命周期,并提供常用的导航回退功能,是Android开发中的重要的服务系统。

Android 具有一个能够分层的环境,在Linux 内核的基础上构建,它包含了各种功能。

UI 子系统包括:

窗口,视图。

Android与 iPhone的MobileSafari浏览器具有同样以 WebKit为基础的包括一个构建在 WebKit基础上的可嵌入浏览器,。

Android提供多种连接选项,包括WiFi、蓝牙和通过蜂窝(cellular)连接的无线数据传输(例如GPRS、EDGE和3G)[9]。

链接到 Google地图是Android应用程序中一项流行的技术。

并不是所有的Android设备都配备了必需的硬件,但是Android软件栈还提供对基于位置的服务(例如GPS)和摄像支持,另外还有加速计的支持。

过去,移动应用程序的两个领域分别是图形/媒体和数据存储方法努力向桌面应用程序看齐。

Android 利用对内置2D和 3D图形的支持,其中包括OpenGL库,解决了图形方面的问题,因此缓解了数据存储的负担。

Android软件层次结构。

如图2-1所示。

图2-1Android软件层次结构

应用程序架构。

如前所述,Android运行在Linux内核上。

Android应用程序是在一个虚拟机(VM)中运行的利用Java编程语言编写二乘的。

需要注意的是,这个VM与我们通常所说的JVM不同,它是Dalvik Virtual Machine,这是一种开源的虚拟机技术。

2.3.3系统运行库

(1)程序库

Android包含一些C语言、C++语言库,Android系统中各类不同的组件能够使用这些库。

开发者通过Android应用程序框架来获取一些服务,以下是一些核心库:

系统C库:

专门为基于embeddedlinux的设备定制的从BSD继承来的标准C系统函数库(libc)。

媒体库:

基于PacketVideo OpenCORE;

该库支持静态图像文件,同时支持多种常用的音频、视频格式回放和录制。

编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG,PNG。

SurfaceManager:

对有显示子系统进行管理。

LibWebCore:

一个web浏览器引擎器,支持一个可嵌入的web视图和Android浏览器。

SGL:

底层的2D图形引擎。

3Dlibraries:

基于OpenGLES1.0APIs的实现 [10]。

FreeType:

位图(bitmap)和矢量(vector)字体显示。

SQLite:

一个轻量级的数据库

(2) Android运行库

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能[11]。

Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制[12]。

2.4Xml技术

2.4.1Xml简介

可扩展标记语言(ExtensibleMarkupLanguage,XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型的一种技术,允许用户定义自己的标记语言的源语言。

XML是非常适合Web传输的标准通用标记语言 (SGML) 的子集。

XML通过一种方法来描述和交换结构化数据。

2.4.2Xml格式特征

XML不同于Access,Oracle和SQLServer等数据库,数据库提供了更完善的数据分析和存储能力,例如:

排序、查找、数据索引等,而XML只是完成存储数据的功能。

但是XML与其他数据表现形式相比最大的有点是:

他极其简单。

XML与HTML的设计最大的区别在于:

XML是被设计用来对数据进行储存的的。

而HTML 是被设计用来对数据的外观进行显示。

XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows,MacOS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果[13]。

为了让SGML对用户显示的更加具有亲和力,XML需要定义SGML的一些内部值和参数,去掉一些会能使得SGML在设计网站时非常复杂的功能。

XML保留的结构特征,使设计者可以定义自己的文档类型,XML还推出了一个新的文档类型,使开发人员可以不需要定义文档类型。

但是SGML也出现了我们下面列出的这些奇怪的问题:

1某些起始标签不允许例如HTML中<img>

标签的结束标签。

2某些起始标签可以选择性出现结束标签或者隐含了结束标签。

3某些起始标签要求必须出现结束标签:

例如HTML中<

script>

标签。

4标签可以以任何顺序嵌套:

即使结束标签不按照起始标签的逆序出现也是允许的,例如,Thisisa samplestring是正确的。

这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。

判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。

以这些问题作为出发点,XML逐渐步入我们的视野。

XML去掉了之前令许多开发人员头疼的SGML的随意语法。

在XML中,采用了如下的语法:

1任何的起始标签都必须有一个结束标签。

2可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。

这种语法是在大于符号之前紧跟一个斜线(/),例如<

tag/>

XML解析器会将其翻译成<

tag>

<

/tag>。

3标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如thisisasamplestring。

这好比是将起始和结束标签看作是数学中的左右括号:

在没有关闭所有的内部括号之前,是不能关闭外面的括号的。

4所有的特性都必须有值。

5所有的特性都必须在值的周围加上双引号。

这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。

仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同时也将HTML改进为XHTML。

对于控制解析器的应用程序而言,一次循环是必要的,因为应用程序很容易在嗅探前面几行之后停止读入。

3需求分析

3.1系统需求

系统的全面性:

Android版电子万年历使用对象面对的是大部分Android手机用户群体,因此,系统要满足大部分Android用户的需要。

3.2技术需求

系统技术的先进性:

Android版电子万年历采用现在最火的移动终端系统安卓系统,利用分层设计的原则。

需要开发人员熟悉Android编程和Java编程。

并且对万年历的算法有深刻的理解,并对Android界面绘制有一定的掌握,对Sqlite数据库,WebService技术和Xml解析技术都有一定的了解。

3.3维护需求

系统的易维护性:

本软件是一款客户端手机软件,有新版本的时候服务器端会自动通知客户端更新,在进行系统维护时候,只需要把最新软件放到服务器端,客户端会自动下载,减少了维护的成本和周期。

3.4安全需求

系统的安全性:

本系统由于是一款客户端手机软件,对安全性需求比较低,数据库方面,主要针对本地数据库操作,不涉及和服务器数据交换,故而对数据的安全性要求没那么高。

3.5系统可行性分析

3.5.1经济上的可行性

本软件开发在经济上需求比较低,只需要一台开发用的电脑和模拟器就可以了。

开发周期比较短,经济上需求低。

3.5.2技术上的可行性

本软件主要采用Java语言在Android平台上编写,Java语言具有如下特点:

1.面向对象

Java语言是面向对象设计的程序编程语言,代码继承及重用包括两种不同的风格:

动态风格和静态风格。

它允许在程序运行的过程中装入程序所需要被装入的类。

这些功能是C++语言在进行面向对象程序的设计中无法实现的。

2.平台无关性

Java程序编译会形成一个结构中间的中性文件格式(字节码文件)。

这种中间字节码能够在装有Java运行系统(Java虚拟机)的机器上执行。

这些字节码指令有Java虚拟机来执行,Java虚拟机的解释器在获取字节码后,能够把这字节码转换并执行,而不是通过操作系统来完成这些功能。

所以不管是Windows、Linux还是Solaris或者是其他不同的操作系统,Java程序都能够直接运行,真正完成“WriteOnce,RunAnywhere”的功能。

3.分布式

Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同这归功于Java包含了一个支持HTTP、FTP和SNMP等基于TCP/IP协议的子库。

这将使得屌用Java分布式环境特别是Intent环境提供动态内容将会更简单。

4.稳定、安全

Java的异常处理机制可以检查出错误,出现在许多开发早期。

Java通过自己操纵内存使得内存出错的可能性大大减小。

Java使真数组得到了实现,从而避免了数据被覆盖的可能。

Java提供Null指针检查数组边界,检测异常出口字节代码效验。

所以Java具有强大和稳定的功能特性,大大缩短了应用程序开发周期。

在安全性方面,删除了设置指针和释放内存等C语言的功能,避免了因为非法操作内存而引起的安全问题。

5.多线程

Java的多线程功能允许一个程序可以同时执行多个小任务。

线程是一个比较大的进程中分散出来的独立的小进程,通常被开发人员称为小进程。

因为Java多线程技术在程序中进行实现,所以Java比C语言和C++语言更全面,更适应不同的编程语言平台。

更好的交互性能够对性能进行实时控制是多线程带来的更大的好处。

当然系统本身决定实时性能,单线程在开发难度和性能上都比不上多线程。

任何有过当前浏览器使用经验的人,都会有这么一种感觉:

当他只为了某一副图片而等待很长时间时,会让人感到非常的不舒服。

在Java里。

你可以用一个单线程来调一副图片,这时你可以访问HTML里的其他信息而不必等他[15]。

3.5.3社会条件方面的可行性

1.市面上应用种类非常多,涉及到的领域广,系统设计比较复杂。

2.本款软件界面设计清晰,简单易用,通俗易懂。

3.5.4市场条件方面的可行性

1.简单易用,通俗易懂。

2.程序运行安全。

4Android日历软件的概要设计

4.1功能需求

4.1.1系统业务用例分析

众所周知,用例分析是用例之间的关系,角色和用例描述系统的一个外部需求的方法。

作为UML表示方法中的最重要的期中一种,用例分析法在系统分析中有着非常重要的作用;

所以,正确的使用用例分析方法能够对本文所提到的需求分析、结构设计、程序完成进度安排、测试和验证。

下面综合用户的需要,利用系统用例图进行分析。

图4-1为用户业务用例图

设置时间

    图4-1用户业务用例图

4.1.2系统业务用例分析

1.日期、星期的查看功能:

用户进入软件后,能够查看当前的日期、这是第几周等。

用户还能自己选择任意的日期来查看需要的信息。

2.写日志、提醒功能:

用户可以添加自己的事件,并且能够随时修改时间,修改事件名称,当时间到达那个节点时,会通过铃声和震动提醒用户。

4.2功能模块设计

功能模块图如4-2所示。

图4-2功能模块图

1.主界面设计:

用户点击软件图标,打开软件,当前界面上可以显示当前的日期,并且当前的日期比其他日期的亮度更高,而且能看到农历和公历对照。

用户可以通过点击不同的按钮来切换不同的日期,可以通过点击“今天”这个按钮来返回查看今天的具体日期。

2.用户可以单击手机上的菜单按钮,调出菜单界面,从弹出的菜单界面中选择不同的按钮。

具体菜单包括:

农历、查询、公历、提醒、星座等事件。

3.用户通过点击查询菜单,从而能够进入到查询界面。

在进入查询界面后,用户可以看到选择日期的界面,通过下拉菜单选择不同的日期,可以查看用户选择的当前日期的信息。

4.用户通过点击日历界面,从而能够进入到日历界面。

在日历界面中,用户可以看到不同的按钮,用户通过单击其中一个日期,可以查看日历信息。

5Android日历软件的系统设计

本款软件设计简单操作方便,启动本软件先进入欢迎界面,3s之后进入主程序界面,之后按手机菜单按钮进入功能菜单界面。

本软件架包如下:

1.com.lhl.calendarUI包里面放所有关于UI的界面。

2.com.lhl.utils工具包。

3.com.lhl.year农历阳历装换。

系统架包图如5-1所示。

图5-1 系统架包图

5.1界面设计与实现

界面的绘制包括两个部分,一部分在Main.xml文件中另一部分通过程序代码在程序运行中动态控制。

Main.xml文件里面程序主界面的基本布局,里面有些基本的控件,显示当前日期的TextView和上一年、下一年、上一月、下一月、今天的Button控件。

这些控件是通过.xml写入的是动态的。

另一部分---控制主界面日期的显示的布局,是通过代码动态控制的。

1.Main.xml文件中控制:

基本布局,通过线性布局作为主布局,主布里面通过几个TextView基本控件实现年份阳历显示和农历的显示,通过Button按钮控件实现上一年、下一年、上一月、下一月、今天等事件控制。

并且在主布局里面写入一个线性布局,在代码中可以通过向这个线性布局里面添加控件,来实现控件的动态添加。

2.程序代码中的绘制:

通过代码动态绘制日期的布局,并呈现。

首先通过pu

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2