资源描述
毕业设计论文学生姓名: _ 学 号: _所在学院: _软件学院 专 业: 软件工程 _ 设计题目: 基于Android预订酒店 软件的与实现 指导教师: _ 2014年 05 月 毕业设计(论文)任务书第1页毕业设计(论文)题目:基于Android预定酒店软件的设计与实现毕业设计(论文)要求及原始数据(资料):1 综述国内外移动互联3G技术研究现状;了解近来几年Android系统的发展,2 了解Android的发展背景;展望其发展前景,3. 了解手机操作系统的发展现状,4. 了解Android开发,Java,SQL等相关技术;搭建开发环境的过程,技术及其技巧5熟练掌握虚拟机SDK的应用与分析,训练编写功能性程序的能力;开发Android的酒店界面及其操作系统,6深入分析Java开发Android程序的关键技术与编写语言;7训练检索文献资料和利用文献资料的能力;8训练撰写技术文档与学位论文的能力。第2页毕业设计(论文)主要内容: (1)了解Android应用程序的设计和开发过程,搭建Android开发环境,(2)使用多种组件进行Android 平台3G手机酒店查询系统 (3)熟悉Eclipse上Android手机虚拟机 SDK 开发 (4)设计手机端对酒店查询的方式,具体操作办法:首先有注册界面用于客户的注册,其次添加用户,添加用户之后用户就可以预览,预定房间,设置开始时间,结束时间,有需要也可退订房间 (5)深入了解JavaWeb服务器端,实现对酒店的管理,酒店的详细信息 (6)设计手机端App Widget应用程序,实现手机对酒店的查询功能(构思) (7)设计并实现手机通过互联网进行数据的更新(构思) (8)阐述国内3G网络的目前状况, (9)展望HTML5,4G时代给中国带来的机遇与竞争学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页主要参考文献(资料):1靳岩, 姚尚朗. Google Android 开发入门与实战M. 北京: 人民邮电出版社, 2009: 1-122景保玉. 2010中国移动应用开发现状与趋势大调查M. 北京: 人民邮电出版社, 2011: 2-193(英)Herbert Schildt.Java 参考大全M. 北京: 清华大学出版社, 2008: 9-114(美)鲍格斯坦(Bergsten,H.) 著, 林琪, 朱涛江 译.JSP设计(第三版)M. 北京: 中国电力出版社, 2004: 12-285高昂. 支持动态语言的Android平台M. 北京: 人民邮电出版社, 2009: 5-7 6郭志宏. Android应用开发详解M. 北京: 电子工业出版社, 2010: 6-217韩超, 梁泉. Android 系统开发原理及开发要点详解M. 北京: 电子工业出版社, 2010: 1-118李宁. Android/OPhone 开发完全讲义M/CD. 北京: 水利水电出版社, 2010: 6-199余志龙. Google Android SDK 开发范例大全(第2版)M. 北京: 人民邮电出版社, 2010: 6-610公磊, 周聪. Android的移动应用终端应用程序开发与研究J. 南昌: 计算机与现代化, 2008: 8: 85-8911高焕堂. Android应用框架原理与程式设计36技M. Google公司, 2008: 2-2212 (英)梅尔. Android 2高级编程(第2版)M. 北京: 清华大学出版社, 2010: 12-1213Dautenhahn.Kerstin.Methodology and themes of human-robot interaction: A growing research fieldJ. Apress:International Journal of Advanced Robotic Systems, 2007: 103-10814 Mehran Sahami. Programming MethodologyM. Apress:the Experts Voice, 2008: 4-12 15 Julie Zelenski. Programming AbstractionsM. Apress: the Experts Voice, 2010: 3-1616Haseman Chris.Android EssentialsM. Apress: the Experts Voice, 2009: 8-2217DiMarzia Jerome.A Programmers GuideM. McGraw-Hill: the Experts Voice, 2008: 4-1118王向辉, 张国印, 沈洁. Android应用程序开发M. 北京: 清华大学出版社, 2010: 3-319张孝祥. java就业培训教程M. 北京: 清华大学出版社, 2007: 7-2220E2ECloud工作室. 深入浅出Google Android M. 北京: 人民邮电出版社, 2009: 8-11 专业班级软件班学生要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17 日教研室主任审查签字日期2014年 月 日系主任批准签字日期2014年 月 日 基于Android的酒店预订软件的设计与实现 摘要 目前Android手机应用越来越广泛,本系统预实现可以在Android手机上的酒店预订功能,以达到方便用户的目的。本系统涵盖两方面功能:Android手机客户端应用和Web服务器端酒店管理系统。Web服务器端实现酒店的预定管理,包括管理员管理、资源管理、订单管理等等。Android客户端应用包括用户信息、首页、预订信息等功能。经过分析运用Eclipse、Mysql等开发工具在较短时间内建立了系统的应用雏形,接着再对雏形系统进行需求分析,以及不断补充和完善系统个方面的功能, 不断的修正和改进系统的各功能模块,最终形成当前的可行系统。关键词:Android;酒店预订; Java MySQL Eclipse Design and Implementation of Android-based hotel reservation software AbstractAndroid phones are currently more widely, the system pre-implemented on Android phones hotel reservation capabilities to achieve the purpose of convenience customers to stay out of the design.The system covers two functions :Web server can side implementation to hotel management, including the administrator management, resource management, order management, etc. The Android client application including user information, the home page, reservation information, etc.After analysis using Eclipse, Mysql and other development tools build system application prototype in a short time, then again on the prototype system needs analysis, and constantly supplement and perfect the system in terms of function, and constantly revised and improved system of each function module, eventually forming the feasible system.Key words: Android; hotel reservation; Java MySQL Eclipse II 目 录摘要IAbstractII第一章 绪论11.1研究背景11.2研究现状11.3主要工作31.4本文结构3第二章 Android技术与理论52.1 Android系统开发简介52.1.1 Android技术简介52.1.2 关键应用程序72.1.3 应用程序框架72.1.4 函数库72.1.5 Linux内核82.2 Android应用的构成和工作机制82.2.1 Activity82.2.2 Intent Receiver92.2.3 Service92.2.4 Content Provider92.3 开发软件及安装102.31Java运行环境102.3.2 Eclipse 编程软件112.3.3 MySQL 5.0数据库和Navicat for MySQL132.3.4 Web 应用服务器:Tomcat 6.0.14142.4 课题研究的方法15第三章 需求分析163.1功能需求分析163.2性能需求分析173.3数据库需求分析173.4安全需求17第四章 功能设计184.1总体设计184.2系统功能设计184.3 数据库设计194.3.1 E-R图194.3.2 相关表设计214.3.3 Web服务器端设计23第五章 酒店住房管理实现245.1 Android开发平台搭建245.2具体功能实现245.2.1界面布局245.2.2新客登记275.2.3房间选择305.2.4房间预订305.2.5房间退订32第六章 系统测试33致谢40参考文献41外文翻译42 第一章 绪论1.1研究背景随着时代的发展,人们对于信息的获取有着强烈的需求。智能手机作为一种非常重要的通讯工具,功能越来越强大,智能手机凭借其可以随时随地地获取和处理信息的优势,逐渐成为人们获取信息的一种重要手段,所以研究Android平台应用软件的开发很有必要,并且以Android录音软件的设计和实现更能在某些方面上满足现代人的一些需求。发展状况:Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。智能手机(Smartphone),是指“像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称”。目前,全球多数手机厂商都有智能手机产品,而芬兰诺基亚、美国苹果、加拿大RIM(黑莓)、美国摩托罗拉、中国台湾宏达(htc)都是智能机中的佼佼者1。智能手机具有五大特点:1具备了无线接入互联网的能力,即要有GSM的支持网络下的GPRS或者是CDMA网络支持下的CDMA 1X或3G网络。2人性化,可以根据个人需要扩展机器的功能。3它是具有开放性的操作系统,还可以安装非常多的应用程序,使得智能手机的功能可以得到无限的扩展。4具有PDA功能,其中包括个人信息管理、日程记事、任务安排、多媒体应用、浏览网页等。5扩展性能强,第三方软件支持多2。Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%3。在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具4。在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。一个系统记录下人与人之间的多样联系方式手机通讯系统。目前国内的酒店住房管理应用服务商分为三类,第一类如幸会、名片全能王、QR扫描等等,这些产品主要是为了解决名片交换时候输入难度较高的问题。而这也就致使了这部分厂家缺少了一个服务商最看重的东西:对用户没有持续的运营能力;第二类如火种、QQ酒店住房管理、友录、手机自带的酒店住房管理同步服务等等,这部分的市场主要提供了号码备份服务,帮助用户解决手机号码记录联系人的问题。第三类就是针对与酒店住房管理之上提供的拓展应用服务提供商,比如:米聊和微信,你可以通过上面去发短信,实现多种通信能力的聚合5。1.2研究现状生活在信息高速发展的今天,智能手机的普及己经是不可改变的趋势。而作为手机各个功能中最为基本的酒店住房管理也成为人们生活中必不可少的一部分了9。在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。通过基于Android平台下的酒店预订软件记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统电话簿,名片的累赘。另外,不同于微博,社交网站,基于Android平台下的酒店预订软件是完全属于用户的,而不隶属于某个特定公司或是服务,只要获得用户的认可,即使不是大公司也可以借此迅速建立起一个巨大的关系网络10。Frost & Sullivan的王煜全也曾多次强调过基于Android平台下的酒店预订软件是一块颠覆性创新的金矿,是创业者们创新的绝佳平台。从长远利益来看,可是意义重大的环保便民之举。根据市场需求,基于Android平台下的酒店预订软件管理系统所记录的信息一般分为个人、商业、办公三类。清晰了机主的联系方向。针对性的分门别类,使系统具有了方便了机主的存储和快速查阅优势功能,大大减少了在电话簿,名片上机械翻阅查找过程的时间。于此同时又根据手机随身携带的特殊性,在一定程度上比一般的制作文件方便亲民。又其次,因为手机是随身携带的通讯工具,这与记事本相比将在一定程度上保障了联系人信息的安全性,相对避免了个人隐私信息外泄从而带来的损失11。 综上所述,基于Android平台下的酒店预订软件管理系统是一个高效、实时、绿色环保的管理系统。然而现在很多酒店住房管理一味追求外观花哨,功能繁杂,对于大多数用户,许多功能用不上,形同虚设。针对以上各种弊端,开发了此种酒店住房管理,将各种性能优化,继承酒店住房管理的常用功能,满足一般用户存储,查找,删除,查看的需求,此外还支持发信息,打电话,发邮件,备份SD卡等功能12。国内外的发展状况:随着各种各样的服务行业的不断发展,酒店和服务行业,如信息的数量和增加工作量,这使得传统的人工管理方式很难满足需求的现代酒店管理的需要。酒店系统是每个大型酒店必须有一个服务系统,客户可以通过这个系统来提前预订房间。只有通过电话预订酒店之前,或去酒店实现,但是这种方式将花费大量的人力和物力。通过这个系统,用户可以通过在一个方式,是移动互联网预订酒店,其特点如下。数据维护效率大大提高,容易保持,如果丢失或错误很容易修复。系统数据存储在数据库的主机酒店,会使备份数据定期一直保持不变。 方便查询,节省劳动力。用户可以通过手机直接的你想要的酒店预订存入数据库,服务器端酒店只需要一些管理人员处理订单。用户和管理员可以方便地查询酒店预订情况的资源,从而减少劳动成本。 酒店资源信息管理。管理员可以轻松地在网络资源信息管理酒店,不需要花太多精力,大大减少了酒店管理人员的工作压力。用户可以通过电话预订酒店房间或会议室,随时随地,方便快捷,高效。手机平台的发展过程中Android只是其中一个最近才成为主流的平台,其历史潮流中方便还有如下平台:Palm OS是一套专门为掌上电脑编写的操作系统,是一种轻量级、比较开放的操作系统,占用的内存非常小,允许用户在其基础上编写和修改相关软件,是支持的应用程序更加丰富多彩。Plam OS在其它方面也还存在一些不足,如Plam操作系统本身不具备录音、MP3播放功能等,但是可以通过加入第三方软件或硬件设备来实现。其代表性的产品有Palm m505、Palm m500、Palm III等。Symbian是一个实时性、多任务的纯32位操作系统,具有功耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持GPRS、蓝牙、SyncML以及3G技术。Windows mobile系列操作系统是从微软计算机的Windows操作系统上变化而来的。Windows mobile系列操作系统功能强大,而且支持该操作系统的智能手机大多数都采用了英特尔嵌入式处理器,主频比较高,在其它硬件设置(如内存、储存卡容量等)上也采用其他操作系统的智能手机要高出许多,因此性能比较强劲,速度比较快。Windows mobile系列操作系统包括SmartPhone以及Pocket PC Phone两种平台。Pocket PC Phone主要用于掌上电脑型的智能手机,而SmartPhone则主要为手上智能手机提供操作系统。Linux系统是一个源代码开放的操作系统。由于其开源性,手机制造商可以根据实际情况开放自己的Linux手机操作系统,从而也能够吸引更多的软件制造商在其上开发更多的应用软件,丰富第三方的应用。但是Linux操作系统也还存在一些不足,集成开放环境和基于Linux的产品与PC的连接性比较差等。存在的问题:对酒店的位置搜索等定位功能没有很好的设计,对于同一个网络里的用户设备,可以与数据库连接,后台管理端的网络可与用户端建立连接。容易出现信息泄漏,大量的用户信息需要相当可靠的安全机制,要让用户放心。对于数据库的管理,需要稍微大的内存,以便能长期保留信息。该系统还只是处于初步阶段,并没有广泛推广,因此会有许多的不尽美的地方,程序可能太过死板,灵活性不高,加上安卓版本2.1稍微偏低了些,但是其基本的功能要求还是可以实现的,正如可以有管理员与客户同时管理自己的信息等等。其它问题还有例如:怎样才能搭建出一个功能与实际生活接洽的使用性系统平台;怎样才能实现数据库和相应数表的建立;怎样才能用JDBC实现数据库与java程序之间的嵌接;怎样才能让用户同过界面性的东西对相关数据库进行操作;怎样才能实现超级管理员的权限设置等等。1.3主要工作在此背景下,开发的基于Android 平台下的酒店预订软件具有十分重要的意义。可以根据客户需求的实际情况,开发一款实用的基于Android平台下的酒店预订软件软件。本设计主要是采用Android的View框架编写,部分框架运用Android中的其他组件。 当进入酒店住房管理的增加界面时,调用的是一个用相对布局RelativeLayout的XML布局文件。其中包括了2个Button,分别实现了不同的功能。第一个Button是保存内容,响应menu键的触发事件,设置底部菜单是否可见,并通过对底部菜单选项的监听实现底部菜单中的增加、查找、删除、菜单、退出等功能,其中菜单包括显示所有、删除所有。1.4本文结构本文首先给出了系统的研究背景,对当前基于Android平台下的酒店预订软件的发展现状做了简单的介绍。进而详细的分析了Android的特征、架构以及Android应用的构成和工作机制。本文详细的提出了软件的架构,以及酒店住房管理的设计方案;采用Java开源的JAR包对HTML文件进行分析和获取图片和文字信息;对各个界面的布局和实现方式进行详细说明;对数据库设计模块进行了详尽的需求分析,经分析得到数据库设计模块,它主要完成用户对已经获取的内容的存储,删除和查询等操作;运用Android提供的各种组件设计和实现很好的UI效果,实现很好的用户体验;详细介绍了该软件的性能优化。 本文首先在第二章就开始讲述Android技术与理论,通过阐述Andriod开发简介与应用机构,工作机制来展示本次项目设计所需要的技术方面的知识,同时还列举了开发常用的软件及其安装等。开发简介主要说明的是Android关键应用程序和程序框架,函数库以及 Linux内核。Android应用的构成和工作机制主要简述Adroid四大基础 Activity ,Intent Receiver ,Service, Content Provider。结合本次毕业设计,列举了开发所需要的几个软件:JAVA JDK ,eclipse MySQL及其插件Navicat for MySQL,相关服务器 tomcat。 在本章节的最后,阐述了本次课题的研究方法。第三章开始本次项目的具体开发事项:需求分析,通过对功能,性能,数据库,安全四个方面的需求进行详细的分析做出决定,明确系统所需实现的功能,性能的要求,数据库的选定,以及安全方面的硬性指标。在第四章,本文开始详细说明本系统的功能设计,首先有一个总体的设计,在第二节开始描述系统所需功能的设计,最后围绕系统功能展开数据库的相应设计。本为第五章,向读者酒店住房管理如何实现,首先搭建Android开发平台,即系统的运行环境。其次,向读者展示:界面布局,新客登记,房间选择,房间预订,房间退订五个具体功能的实现。项目完成之后必须进行相应的测试,保证项目的需求的完善,功能的正确性与可用性,在第六章节即为系统测试。到此本文的大体内容即向读者展示完毕。 第二章 Android技术与理论2.1 Android系统开发简介2.1.1 Android技术简介Android一词的本义指“机器人”同时也是Google。于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分,不存在任何以往阻碍移动产业创新的专有权障碍。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统13。对于设备制造商来说,Android是一个免费的平台。对硬体开发厂商来说,Android是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,Android是个先进的平台。平台上的应用程式可相容于各种型号的Android 手机,免去为各种不同手机机型开发的困扰。Android平台支援各种先进的网络、绘图、3D 处理能力,可以用来提供更好的使用者体验。Android它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统14。Android软件平台主要由五部分构成,它们分别是:关键应用程序、应用程序框架和组件、C /C +函数库、Java程序运行环境、优化了的Linux内核15。关键应用程序:Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的Android应用程序还有待于广大开发者共同参与开发。应用程序框架及组件:Android 应用程序开发基于框架和组件。Android本身已在其框架中提供了许多组件供应用程序调用,开发者也可在开发应用程序时顺带开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用。C/C+函数库:Android应用程序框架之下是一套C/C +函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括: 标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库等16。Java程序运行环境:Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。Linux内核:Android系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层17。 Android应用程序以各种组件(API)为基础,API是Android软件平台的重要组成部分,也是开发Android应用的关键所在。当前活动程序Activity:作为最常用的应用程序组件,几乎所有Activity都会通过创建U I窗口与用户进行交流。Activity具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop ()、onDestory()等方法来实现。要开启新的activity,可以调用startActivity(Intent),或调用startSubActivity(Intent, int),后者通常和onActivityResult(int,int, String,Bundle)联合使用,以从一个activity获取某结果并返回给打开它的activity18。图像显示View: View是最基本的UI构件,它在屏幕中占据一个矩形区域可用来显示文本、图像等内容,还可完成图像事件处理。常用的View方法有:inflate()(由XML 文件生成View)、onDraw (Canvas)(对View进行填充) 、onMeasure (int, int)(测量View的高度和宽度) 、onLayout() (完成View的布局) 、onKeyDown(int, KeyEvent)(View中有按键操作时被调用) 、onFocusChanged (boolean, int)(当View得到或失去关注时被调用)、setOnClilckListener()(设置View点击事件监听器)。View也包含一些子类,如: TextView(布局文件中的文本显示)、EditText(布局文件中的文本编辑)、Button(按钮)、ListView(显示列表) 19。事件Intent: Intent抽象描述了想要执行的某种操作,它与startActivity一起使用可以开启新的activity,与startService 一起使用可以开启后台服务。Intent最重要的作用还是加载activity,它是不同activity间的桥梁。Intent也可以被认为是一种概括操作行为的数据结构,它主要包括action (动作)和data(数据)两部分,此外它还具有一些附加属性如category(intent种类)、type (数据类型)等。常用的Intent方法有intent() (构造intent)、addcategory() (添加intent类型)、getAction()(获取intent动作)、getData()(获取intent数据)等。数据存取与共享机制ContentProvider: ContentProvider为应用程序提供一些访问方法,包括: Query(Uri, String , String,String , String, String, String)(数据信息的查询) ,insert (Uri, Contentvalues) (在Contentp rovider中添加新数据) , updata(Uri, Contentvalues, String, String )(更新Conntp rovider中的数据), delect(Uri, String,String )(删除数据) , Gettype (Uri)(获取数据类型)。其中,Uri标明了ContentProvider存储的数据类型,在执行访问方法时都需依据Uri作为路径标识来确定要访问哪个ContentProvider20。后台服务Service: Service是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用Context. StartService()开启一项后台服务,还可以通过Context. bindService()与后台服务通信。Android的架构是Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,如图2-1。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在Dalvik VM上运行的。图2-1 Android架构图2.1.2 关键应用程序Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序,所用开发语言是Java。2.1.3 应用程序框架Android应用程序的开发基于框架和组件。Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。2.1.4 函数库Android应用程序框架之下是一套C/C+函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小内存依赖的格式。Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,和内存管理机制等。2.1.5 Linux内核Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。2.2 Android应用的构成和工作机制对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfestxml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。2.2.1 ActivityActivity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈顶,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。从图2-2可以看出,Activity有三个关键的循环:(1)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。(2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。(3)活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。这段时间内活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换。Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定component属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。图2-2 Activity状态变换路径图2.2.2 Intent ReceiverIntent Receiver是用于对外部事件的响应,当外部事件发生时,会使用Notification Manager通知用户。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用ContextBroadcast Intent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯。2.2.3 ServiceService是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台,直到用户停止该服务或服务运行结束。本系统客户端扩展功能就是采用Service来进行设计和开发的。2.2.4 Content ProviderContent Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。2.3 开发软件及安装2.3.1Java运行环境 安装JDK,首先下载好JDK应用程序:jdk-6u21-windows-i586.exe,然后单机安装,安装的目录都在D盘,所有其他步骤只要保持默认就行了,接着就是环境配置,具体做法与步骤如下:在“计算机”上点右键“属性”“高级系统设置” “环境变量(N)”。 图2-3 配置环境变量新建系统变量JAVA_HOME:D:jre环境配置;如图2-4所示。图2-4 配置java_home新建系统变量CLASSPATH:.;%JAVA_HOME%lib;(注意:点号表示当前目录,不能省略) 图2- 配置classpass在系统变量Path的值的前面加入以下内容:%JAVA_HOME%bin;(注意:这里的分号不能省略)到这里,JDK安装完毕。图2-6 配置path本系统安装的是jdk-6u21-windows-i586.exe文件,并对其进行环境配置,配置成功后,打开cmd后,输入java version会显示所使用的JRE版本,如下图所示,表示环境配置成功。图2-7 cdm下查看jdk2.3.2 Eclipse 编程软件Eclipse是由Sun公司提出的免费开源软件;具有强大的java程序开发扩展性,能实现java程序的编写编译测试和运行的一体化;还支hibernate,cvs,xml,uml,Spring等面向对象编程的基于映射来实现的编程扩展性;是一款比较理想的开发软件。在开发的过程中我们只要应用是的Sun公司提供是Swing图形界面工具来实现主要模块和框架;故该系统是用纯java语言来实现的。Eclipse使用的是中文版本,该版本便于使用,具有很好的开发性、高效的GUI、先进的代码编辑器等,其项目可以包含多种多样的子项目组,每个包文件都有其特定的功能,比如scr里放的是源文件,Java程序就编写于其中;而res包中含有桌面布局xml编程,某些图片也存放在这里。该代码编辑器还可以支持在线下载插件,扩展更为丰富的功能。其主界面如图2-8所示: 图2-8 主界面图插件ADT的下载,在Eclipse菜单栏上打开“帮助”,选“Install New Software.”,会跳出如下窗口,在“work with”后面输入网址“https:/dl- 所示: 图2-9 在Eclipse中添加软件2.3.3 MySQL 5.0数据库和Navicat for MySQL MYSQL 是目前最流行的开放源代码的数据库管理系统;MYSQL是一个高性能,多线程,多用户的建立在客户和服务器上的数据库管理系统:MYSQL所采用的SQL查询语言语言则集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中全部活动,包括定义关系模式、建立数据库、插入数据、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统的开发提供了良好的环境。用户在数据库投入了运行后,还可根据需要随时地逐步地修改模式,且并不影响数据库的运行,从而使系统具有良好的可扩展性。MySQL数据库适用于中小型企业,因此,应用范围较广,5.5的版本已经开始支持事物,MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。图2-10 MySQL程序登录界面Navicat 是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。Navicat for MySQL是一套专为 MySQL 设计的高性能数据库管理及开发工具它可以用于任何版本 3.21 或以上的 MySQL数据库服务器,并支持大部份 MySQL 最新版本的功能,包括触发器、存储过程、函数、事件、视图、管理用户等。在Navicat for MySQL中建立新的数据库连接,需输入连接名与密码,如图所示:单机“确定”按钮。 图2-11 连接Mysql数据库 右击Mysql选择“新建数据库”,在填出对话框中输入数据库名为“test”,字符集选GBK编码,如下图2-12所示,单机“确定”。接着在新建的数据库test上右击,选择“运行SQL文件命令”跳出窗口,可以选择你所编号的用户表,并选好对应的编码方式,这里是GBK,不然会出现乱码,然后单机“开始”,实现表的导入,见图2-13。 图2-12 图2-132.3.4 Web 应用服务器:Tomcat 6.0.14 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。安装并运行Tomcat,信息如图2-14: 图2-142.4 课题研究的方法 基于Android 2.1平台用Eclipse进行Java语言编程、调试,下载虚拟机进行模拟,方便运行程序时进行效果演示。其中DDMS可以查看线程,进入程序内部查看细节。控制台上会看到运行时的情况,包括警告与错误等。 本软件的设计方法是通过实验法来进行的,首先从已有的理论和经验出发,形成某种框架和理论构想,即“假说”(亦可称“假设”);接着是实现:就是将形成的假设在积极主动有计划有控制的具体实践中加以验证。通过对实验内容、发展状况的观察,确立最终的程序,有效的验证和完善系统设计。在软件设计方面,大量的了解已有的被人做成功的经典项目,分析自己的项目该如何设计,是否有共同的地方,对比分析中,会找到更加简单实用的方法。46 第三章 需求分析3.1功能需求分析 根据用户需求总结出来的反映了用户需求的系统逻辑模型转换成可以实施的物理模型,把整个设计划分成单元,主要解决如何去做的问题,要想创建整个酒店住房管理首先要通过增加信息来创建酒店住房管理。整个应用程序应划分为4个模块,分别是程序启动、用户界面、后台服务和数据库适配器。 后台服务是整个应用程序的核心,主要是“数据获取模块”,负责周期性的从用户输入的内容中获取信息。后台服务在程序启动时就由AppWidgetProvider启动,也可由用户界面通过startService()进行启动,启动后的后台服务将一直保持运行状态。同时用户界面从数据库中获取文本信息。一方面可以避免因网络通信不畅造成界面失去响应;另一方面,后台服务可以及时更新数据,以保证数据的准确性。数据库适配器封装了所有对mysql数据库操作的方法,用户界面和后台服务会调用它来实现数据库操作。在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。程序具体的功能需求包括四个功能模块:注册登录功能模块,客户登记功能模块,房间预订功能模块,房间退订功能模块。程序的功能流程图3-1: 图 3-1 系统流程图3.2性能需求分析手机软件要有良好的用户体验,良好的用户体验体现在以下几个方面:(1)界面友好用户界面要简洁直观,设计合理,方便用户操作,让用户操作起来比较舒服,并且UI视觉效应好。(2)快速响应快速处理用户的输入或请求,对于需要长时间处理的部分,在其处理时可以给用户一个提示,告知用户该软件
展开阅读全文