基于Android平台的日历提醒软件的设计与实现论文.docx
- 文档编号:4247713
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:37
- 大小:431.54KB
基于Android平台的日历提醒软件的设计与实现论文.docx
《基于Android平台的日历提醒软件的设计与实现论文.docx》由会员分享,可在线阅读,更多相关《基于Android平台的日历提醒软件的设计与实现论文.docx(37页珍藏版)》请在冰豆网上搜索。
基于Android平台的日历提醒软件的设计与实现论文
(此文档为word格式,下载后您可任意编辑修改!
)
1引言
随着移动互联网的高速发展,人们已经无法离开移动终端,智能手机也已经越来越普及,对人们的生活产生了巨大的影响,人们可以随时随地使用手机,随时随地来查看信息,随时随地用来上网等,当然也急需青春地了解到自己每天所需要完成的事情,或是需要记录一些容易忘记的重要事件,并能有一个功能完善的软件来帮助人们完成这些事情。
在这样的大背景下,基于安卓平台的日历提醒软件也逐渐进入安卓开发者的视野中。
1.1课题背景
Android是一种基于Linux平台的开放源代码的操作系统,主要使用在移动终端上。
Android操作系统最初由AndyRubin开发,最早的时候主要用在手机平台上。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上[1]。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%[2]。
Android是一种开放源代码的操作系统,随着Android的迅速发展,如今许多开发者运用其他不用的编程语言来编写Android应用程序,如今已经不再是以前那种只允许运用Java语言来开发Android应用程序的单调局面,因此众多开发者更加欢迎Android平台,Android已经成为第一个真正的开放式操作系统。
1.2研究的目的与意义
进入互联网时代之后,随着人们对信息需求量,准确性的加大。
人们对时间,日期的准确性有更大的需求,传统的日历已经不能满足人们的要求,电子万年历应运而生,大大方便了人们对时间日期的掌握,使每个用户都能随时在电脑旁边掌握日期,节日等信息。
但是随着进入21世纪——移动互联网高速发展的时代,人们每时每刻都在使用移动终端,智能机已经被普及,大量进入人们手中,人们不管在何时何地都能利用移动终端来查看各类消息等,当然无论在任何时候,人们需要准确地掌握日期、节日,提醒等重要消息,手机版日历提醒系统就在这样的大背景下被开发出来。
本文提到的日历系统是一款专注于为用户提供时间管理的Android软件,兼备公历、中国农历、各类节日、实时提醒等信息,方便用户每一天的生活。
几乎在每一台Android手机上都有一款相同功能的软件。
Android操作系统作为目前最风靡与社会中的手机操作系统,按照当前Android的市场占有率而言,本款软件非常具有市场应用价值。
1.3国内发展状况
当前,国内的Android开发事业还是以程序应用开发为重点,主要分成3类:
为各个企业开发应用程序、开发通用应用程序以及开发游戏程序。
第一类开发人员一般身处财力较雄厚的大公司,这些公司主要为自己公司品牌或者其他著名品牌设计移动终端的总体方案。
除了根据用户需求对系统进行特定的修改意外,更多的工作是为这些移动终端编写特别定制的应用程序。
第二类开发者,一般处于自主创业型或者是自主开发者,他们的盈利模式主要有2种:
为一些大型公司进行外包服务,或者通过Google平台的移动终端广告,通过其他用户来点击广告从而获得广告点击分成。
而理论上利用付费下载的模式来取得盈利的,目前国内基本没有成功的例子。
1.4研究内容
为了实现基于Android平台的日历提醒软件,本文主要围绕基于Android平台的开发应用程序的整体思路,设计开发、实现功能等流程做了具体的描述,并对农历的日历算法做了简洁明了的描述。
2相关技术介绍
2.1Sqlite技术
2.1.1Sqilte介绍
SQLite,是一款小型的数据库,是遵从ACID的关联式模式的数据库管理系统,它的设计目标是基于嵌入式的小型数据库的,而且目前它已经被运用到很多嵌入式产品中,它占用系统资源非常少,在一些嵌入式设备中,几百KB的内存就能够满足系统的需要。
它支持WindowsLinuxUnix等许多的主流操作系统,同时与很多程序语言能够结合,比如Xml、PHP、C#、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源程序语言界最著名的数据库管理系统来说,它的处理速度比他们快的多[3]。
SQLite第一个Alpha版本于2000年5月诞生.到目前已经12年了,SQLite也发布了一个新的版本SQLite3。
2.1.2Sqlite支持的SQL语句
SQLite虽然相对于其他数据库非常的小,但是支持Sqlite的SQL语句绝对不会比其他开源数据库差劲,它所支持的SQL语句包括:
ATTACHDATABASE、BEGINTRANSACTION、comment、COMMITTRANSACTION、COPY、CREATEINDEX、CREATETABLE、CREATETRIGGER、CREATEVIEW、DELETE、DETACHDATABASE、DROPINDEX、DROPTABLE、DROPTRIGGER、DROPVIEW、ENDTRANSACTION、EXPLAIN、expression、INSERT、ONCONFLICTclause、PRAGMA、REPLACE、ROLLBACKTRANSACTION、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简介
2.2.2WebService技术和规则
1.XML:
描述数据的标准方法。
3.WSDL:
是WebService的描述语言:
用于描述WebService的接口信息等。
4.UDDI(UniversalDescription,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应用程序框架
核心应用程序所使用的API框架可以完全被开发人员所访问。
该应用程序的架构设计简化了组件的重用;任何应用程序都可以发布其功能、发布任何其他块的应用程序,可以利用他们发布的功能块(需要遵循的安全限制的框架)。
同样,用户可以利用应用的程序重用机制更方便的替换程序组件。
Android应用程序背后都隐藏了许多服务其中包括:
视图(Views),可以用来构建应用程序,它包括文本框(textboxes),按钮(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不同,它是DalvikVirtualMachine,这是一种开源的虚拟机技术。
2.3.3系统运行库
(1)程序库
Android包含一些C语言、C++语言库,Android系统中各类不同的组件能够使用这些库。
开发者通过Android应用程序框架来获取一些服务,以下是一些核心库:
系统C库:
专门为基于embeddedlinux的设备定制的从BSD继承来的标准C系统函数库(libc)。
媒体库:
基于PacketVideoOpenCORE;该库支持静态图像文件,同时支持多种常用的音频、视频格式回放和录制。
编码格式包括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中标签的结束标签。
2某些起始标签可以选择性出现结束标签或者隐含了结束标签。
3某些起始标签要求必须出现结束标签:
例如HTML中
copyright@ 2008-2022 冰点文档网站版权所有
经营许可证编号:鄂ICP备2022015515号-1