android记事本设计与实现毕业设计.docx
《android记事本设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《android记事本设计与实现毕业设计.docx(24页珍藏版)》请在冰豆网上搜索。
android记事本设计与实现毕业设计
摘要
手机记事本,是一项新兴且有广阔市场和应用价值的业务,它运行于android智能手机上,通过手机的显示终端与手机内数据库的通讯,提供给客户各种与日程相关的信息服务,方便了用户的日常生活安排。
本论文主要阐述了手机日程表服务系统的需求分析、功能模块的设计、系统流程和界面设计,并对系统实现过程中所用到的关键技术进行了介绍。
本文所实现的日程表是基于Android平台开发的,主要使用人群定位为在校大学生,主要可以对上课的时间地点进行输入,然后在上课之前对用户进行提醒,从而满足了在校大学生对基本日常生活的安排和记录的需求。
关键词:
Android;手机记事本;
ABSTRACT
Mobileschedule,andthereisanemergingmarketandthevalueofbroadbusiness,whichbenefitsreal-timemonitoringalarmtechnology,throughthecopperphone'sdisplayterminalwiththephoneinthedatabaseshallbeavailabletocustomerswithavarietyofrelatedinformationservicesschedulefacilitatetheuser'sdailyroutine.Thispaperdescribestheneedforphoneserviceschedulesystemanalysis,design,systemprocessesandinterfacedesignfunctionmodules,andsystemstoachievethekeytechnologiesusedintheprocesswereintroduced.Inthispaper,thescheduleisimplementedbasedontheAndroidplatform,themainuseofthecrowdstandingforcollegestudents,themainplaceofclasstimecanbeentered,andthenbeforetheclasstoremindtheusertomeetthebasicdailycollegestudentslivingarrangementsandrecordingneeds.
Keywords:
Android;schedule
1引言
1.1手机记事本的产生
随着android手机售量的大量提升,android应用也变得十分火热。
在庞大的用户群体中,人们已经习惯了把需要处理的事物记录在手机上。
虽然用户群体庞大,但是个人的业务需求也不完全相同,即使大的厂商对android的日历进行了修改,但并不能满足部分用户的特殊需求。
这时能够针对某一或者某些用户群体的定制记事本就十分的必要,这次所开发的记事本主要针对的用户群体是在校大学生。
由于手机又存在着诸多的特性,所以与纸质的记事本相比,手机记事本存在着诸多的优点和特性。
手机记事本的优点:
◆移动性和便携性,手机用户可以自由的移动。
◆可重复擦写,多次使用
◆具有一定的隐私性。
◆可实时提醒,这一点在事务越多的时候越是能体现出优势。
1.2手机记事本的发展现状
随着计算机和手机的飞速发展,通过电子设备来完成更多的事情将是一种趋势。
在效率越来越被重视的当今社会,及时妥善的的处理事务的前提就是准确地记录事务。
使用记事本的意义不仅仅是及时处理事务,也是对各种事务有着认真负责的态度的体现。
手机记事本的便捷性是有目共睹的。
随着业务的扩展,其作用、形式、工作方式必然也会有极大地改变和发展,所以记事本的发展现状也是十分值得我们去关注的。
下面就简要阐述一下记事本的发展现状:
◆个性化
随着社会的发展,不同人群对记事本的需求必然不会相同,不同需求的人群都希望从记事本服务中得到的不仅仅是方便,还有效率和效益。
学生可能希望把课程表记录在手机上,白领可能希望把领导交代的事务处理好,女生需要记录经期,而个性化的记事本可能就是一个十分方便的解决方案,人们可以下载部分或全部的功能,既能满足自己的需求,又能避免了手机存储空间的浪费。
◆保密化
手机记事本作为一项提高效率的应用,对人们生活的影响是积极的。
一方面,它可以提高人们的效率。
另一方面,记事本本身的效率也是应该值得重视的,例如大学生的课程表并不是相同的,如果单纯的用人工录入的话也是一件十分耗费体力和时间的事情,这时校园网的课程表如果能提供标准化的统一接口,我们的应用就能变得十分的方便快捷,只需要简单的几步就能把校园网的课程表同步到手机应用。
再比如公司如果统一布置任务,只需要在会议结束后对通过各种通信方式把任务布置给各个职员,甚至是使用NFC技术,只需要手机轻轻一碰就能达到目的,这时统一的标准化的接口就变得十分的重要。
◆保密化
手机作为随身携带的便携设备,存在着巨大的丢失的风险,记录着诸多信息的手机一旦丢失,损失将是巨大的,如果落在有心的人手中,必然会有带来不必要的损失。
所以对于信息的保密必然是十分重要的。
但在保密的同时又保证用户的使用的便捷也是一个难题。
◆云端化
云端化是将来计算机和手机领域的大热门,云端化有着诸多的优点,但是又有其局限性,云端化的首要条件是网络接入速度的大幅度提升,并且能够满足人们对于数据同步的需求。
云端化同样也是保密的一种解决方法,又是能够暴露统一的接口的一种解决方案,所以云端化必然是将来的重要的趋势,即使我们换了手机,换了电脑,还是能够获取到自己既定的事务或者是其他数据。
2Android及相关技术简介
Android是Google于2007年11月推出的一款全新的智能手机平台,由操作系统、中间件、用户界面和应用程序组成。
由于Android平台的诸多优点和特性,使其在短短的几年中飞速的发展。
随着用户群体的增加,使得Android应用开发也成了学习的热门。
2.1Android简介
1)Android平台优点
Android一词的本义指“机器人”,同时也是一款布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。
作为一款手机操作系统,其有着如下的诸多优点:
◆平台的开放性允许任何厂商加入,使其拥有更多的开发者,新的应用还有创意可以不断的出现。
◆摆脱了运营商的束缚,让手机更加贴近互联网。
Android应用程序都是基于Java开发的,Java具有一次编写、到处运行的跨平台性。
实现了能够在所有的Android设备中运行,真正做到了硬件无关性,降低了开发者的负担。
◆提供了标准的API和SDK开发包,手机厂商可以根据需要自行开发或者使用已有的程序,从而打造出富有特色的Android平台。
2)Android平台的特征
应用框架:
用于开发可重用、可替代的组件。
Linuxkernel:
Android是运行于Linuxkernel之上,但并不是GNU/Linux。
因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以Bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。
Android为了达到商业应用,必须移除被GNUGPL授权证所约束的部份,例如Android将驱动程序移到Userspace,使得Linuxdriver与Linuxkernel彻底分开。
Bionic/Libc/Kernel/并非标准的Kernelheaderfiles。
Android的Kernelheader是利用工具由LinuxKernelheader所产生的,这样做是为了保留常数、数据结构与宏。
优化的图形:
Android提供了优化过的图形系统,该系统由一个自定义的2D图形库和一个遵循OpenGLES1.0标准(硬件加速)的3D图形库组成。
SQLite数据库:
SQLite数据库是Android自带的一个标准的数据库,支持SQL语句,是一个轻量级的嵌入式数据库。
媒体功能:
支持各种通用的音视频和静态图像格式。
硬件支持功能:
支持相机、GPS、导航和感应加速器等各类硬件。
强大的开发环境:
包括设备模拟器,调试工具,内存和性能检测工具,以及EclipseIDE的开发插件。
3)Android平台的体系架构
Android不仅是一个操作系统,更是一个开源的体系架构。
Android软件平台从上到下主要由五个部分构成:
应用程序、应用程序框架、程序库、Android运行库以及Linux内核。
◆应用程序(Application)
Android的应用程序通常涉及用户界面和用户交互。
Android本身提供了桌面(Home)、联系人(Contact)、电话(Phone)和浏览器(Browsers)等众多的核心应用。
做为分层结构的最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。
不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
同时开发者可以使用应用程序框架层的API实现自己的程序,这也是Android开源优势的体现。
◆应用程序框架(ApplicationFramework)
Android应用程序的开发基于程序框架和组件,开发人员拥有同核心应用程序一样的API访问权限。
应用程序后面是一系列的服务和系统,其中包括:
视图(Views)一构造应用程序的视图部分,包括列表(Lists)、文本框
(Textboxes)、按钮(Buttons)等。
内容提供器(ContentProviders):
提供一种实现数据互访和共享的机制。
资源管理器(ResourcesManager):
负责管理非代码的访问,如本地字符串、图片资源及涉及布局的XML文件。
通知管理器(NotificationManager):
用于将提示信息显示在状态栏上。
例如,当有短信的时候,在状态栏上显示有新信息。
活动管理器(ActivityManager):
用于管理应用程序的生命周期,并提供应用页面退出的机制。
通过这套应用框架,各种服务和组件可以被用户的应用重复利用。
4)Android应用程序构成
对于一个Android应用程序来说,一般由以下四种组件构造而成:
◆Activity
Activity是最基本的Android应用程序组件。
在应用程序中,一个Activity通常就是一个单独的屏幕。
每一个Activity都被实现为一个独立的类,并继承基类Activty。
◆BroadcastIntentReceiver
当需要对一个外部事件(如当电话呼入)做出响应时,可以使用目的接收器(IntentReceiveO。
目的接收器并不显示IJI界面,当外部事件发生时,使用NotificationManager通知用户。
◆Service
Service是具有长生命周期且没有用户界面的一段程序,它需要通过某一个ActMty或者Context对象来调用。
Service的生命周期方法比Activity少一些,只有onCreate、onStart和onDestory。
有两种方式用来启动Service,它们的不同之处在于对Service生命周期的影响不一样。
◆ContentProvider
一个应用程序可以将它的数据保存到文件、SQL数据库,甚至是任何有效的存储设备中。
当需要将应用数据与其它的应用共享时,使用ContentProvider来完成。
ContentProvider类实现了一组标准的方法,从而能够让其它的应用保存或读取此ContentProvider处理的各种数据类型。
5)Android应用程序的开发环境
Android通常采用Eclipse作为应用程序的开发环境。
Eclipse是基于Java的,开放源代码的可扩展开发平台。
就其本身而言,它只是一个框架和一个服务,所有开发工具都是用插件的形式提供的,通过插件组件构建开发环境,这种设计使得Eclipse具有开放式可扩充的结构。
Eclipse软件可以集成不同的软件工具开发供应商的产品,任何开发工具厂商都可以将他们的开发工具或组件加入到Eclipse平台,用户可以通过相同的接口使用不同的工具。
此外,Eclipse不仅支持团队协同开发,还提供了详细的帮助文档以及对许多外部工具的支持。
Android为Eclipse定制了一个插件,即AndroidDevelopmentTools(ADT),目的是为用户提供一个强大的综合环境用于开发Android应用程序。
ADT扩展了Eclipse的功能,可以让用户快速地建立Android项目,创建应用程序界面,在基于Android框架API的基础上添加组件,以及用SDK工具调试应用程序。
6)android内置数据库简介
Android内置数据库是SQLite,SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
SQLite第一个Alpha版本诞生于2000年5月。
至今已经有14个年头,SQLite也迎来了一个版本SQLite3已经发布。
正是由于SQLite的诸多特性,所以他更适用于移动平台
2.2相关编程语言
Android主要用到的编程语言有两个,一个是xml用于页面设计,一个是java用于功能实现。
下面对两种语言做简要介绍
2.2.1xml简介
xml即可扩展标记语言。
可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。
它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
XML能够更精确地声明内容,方便跨越多种平台的更有意义的搜索结果。
它提供了一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码、数据和表示分离,并作为数据交换的标准格式,因此它常被称为智能数据文档。
为了使得标准通用标记语言显得用户友好,它重新定义了标准通用标记语言的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得标准通用标记语言在设计网站时显得复杂化。
它保留了标准通用标记语言的结构化功能,这样就使得网站设计者可以定义自己的文档类型,它同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows,MacOS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。
2.2.2java简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE,JavaME,JavaSE)的总称。
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
java主要特性:
◆Java语言是强制面向对象的。
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。
总之,Java语言是一个纯的面向对象程序设计语言。
◆Java语言是健壮的。
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
◆Java语言是可移植的。
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。
Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。
◆Java语言是原生支持多线程的。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:
其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。
线程的活动由一组方法来控制。
Java语言支持多个线程的同时执行,并提供多线程之间的同步机制。
3需求设计
在系统需求分析阶段,搞清楚软件“做什么”的问题,形成目标系统的逻辑模型。
然后所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型。
即从做什么到怎么做的过程。
本章主要阐述了手机记事本的需求分析、功能模块的设计、系统流程和界面设计,并对系统实现过程中所用到的关键方法进行了介绍。
3.1系统需求分析
3.1.1功能分析
android手机记事本的使用人群定位为在校大学生,对于在校大学生而言最主要的还是上课。
并且与其他事务相比较而言,上课也是大学生的重中之重,所以记事本的的主要功能是以图形、文字的形式为用户提供以课程为中心的服务,并提供友好、方便、快捷的操作界面。
其功能需求主要包括:
◆事件录入:
用户可以通过点击按钮方便快捷地录入信息。
◆事件查看:
事件是以最直观最主要的信息显示给用户的,如果需要查看详细的信息内容用户可以点击每个事件,进行详细信息的查看。
◆事件修改:
对于已经录入的信息进行修改。
◆设置信息提醒:
每条信息可以单独地设置提醒方式。
3.1.2性能分析
记事本的最重要功能就是对各种事务的记录,在性能上也就必须保证应用程序在任何时刻都能够精确处理数据如保持数据的原子性、持久性和一致性等。
又由本应用程序是为android平台开发的,且android手机的硬件特性,和性能良莠不齐。
所以应用程序又要有更好的硬件兼容性,例如在3.5英寸屏幕上和在5.0英寸屏幕上要有一致的效果。
4系统设计
4.1系统设计目标
结合需求分析和android平台特点,系统设计的目标也就不难得出了
我们需要采用java和xml语言实现一个运行于android平台的记事本程序。
因为android平台之下有着数不胜数的各种机型,所以首先在性能上,我们的程序要能在多种屏幕大小的不同款式的手机上正常运行,且运行效果一致。
另外还需要保证系统在数据处理方面的各种能力和性能,即保证数据的原子性、持久性和一致性。
在功能上,数据库满足功能分析中的增、删、改、查四条即可。
4.2系统功能模块设计
本系统旨在建立Android手机的记事本服务,主要有如下几个核心功能各个模块的主要功能描述如下:
◆常用课程模块
主要是周一至周五每天的课程的录入,课程的方式是以河北农业大学的课程安排方式进行的,每天上午,下午,晚上各两节大课,没接大课分为两节小课,课程录入模块是以图表的形式呈现给用户的,用户可以通过点击每个时间段对应的按钮来添加课程,这种最简单直观的形式容易让用户使用。
◆不常用课程模块
对于不常用课程来说就是周六日的课程,在课程安排当中,这一部分是不经常用到的,又由于手持设备屏幕大小的限制,所以把这一模块拿出来单独设计。
这一部分的课程是以列表的形式出现的,由于其用处最少,所以并不需要对复杂的时间进行可视化。
◆计划模块
同样地计划模块也是以列表形式出现的。
计划模块并不针对某一天或者某几天,设置计划模块的意义在于,对于课程之外的事务进行安排,这样的安排是比较合理的,也符合我把学习和其他事务分开的设计初衷。
因为学生主要的任务是学习,随然计划也是重点之一,但是最主要的内容还是课程模块当中的。
◆数据库模块
数据库模块是所有业务逻辑的核心,数据库是所有事务存储的场所。
这一部分主要是所有的数据库业务,包括数据库的读写,查询,修改等雨雾逻辑。
数据库模块作为整个核心,是所有业务逻辑的重中之重。
4.3用户界面设计
在Android平台下开发应用软件,最重要的是布局问题。
本系统设计了多个主要界面来实现与用户的交互。
并且界面的设计尽可能的符合手持设备的单手操作原则。
页面的流程图如图4-1所示
◆起始界面
主界面是用户首先看到的界面,此界面主要有一句英语文本,还有就是两个按钮,这两个按钮上的文字,已经能够提示用户其功能,十分简单易用。
◆日程信息主界面
整个日程信息界面又无缝地分成三个独立的页面,可以通过手指的滑动来改变需要显示的页面。
这个界面主要是实现了手指滑动左右翻页的功能,这样做能最大的符合人们日常操作手机的习惯,也是解决手持设备单手操作的最好方式之一。
子页面并没有单独存在,而是动态地嵌入在主页面之中,第二个和第三个主页面类似于清单条目,由于这种信息可能会存储很多,所以我们给他加上了滚动条,通过单指的上下滑动来实现翻页功能,在这里这样做也是尽最大努力获得做好的用户体验,
◆事务详情界面
这个界面是日程的详细信息,详细信息包括多个条目。
这里在显示上我遇到一个矛盾的地方:
一个是我们的阅读习惯是从上往下,所以重要的信息应该在上面,但是为了便于查看和修改这几个主要信息条目,我们应该把它安排在最下面,这里出于阅读体验的考虑,牺牲了操作体验。
4.4数据库设计
数据库设计是项目开发中非常重要的一个关键环节,如果设计不好,在后来的系统变更和功能扩充时,将会遇到非常大的困难。
用户的需求具体体现在各种信息的记录、删除、更新和查询。
这就要求数据库能够满足各种信息的输入和输出。
根据需求分析,需要将用户录入的日程及课程信息存储到到数据库中,便于用户以后查看。
相应数据表主要有两个如表4-1。
两个不同功能的表分别存储了不同的表内容,具体内容分别展示
5系统的实现
结合系统设计最后对整个系统进行实现,这一阶段的目的就是通过代码实现系统设计中的所有的设计。
5.1主要界面实现
Android平台中,Android四大基本组件分别是Activity,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器。
要实现程序的可视,Activity是必不可少的,实现Activity首先要对其有一定的了解。
Activity生命周期如图所示。