毕业论文-基于android平台的简易的移动oa办公室自动化系统设计_第1页
毕业论文-基于android平台的简易的移动oa办公室自动化系统设计_第2页
毕业论文-基于android平台的简易的移动oa办公室自动化系统设计_第3页
毕业论文-基于android平台的简易的移动oa办公室自动化系统设计_第4页
毕业论文-基于android平台的简易的移动oa办公室自动化系统设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

摘要开放性移动平台ANDROID强势的异军突起,不仅带动了基于该平台的移动终端特别是智能手机得到全面的开发和使用,而且收获了良好的市场反响和发展前景,促进了相关领域的不断创新和相关产业的快速发展。如今我们不得不承认已经跨入了移动时代,移动应用开发方兴未艾,其中ANDROID平台上的应用程序开发以其独特优势从中脱颖而出,成为了一个重要的热门研究领域。由于ANDROID系统的灵活性和稳定性,越来越多的传统的应用程序逐渐从计算机移植到手机上。众所周知,传统的OA(OFFICEAUTOMATION办公自动化)已取得了长足的发展并渐趋成熟,如通讯录、文件管理、公文处理、日程管理、通知等功能已得到完美实现,ANDROID平台的高效与智能结合OA系统,将传统的OA系统具备的功能移植到智能手机上,让用户能够随时随地进行掌上移动办公,对提高企业的办公效率,减少不必要的消耗具有重要意义和实用价值。在本文中,运用JAVA相关技术,结合ANDROID平台的特点,对移动OA的实际需求和业务流程进行了分析,主要完成了一个基于ANDROID平台的移动OA的设计工作,重点探讨了开发流程和详细的实现方法,同时也阐述了实现移动OA系统所涉及的基础知识和关键技术。关键词ANDROID;移动办公;JAVA;开发方法;SERVLETABSTRACTWITHTHERAPIDDEVELOPMENTOFANOPENMOBILEPLATFORMANDROID,MAKINGTHEPLATFORMBASEDONMOBILETERMINALS,ESPECIALLYSMARTPHONESHAVEALSOBEENALOTOFDEVELOPMENTANDUSE,ANDGETAGOODMARKETRESPONSE,ANDPROMOTETHEINNOVATIONANDDEVELOPMENTOFRELATEDINDUSTRIESRELATEDFIELDSNOWWEHAVETOADMITTHATHASENTEREDTHEMOBILEERA,MOBILEAPPLICATIONDEVELOPMENTINTHEASCENDANT,WHERETHEAPPLICATIONONTHEANDROIDPLATFORMFROMWHICHTODEVELOPITSUNIQUEADVANTAGESEMERGEDASANIMPORTANTHOTRESEARCHFIELDDUETOTHEFLEXIBILITYANDSTABILITYOFTHEANDROIDSYSTEM,MORETRADITIONALAPPLICATIONSGRADUALLYMIGRATEFROMTHECOMPUTERTOTHEPHONEASWEALLKNOW,THETRADITIONALOAOFFICEAUTOMATIONOFFICEAUTOMATIONHASMADEGREATPROGRESSANDMATURE,SUCHASCONTACTS,DOCUMENTMANAGEMENT,DOCUMENTPROCESSING,SCHEDULING,NOTIFICATIONSANDOTHERFUNCTIONSHAVEBEENPERFECTLYREALIZED,EFFICIENTANDINTELLIGENTCOMBINATIONOFTHEANDROIDPLATFORMOASYSTEM,OASYSTEMWITHTHETRADITIONALFUNCTIONSPORTEDTOSMARTPHONES,ALLOWINGUSERSTOCARRYHANDHELDMOBILEOFFICEANYWHERE,TOIMPROVEOFFICEEFFICIENCYANDREDUCEUNNECESSARYCONSUMPTIONOFGREATSIGNIFICANCEANDPRACTICALVALUEINTHISPAPER,THEUSEOFJAVARELATEDTECHNOLOGIES,COMBINEDWITHTHECHARACTERISTICSOFTHEANDROIDPLATFORMFORMOBILEOASACTUALNEEDSANDBUSINESSPROCESSESAREANALYZED,MAINLYTOCOMPLETETHEDESIGNOFAMOBILEOABASEDONTHEANDROIDPLATFORM,FOCUSINGONTHEDEVELOPMENTPROCESSANDDETAILEDIMPLEMENTATION,BUTALSODESCRIBESTHEBASICKNOWLEDGEANDKEYTECHNOLOGIESINVOLVEDINMOBILEOASYSTEMKEYWORDSANDROIDMOBILEOFFICEJAVADEVELOPMENTMETHODOLOGYSERVLET目录1绪论111研究背景和意义112课题研究现状213研究内容与目标314本章小结32相关知识及开发环境搭建421ANDROID系统概述4211ANDROID平台简介4212ANDROID系统架构4213课题相关ANDROID技术介绍622TOMCAT及SERVLET简介9211TOMCAT与JAVAWEB9212SERVLET技术简介1023MYSQL简介1124开发环境搭建12241客户端的搭建12242服务器端的搭建1225本章小结133系统分析与设计1431MVC设计模式简介1432可行性分析1533系统总体架构设计1534系统功能设计16341系统功能模块概述16342移动OA客户端设计17343移动OA服务器端设计1835数据库相关设计1936本章小结214移动OA系统的具体实现2241ANDROID运行及开发环境2242关键技术的实现22421ACTIVITY与INTENT22422XML解析简介23423与服务器交互26424文件上传和下载2843本章小结295已实现的功能模块及其测试3051概述3052系统登录3153任务审批3354客户资料3555文件上传及附件下载3656提醒通知3757本章小结376总结与展望38参考文献39翻译部分40外文原文40中文译文52致谢631绪论11研究背景和意义OAOFFICEAUTOMATION,办公自动化系统的一般定义在实现了网络互联的前提下,利用INTERNET或INTRANET,在工作流理念指导下实现的满足用户方便快捷地共享企业内部信息需求,从而实现高效协同办公的软件系统。OA系统将先进的管理思想、管理模式与软件技术、网络技术等信息技术相结合,为用户提供了低成本、高效能的绝佳管理工具。移动通信技术和互联网技术的高速发展、用户需求的全面深化、综合性能要求的逐渐提高,使得办公自动化系统也在向多元化、大规模的方向发展,而且不断地被赋予新的定义,不仅局限于传统的PC机应用终端,办公自动化系统的概念也在不断地更新和延伸。当然,用户希望更快捷和透彻地获取企业内部的各种信息、动态、实时处理结果和运营情况,而且面对日益繁杂的业务数据和管理流程,对传统的办公自动化更提出了严峻的挑战。通过PC机接入网络来实现办公的方式显然已经力不从心,不仅限定了用户的办公地点和时间,而且也造成不必要的时间和精力的损耗,毫无疑问已难以适应现代企业的发展趋势和办公需求,打破这种效率瓶颈已迫在眉睫。所谓的智能手机(SMARTPHONE),是如同PC一样,运行在基于独立、开放的操作系统和运行空间之上的移动设备,用户可以根据需要随心所欲地安装使用和卸载诸如导航等的第三方服务商发布的程序或开发的软件,并能够由移动通讯网络来连接到无线网络的这一类手机。随着科学技术和社会经济的发展,当前我国智能手机产业发展迅猛,据中国电子信息产业发展研究院预计,2013至2015年是我国智能手机更新换代的高峰期,在未来一段时期内,我国智能手机产业将继续保持高速发展。图11显示了2012年至2013年全球智能手机操作系统市场份额的变化情况。图11全球智能手机操作系统市场份额的变化情况ANDROID系统是GOOGLE公司主导,并由OHA(OPENHANDSETALLIANCE,开放手机联盟)开发的一个操作系统,它是由GOOGLE公司于2007年11月5日公开发布,运行在LINUX内核之上的开源手机操作系统。最初它主要应用于手机设备,由于在设计之初就表现出了完全的开放性和强大的可扩展性,因此已经成为最为流行的嵌入式系统设备操作系统之一,应用于如上网本、机顶盒、全球定位设备、车载设备、电视机等之上。据有关资料显示,时至2011年8月2日,ANDROID手机已占据全球智能机市场48的份额,而且在过去不久的几年也保持着较高的市场占有率。由于GOOGLE在推出ANDROID系统时果断地开放源代码,所以世界大多数手机生产商愿意追随GOOGLE公司而生产ANDROID系统智能手机,而且ANDROID操作系统在各个方面表现出的综合性能也非常优秀,使得ANDROID成为世界上具有巨大影响力的智能手机操作系统。归功于近年来迅速发展的无线通信技术,使得基于ANDROID平台的移动终端已经融入到了人们日常生活和工作中的方方面面,促使各种移动应用程序如雨后春笋般涌现,这就使得将OA系统移植到ANDROID智能手机并产生实际效用成为可能,将移动办公应用程序安装到ANDROID智能手机上,将使OA脱离PC的束缚,这意味着用户不必在固定的办公地点和专门的PC设备上进行办公,用户可以在任何地点、任何时间实现办理公务的设想,这不仅对于处置企业内发生的突发性事件具有重要影响和积极意义,而且在降低企业办公消费支出的同时大幅度提高了企业的办公效率,从而使企业的信息化水平有质的飞跃,由此增强了综合竞争力。本文讨论了在ANDROID智能终端上实现移动OA系统的过程及所涉及的技术,在基于ANDROID开发环境的基础上,运用软件开发的相关方法,借助于面向对象的思想使用JAVA程序设计语言设计和实现一个简易的移动OA系统,详细阐述了所实现的移动OA的设计和开发过程,对于进一步研究和完善移动OA具有一定参考价值。12课题研究现状移动OA的出现并不是偶然的,而是社会文明和科学技术发展到一定阶段的产物,是组织管理工作在移动时代充分利用信息化技术而实现自动化办公以减少人在办公过程中的不必要劳动。是利用移动通信技术延伸传统的基于PC的OA的使用平台,是为了满足企业内部人员随时保持灵通的信息交流而应运而生的。进入3G移动时代,移动办公有了新的含义和延伸。新一代的移动OA,以专网和无线通讯网络为依托,综合运用如3G移动技术、WEBSERVICE等多种技术手段,涉及移动通讯、信息处理和计算机网络等领域的前沿科技,从而该系统在安全性和交互能力方面的表现有了质的飞跃,可以为用户提供一种安全完整、方便快捷的现代化移动办公机制。就国内而言,得益于企业对信息化的持续重视,有很多企业已经部署了移动OA系统。但总体来说,办公自动化最终实现效果大都达不到预期设想,根据我国当前移动OA实施和发展的实际效果和程度大致可以概括为以下三种情况()拥有自己的INTRANET网络,但没有使用相应的OA应用系统开展协同性质的工作,企业网络在大部分时间中处在闲置状态,实质上仍然是个人办公,企业的投入基本上没有产生效益。()拥有自己的INTRANET网络,并且使用了应用系统,内部人员可以通过应用系统在企业内部进行交流信息,可以实现有限的协同工作,但是由于应用系统和企业的业务流程结合得不够紧密,产生的效益不明显。()拥有自己的INTRANET网络,使用专门为企业业务流程定制的办公自动化系统,而且能较好地支持企业日常信息的共享和协同工作,在顺畅地获取外部信息的同时还可以通过INTERNET对外发布企业的信息,系统投入使用后产生了一定的效益1。上述三种情况中,移动办公系统功能的实现、用户推广的程度均不够,而且智能手机在其中实现的功能和扮演的角色都比较单一,导致OA系统不能发挥应有的积极作用,而且还存在着诸多缺陷和问题,还在一定程度上增加了企业日常运营成本13。随着不断推陈出新的通讯技术日趋全面和成熟,在科技发展和市场需求这两大动力不断地推动下,该领域中的技术研究组织和软件开发公司肯定会加快研发的脚步,并以尽可能快的速度完善和改进移动OA,早日设计出更完美的移动OA并付诸实用12。13研究内容与目标本文的目标是采用面向对象的思想,基于ANDROID平台以及OA相关技术,综合运用服务器及数据库知识,探讨、研究实现一个灵活高效并易于进行功能性和结构性扩展的移动OA系统,主要工作内容集中在该移动OA的客户端和服务器端的开发方法和流程,主要工作内容如下简单说明实现移动OA过程中运用到的ANDROID知识,简要介绍ANDROID系统的总体框架,探讨在开发移动办公系统的过程中涉及的其他有关技术。通过对ANDROID系统基础知识的了解和对ANDROID软件开发的理解,探索在WINDOWS系统环境下搭建移动OA开发的客户端及服务器端环境,最后,论述了设计和实现移动OA系统的关键技术和使用的工具。以传统OA为参照,对移动OA系统进行分析和设计,由此设计出一个简单的移动OA设计方案,借助于ANDROID系统的优异性能,实现一个简易的基于ANDROID移动平台的OA系统。根据实际需求,分别实现各功能模块,通过在模拟器上进行测试来验证相关模块的正确性和合理性。最终综合测试系统确定是否实现预期要求。14本章小结本章主要分析了完成课题的实际背景和意义,论述了课题的研究及发展现状,简要讨论了移动OA系统的特点,最后明确该移动OA系统的主要内容和最终目标。2相关知识及开发环境搭建21ANDROID系统概述211ANDROID平台简介ANDROID一词本义指“人形机器人”,是GOOGLE公司发布的基于LINUX内核且开放源码的移动设备操作系统,与诸如SYMBIAN、IOS等在手机市场上或生存已久或具有巨大影响力的其他手机操作系统一样,已经得到了大量的用户支持。我们通常所说的ANDROID平台由ANDROID操作系统、中间件、用户界面和应用软件组成,被认为是首个真正兼具开放性和完整性,且为移动终端量身定制、具备诸多其它平台难以企及的优点的系统应用软件。运行于ANDROID平台之上的应用程序通过JAVA程序设计语言来进行开发,这使得从接口到功能,都可以进行无穷无尽的改变,JAVA语言适合进行网络应用开发的特性与生俱来,它不仅是很优秀的编程语言,而且具有广泛的应用基础和开发团队,这非常有利于ANDROID手机的发展和ANDROID手机用户群的壮大2。GOOGLE公司积极发展与软、硬件开发商、相关设备生产厂商及电信运营商、其它利益相关行业或组织的深层次合作关系,企图通过这种方式建立一个具备开放性和具有统一标准的智能手机软件平台,从而能在移动行业内形成开放的系统产业链。212ANDROID系统架构图21所表示的为ANDROID系统框架结构的组成。图21ANDROID系统架构图从图21上可以看出,ANDROID系统体系架构分为四层,分别是内核层(LINUXKERNEL)、系统运行库层(LIBRARIES)、应用框架层(APPLICATIONFRAMEWORK)、应用层(APPLICATION)。下面分别作简要介绍()内核层(LINUXKERNEL)ANDROID平台的系统内核是基于增强版本的内核LINUX26来提供核心系统服务,主要有安全、内存管理、进程管理、网络协议堆栈、硬件驱动等。LINUX内核作为连接硬件和软件的抽象层,搭建起了软件与硬件之间的桥梁,使得软件开发者不必分散注意力在内核的具体底层实现工作上,可以全神贯注地投入到上层软件的开发之中。而底层的如驱动的编写和更新的工作则由GOOGLE公司或是手机生产商来完成,除了支持LINUX内核本身所支持的一些设备驱动外,它还提供了用于支持ANDROID平台的诸如ANDROIDBINDER的设备驱动。()ANDROID运行时环境(ANDROIDRUNTIME)ANDROID应用程序使用JAVA程序设计语言来开发,但编译和执行却不是用原有的J2ME来实现,只因ANDROID自身带有ANDROIDRUNTIME。ANDROIDRUNTIME由CORELIBRARIES(即核心库)和DALVIKVIRTUALMACHINE两个核心库组成。其中前者实现了JAVA编程语言核心库的大部分功能,而后者则是ANDROID相对于JAVA虚拟机(JVM)而实现的虚拟机,与JVM所属的堆栈结构机器(STACKMACHINE)不同,DALVIK属于寄存器结构机器(REGISTERMACHINE),依赖于LINUX内核的一些功能,它具有在当下主流硬件架构下,易于与系统优化与整合且所需的资源相对较少。DALVIK虚拟机不能直接执行JAVA类,执行的中间代码是通过转换工具将JAVA字节码转换为特有的DEX(DALVIKEXECUTABLE)格式(DX是一套工具,可以将JAVACLASS转换成DEX格式,一个DEX文件通常会有多个CLASS)。在同一个ANDROID设备上可以同时运行多个应用程序,即虚拟机。()函数库层(LIBRARIES)ANDROID包含了一些基础的C/C库,它们可被ANDROID系统的不同的组件使用。它们通过ANDROID的应用程序框架(APPLICATIONFRAMEWORK)来提供相关服务。此外,ANDROID还提供一个硬件抽象层(ANDROIDHARDWAREABSTRACTIONLAYER,ANDROIDHAL)用于保护硬件提供商对其驱动程序的所有权。()应用程序框架层(APPLICATIONFRAMEWORK)应用程序框架层是ANDROID在编写随系统一起发布的核心应用时所使用的API框架,这个框架提供开放的开发平台供开发人员访问,因此开发人员同样可以在遵循框架的开发原则的前提下使用这些框架来开发自己的应用程序,以此简化应用程序开发的架构设计。借助于ANDROID提供的这个开放的开发平台,开发人员能根据需要开发出标新立异的应用程序,支撑应用程序正常运行的是一系列的服务和系统,具体包括如下几种VIEWSYSTEM(视图系统)提供了丰富且可扩展的视图组件,它们可以用于构建应用程序的视图,包括列表(LISTS)、网格(GRIDS)、文本框(TEXTBOXES)、按钮BUTTONS,甚至是嵌入式的WEB浏览器(WEBVIEW)。CONTENTPROVIDERS(内容提供者)该服务能访问由其它应用程序所维护的数据,或向其他应用程序共享自己的数据资源。RESOURCEMANAGER(资源管理器)提供应用程序对非代码资源访问。NOTIFICATIONMANAGER(通知管理器)使应用程序可以在系统状态栏中显示提示信息。ACTIVITYMANAGER(活动管理器)用于管理应用程序生命周期,提供通用的导航回退功能。()应用程序层(APPLICATIONS)这一层通常是指伴随ANDROID平台一起发布的一系列核心应用程序,包括常用的智能手机必备的一些应用程序,而所有的这些应用程序都是由JAVA程序设计语言实现的。213课题相关ANDROID技术介绍在ANDROID应用开发中,ACTIVITY(活动)是所有程序中最常用的模块之一,ANDROID应用程序的跳转都是通过ACTIVITY来实现的,应用程序中的每一个ACTIVITY都具有自己的生命周期,交由系统来实现统一管理,一般来说应用程序是无法改变ACTIVITY的生命周期的,只可以通过ONSAVEINSTANCESTATE来保存其当前的状态14。ANDROID的ACTIVITY生命周期如图22所示。图22ANDROID活动的生命周期图ACTIVITY是ANDROID应用程序生命周期中最重要的部分之一。在系统中的所有ACTIVITY都由一个执行当前任务的ACTIVITY堆栈来进行统一管理。如果一个ACTIVITY处于启动状态,那么它将被置于堆栈顶,从暂停或停止状态转化为运行状态,而之前运行的ACTIVITY则失去焦点,被保存在堆栈中,不再处于前台运行状态,直到新置于栈顶的ACTIVITY退出才有可能恢复前台运行状态。ACTIVITY有四种本质区别的状态()当其在前台运行(即其在ACTIVITY当前任务的堆栈顶),即为活动(RUNNING)状态(或运行状态)。()当ACTIVITY已失去焦点但是对用户依然可见时即为暂停(PAUSED)状态。此时该ACTIVITY依然保持活力,只是在堆栈中其他的ACTIVITY保存在该ACTIVITY之上,一个暂停的ACTIVITY仍然是处于活动状态的,在系统内存极端低下时被强制杀死。()当一个ACTIVITY被另一个ACTIVITY所完全覆盖时,它的状态即为停止状态(STOPPED),可是系统仍然会保存着它运行时的相关信息,但由于窗口被隐藏,用户已不可见,当系统内存极端低下的时候,处于停止状态的ACTIVITY将会被杀死。()当ACTIVITY处于暂停状态或者停止状态时,系统可能会在必要时从系统内存中将该ACTIVITY清除,系统可能采用两种方式之一来对该ACTIVITY进行终止,可能会使该ACTIVITY结束,或者直接杀死它的进程。如果需要将其再次恢复并显示出来,系统会重新运行并加载之前终止它时所保存的状态信息。在图22中,ACTIVITY有三个关键的循环()ACTIVITY的完整生命周期,从ONCREATEBUNDLE方法第一次调用开始到ONDESTROY方法被调用结束。ACTIVITY在ONCREATE方法中设置初始化所有的“全局”状态,在ONDESTORY方法中释放所有的资源。例如ACTIVITY可以在ONCREATE方法中创建运行于后台的线程而服务于ACTIVITY,而在ONDESTORY方法中停止该线程21。()ACTIVITY的可见生命周期,从ONSTART方法被调用开始到ONSTOP方法被调用时结束。在此期间,ACTIVITY对用户来说始终是可见的,但它可能未处于当前任务的堆栈顶(即不可交互)。在这个周期中可以通过前述两个接口来获取UI数据和资源等并显示给用户,ACTIVITY随时可能会在可见状态和隐藏状态之间进行转换,所以ONSTART方法和ONSTOP方法都可能被任意多次的调用执行。()ACTIVITY的前台生命周期,从ONRESUME方法被调用时开始到ONPAUSE方法被调用时结束。对于一个ACTIVITY来说,它可以频繁的调用ONRESUME方法和ONPAUSE方法从而实现在RESUMED状态和PAUSED状态之间实现切换,在此周期中该ACTIVITY始终处于当前任务堆栈中的顶端并可以与用户进行交互。例如当ANDROID设备进入休眠状态或是当前ACTIVITY调用了新的ACTIVITY,而且实现这些接口方法的都是属于十分轻量级的代码。ACTIVITY的生命周期涉及下面列出的接口方法,开发者可以根据实际来重写这些方法,从而在ACTIVITY生命周期的适当阶段对其进行需要的管理和操作。例如,通常ACTIVITY通过重载ONCREATE方法去进行初始化操作设置,通过重写ONPAUSE实现ACTIVITY状态的保存、提交更改过的数据和设置,很多时候ACTIVITY也可能需要通过重写ONFREEZE接口方法恢复在ONCREATEBUNDLE里面保存的状态和数据。ANDROID中通过使用INTENT(意图)组件配合INTENTFILTER(意图过滤器)来实现协助应用程序或各组件(ACTIVITY、SERVICE和BROADCASTRECEIVER)之间的交互或通信,INTENT是对一个ANDROID即将要执行的ACTION及其涉及的相关数据的抽象性描述,通常将其作为参数来使用15。一般来说,INTENT包含ACTION和DATA两个最基本的数据,前者用来指明要实施什么动作,后者一般是由一个URI确定的具体数据。除了包括ACTION和DATA两个最基本的数据元素外,INTENT还包括CATEGORY类别,指定将要执行的ACTION的其他一些额外的信息、TYPE(类别,显式指定INTENT的数据类型)、COMPONENT(组件,指定INTENT的目标组件)、EXTRAS(附加信息,其他所有附加信息的集合)元素。INTENT在应用程序或是各组件之间起着媒介作用,很好地完成了调用者与被调用者之间的松耦合的工作。至于INTENT属性的设置,可以在相关XML文件中定义,也可以通过调用INTENT类的相关方法来设置和获取,通常包括以下几个方面()ACTION,也就是要执行的动作。SDK中定义了一些常用的如ACTION_MAIN、ACTION_CALL等的一系列标准的动作供开发者直接使用。当然,我们可以通过自定义动作(注需要加上包名作为前缀来使用自定义的动作),并可根据应用需要编写相应的ACTIVITY来响应自定义动作。()DATA,一个URI确定的要操作的具体数据。()TYPE(数据类型),用于强制显式指定INTENT的数据类型(MIME)而不必根据数据来判定类型。()CATEGORY(类别),用于指定将要执行的ACTION的其他一些额外的附加信息。例如若类别指定为LAUNCHER_CATEGORY则表示INTENT的接收者应该在LAUNCHER中作为顶级应用出现。()COMPONENT(组件),指定INTENT的目标组件的类名称。通常ANDROID会根据INTENT中包含的其它如ACTION、DATA/TYPE等属性的信息来查找匹配的目标组件。如果指定了COMPONENT属性,INTENT将不再查找数据直接使用指定的组件同时所有其他属性都将成为可选。()EXTRAS(附加信息),是其它所有附加信息的集合。通常ANDROID使用EXTRAS属性来为COMPONENT属性提供扩展信息。INTENT按表现形式可以分为两大类显式的INTENT(EXPLICITINTENT)和隐式的INTENT(INTENTFILTER),显式的INTENT在构造时就指定接收者,主要用于应用程序内部组件之间传递消息;隐式的INTENT,INTENT的发送者在构造时并不需要指定目标组件,因此用于多个应用程序之间的交互,但隐式的INTENT需要对动作(ACTION)、数据(DATA)、以及类别(TYPE)三要素进行匹配。隐式的INTENT实现了请求和响应之间的松耦合。显式的INTENT由于目标组件已经指定,所以ANDROID系统不需要再对它进行解析。ANDROID系统通过解析隐式的INTENT并将其映射给可以处理这个INTENT的ACTIVITY、INTENTRECEIVER或SERVICE对象进行相应处理和响应3。下面再简要介绍一下ANDROIDVIEW的体系结构。应用程序的用户界面属于用户接口(UI,USERINTERFACE)的一种,ANDROID的用户界面是由一系列的视图(VIEW)和视图群组(VIEWGROUP)对象所组合而成的。在ANDROID中的VIEW和VIEWGROUP对象都属于ANDRIODVIEW包且继承自VIEW基类,而VIEW和VIEWGROUP又衍生了很多的子类。作为像按钮之类的与用户交互的WIDGETS小部件的父类,VIEW对象是ANDROID平台用户界面的基本对象。作为提供各种布局结构的LAYOUTS的父类,VIEWGROUP具有多种布局方式且可以嵌套。VIEW对象可视为一种数据结构,可用来存储布局参数和界面特定矩形区域的显示内容。VIEW对象可以用来处理它所处区域的布局、测量、绘制、焦点改变、滚动和按键手势等交互事件。一个VIEW对象也可以作为用户与系统的交互工具并接收交互事件1617。ANDROID平台通过用VIEW或VIEWGROUP对象来实现一个ANDROID用户界面,如图23所示的层次结构树可以根据实际需求改变其结构使其更简单或者更复杂。可以直接使用ANDROID系统现成的用户界面控件或者不同经典布局,也可以自己定义。ACTIVITY调用SETCONTENTVIEW(VIEWVIEW)方法并且传递一个根节点对象的引用来让VIEW层次结构实现的用户界面在屏幕上合理显示。ANDROID系统解析用户界面的配置信息,根据它们来进行测量绘制这个树形的视图结构。视图结构的根节点要求其子节点进行自我绘制,而子节点会在父节点那里请求尺寸和位置,但最终还是由父节点决定子节点大小。ANDROID按顺序解析布局文件上的所有元素,从根元素开始,实例化VIEW对象并且把他们绘制在实例化的父节点对象上。由于它们都是按顺序被绘制的,如果某些VIEW子对象超出父节点对象定义的范围,那么后来绘制的VIEW对象将会覆盖原来的VIEW对象而显示18。图23VIWE和VIEWGROUP的树状层次图22TOMCAT及SERVLET简介211TOMCAT与JAVAWEBTOMCAT是在SUN公司的JSWDK(JAVASERVERWEBDEVELOPMENTKIT,是SUN公司推出的小型SERVLET/JSP调试工具)基础上发展起来的一个完全用JAVA语言编写,免费而且开放源代码的WEB应用服务器软件。因为TOMCAT具有技术先进、运行可靠、性能稳定、完全免费等诸多优秀特性,而且由于得到了广大的开放源代码志愿者的大力支持,它可以和目前大部分的主流WEB服务器(如IIS和APACHE服务器)一起工作,TOMCAT已经深受JAVA应用开发者和喜爱者的推崇并已经被许多软件开发厂商应用于许多软件开发中并获得了广泛的关注。由于TOMCAT属于轻量级应用服务器,所以大多应用于开发中小型系统和并发访问用户数量有限的企业JAVAWEB应用情形中。TOMCAT除了能够充当运行SERVLET的优秀容器外,还提供了作为WEB服务器的一些使用功能,如TOMCAT管理和控制平台、安全域管理等。JAVA中有三种“官方”技术可以用来开发WEB应用程序SERVLET、JAVASERVERPAGES(JSP)和JAVASERVERFACES(JSF),其中SERVLET是核心技术,JSP和JSF都是以它为基础的。在SERVLET之后出现JSP,并没有淘汰SERVLET,而是在现代JAVAWEB应用程序中共用。图24表示TOMCAT与SERVLET工作流程。1客户发出访问特定SERVLET的请求;2SERVLET容器接收并解析接收到的客户请求;3SERVLET容器创建一个SERVLETREQUEST对象,将客户请求及其他关于客户的信息封装到其中;4SERVLET容器创建一个SERVLETRESPONSE对象;5SERVLET容器调用客户请求的SERVLET对象的SERVICE()方法,并且把SERVLETREQUEST对象与SERVLETRESPONSE对象作为参数传给SERVICE()方法;6SERVLET从SERVLETREQUEST对象获取客户请求信息;7SERVLET利用SERVLETRESPONSE对象来生成响应结果;8SERVLET容器把SERVLET生成的响应结果发送给客户。图24TOMCAT与SERVLET工作时序图JAVAWEB应用程序运行在SERVLET容器之中,SERVLET容器可以动态地调用JAVAWEB应用中的所有SERVLET组件。而且由SUN公司的SERVLET规范对JAVAWEB应用的定义可以看出,JAVAWEB应用不仅可以在TOMCAT中运行,还可以在其他符合SERVLET规范的SERVLET容器中运行,JAVAWEB应用中可以包含SERVLET组件、JSP组件、相关的JAVA类、静态文档、客户端类WEBXML文件等内容。212SERVLET技术简介SERVLET基本上就是一个JAVA程序,是一种运行在支持JAVA语言的服务器上并扩展JAVAWEB服务器功能的程序组件。一个SERVLET应用程序由一个或多个SERVLET组成。SERVLET应用程序是在SERVLET容器中运行的,它不能在自己里面运行。SERVLET容器也叫SERVLET引擎,它可以将用户的请求传递给SERVLET应用程序,并将SERVLET应用程序的响应传回给用户。SERVLET技术的核心是SERVLET接口,所有的SERVLET实例都必须直接或间接实现这个接口。这个接口定义了SERVLET和SERVLET容器之间的一个契约。每个SERVLET类型只有一个实例,它由SERVLET的所有请求共享。在SERVLET接口中定义了5个方法,其中3个方法都由SERVLET容器来调用,容器会在SERVLET的生命周期的不同阶段调用特定的方法INIT(SERVLETCONFIGCONFIG)方法负责初始化SERVLET对象。容器在创建好SERVLET对象后,就会调用该方法;SERVICE(SERVLETREQUESTREQ,SERVLETRESPONSERES)方法负责响应客户的请求,为客户端提供相应服务。当容器接收到客户端要求访问特定SERVLET对象的请求时,就会调用此方法传递SERVLETREQUEST对象和SERVLETRESPONSE对象;DESTROY()方法当SERVLET对象结束生命周期时,负责释放SERVLET对象占用的资源。图25SERVLET接口及其实现类的类框图SERVLET接口还定义了以下两个返回SERVLET的相关信息的方法。JAVAWEB应用中的程序代码可以访问这两个方法来获得SERVLET的配置信息及其他相关信息4。GETSERVLETCONFIG()返回一个SERVLETCONFIG对象,在该对象中包含了SERVLET的初始化参数信息;GETSERVLETINFO()返回一个包含SERVLET创建者、版本和版权等信息的字符串。23MYSQL简介MYSQL是一个关系型数据库管理系统,由瑞典MYSQLAB公司开发,后被ORACLE公司接管。在WEB应用方面,MYSQL是最好的RDBMSRELATIONALDATABASEMANAGEMENTSYSTEM关系数据库管理系统应用软件之一,MYSQL服务器既可以作为前台服务程序运行,也可以作为后台服务程序运行。它将纷繁复杂的数据分门别类地保存在不同的数据表中,而不是把全部的数据完全在混乱的保存一起,故此增加了数据操作的速度并提高了应用的灵活性。MYSQL是一个多用户、多线程的强壮的关系型数据库服务器,它使用最常用且标准化的SQL语言来访问数据库,而且由于其具有体积小、速度快、总体拥有成本低,开放源码等优点,所以成为具有广大用户支持和追随,适用于开发中小型系统的优秀数据库软件。24开发环境搭建241客户端的搭建从官网HTTP/JAVASUNCOM/JAVASE/DOWNLOADS/INDEXJSP下载JDK17,从下载网址HTTP/WWWECLIPSEORG/DOWNLOADS下载合适版本的ECLIPSE。JDKJAVADEVELOPMENTKIT是整个JAVA开发中的核心,它包括了JAVA运行环境,JAVA工具和JAVA基础的类库,所以首先必须安装JDK,点击JDK安装程序之后,需要配置系统环境变量。1右键“我的电脑“,依次选择“属性“高级“环境变量“2选择系统变量“PATH“,将JDK安装BIN目录添加到后面,比如JDK安装目录为CPROGRAMFILESJAVAJDK160_14BIN,则将该值添加到PATH末尾,如果前一个系统变量值末尾没有分号,注意在CPROGRAMFILESJAVAJDK160_14BIN前添加一个分号;3新建系统变量,命名为CLASSPATH,依次将CPROGRAMFILESJAVAJDK160_14LIBTOOLSJARCPROGRAMFILESJAVAJDK160_14LIBDTJAR两个值添加进去,确定4打开CMDEXE,输入JAVAVERSION,如果显示出JDK的版本,则表示安装成功。ECLIPSE直接解压之后就可以使用。ECLIPSE解压之后,需要下载用到的相关插件才能进行应用相关ANDROID开发,可以通过下载安装和在线安装两种方式。如果之前下载的ECLIPSE是标准版的,不含开发ANDROID工程需要的插件,最简单的安装办法是在线安装。至于ANDROIDSDK和JDK可以直接下载安装,也可以在ECLIPSE中进行在线安装(其它使用到的插件也可用相同方法来安装)。1启动ECLIPSE,选择HELPINSTALLNEWSOFTWARE;2选择AVAILABLESOFTWARESITES,找到开发相应的如HTTP/DOWNLOADECLIPSEORG/WEBTOOLS/UPDATES的IP地址或自己输入相关插件下载的地址,选择将其ENABLE使其可用;3然后在地址栏里选择该IP地址,等待片刻;4选择需要安装的插件,然后进行下载安装即可。安装完毕之后会提示重新启动ECLIPSE。之后在ECLIPSE中创建所需版本的虚拟机以便于用于开发过程中调试程序。242服务器端的搭建MYECLIPSE企业级工作平台(MYECLIPSEENTERPRISEWORKBENCH,简称MYECLIPSE)是对ECLIPSEIDE的扩展,它是功能丰富的JAVAEE集成开发环境,包括了完备的编码、调试、测试和发布功能,利用它我们可以在数据库和JAVAEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。MYECLIPSE是一个十分优秀的用于开发JAVA,J2EE的ECLIPSE插件集合,MYECLIPSE的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。可以说MYECLIPSE是几乎囊括了目前所有主流开源产品的专属ECLIPSE开发工具。MYECLIPSE的安装从官网上下载10版本的MYECLIPSE直接解压安装即可。对于安装版的TOMCAT直接进行安装一些设置都采用默认设置,安装好TOMCAT之后,在开始菜单里选择“MONITORTOMCAT“,启动TOMCAT,在浏览器里输入HTTP/LOCALHOST8080,如果显示出TOMCAT的欢迎界面,则表示安装成功。下载并安装MYSQL后在MYECLIPSE中进行相关配置以便整合MYECLIPSETOMCATMYSQL三个工具来进行服务器端的开发。25本章小结本章首先对开发中所涉及的知识进行了简单的论述,介绍了开发所用到的工具,接着对开发环境的搭建进行了描述,包括客户端和服务器端。得到了一个完整的开发环境,为下一步进行程序设计奠定了基础。3系统分析与设计31MVC设计模式简介MVC是MODELVIEWCONTROLLER的缩写,即模型视图控制器的英文缩写。MVC是XEROXPARC在20世纪80年代为编程语言SMALLTALK80发明的一种软件设计模式,至今已被广泛认同和使用,最近几年被推荐为SUN公司JAVAWEB平台的设计模式并且受到越来越多的WEB开发者欢迎,它通过将业务逻辑、数据、视图分离以减少耦合来协同工作。MVC强制性地把应用程序的数据显示、数据处理和流程控制分开。MVC设计创建WEB应用程序的模式()MODEL(模型)表示应用程序核心(比如数据库记录列表)。()VIEW(视图)显示数据(数据库记录)。()CONTROLLER(控制器)处理输入(写入数据库记录)。MODEL(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。VIEW(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。CONTROLLER(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。MVC分层有助于管理复杂的应用程序,因为可以在一个时间内专门关注一个方面。例如,可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。MVC分层同时也简化了分组开发,不同的开发人员可同时分别开发视图、控制器逻辑和业务逻辑8。图31MVC模式图采用MVC软件设计模式来设计软件具有耦合性低、重用性高、生命周期成本低、部署快、可维护性高、有利软件工程化管理等优点。这些优点无疑使得软件设计更加事半功倍,而且使软件开发过程更加灵活快捷19。总之,MVC设计思想将一个应用分成了MODEL(模型)、VIEW(视图)CONTROL(控制)三个独立部分。按这种模式设计程序,多个视图可以对应一个模型,模型返回的数据与显示逻辑分离,使得程序结构清晰,易于维护5。32可行性分析一般而言,软件工程项目是复杂的涉及多方面人力和物质资源的工程,而且过程大多是不可逆的,必须有具体的解决方案,做详细的可行性分析,否则容易造成不必要的损失和浪费。可行性分析可以综合现有资源,提高预见性,为项目决策提供强有力的依据。技术条件方面本文实现的移动OA系统运用JAVA语言,结合ANDROID程序设计,以技术先进、性能稳定,而且免费的TOMCAT作为服务器端,以体积小、速度快、总体拥有成本低,尤其是开放源码的MYSQL作为数据库,综合了JAVAWEB应用技术和ANDROID开发的相关技术来实现,它们都具有良好的性能和成熟的技术,使得本文讨论的移动OA的实现具有很全面的技术支持。市场因素方面本文实现的基于ANDROID平台的移动OA,可将传统OA所具有的功能移植到智能手机上实现,不仅可以不受时间和空间的限制而随时随地办公,而且操作方便灵活,可以满足用户的各种服务需求,因此具有巨大的市场潜力,具有市场可行性。操作可行性ANDROID操作系统作为一款成熟而优秀的操作系统,具有良好的用户体验和广泛的市场基础,不论从用户还是开发商的角度都具有很强的可操作性20。经济可行性虽然该系统可实现诸多的功能模块,但正如前文所述,所采用的JAVA编程语言具有面向对象、解释型、分布式、可靠、安全、平台独立等特点6。使用技术先进、性能稳定,而且免费的TOMCAT作为服务器。开放源码的MYSQL作为数据库,所以可以最大程度的节约成本,故具有良好的经济可行性。综上所述,本次开发的移动OA从结构到功能都具有良好的可维护性,而且易于改变和添加子功能模块,本文目前涉及到的几个功能模块只是OA系统中较常用的几个模块,在后期可以添加更多的模块,本文在设计的时候考虑到了整个系统的可扩展性。33系统总体架构设计本文采用MVC模型来对系统进行总体设计,系统中将TOMCAT部署为服务器,利用JAVAWEB技术与客户端进行连接和交互,具有良好的可扩展性可移植性,通过相应的接口或解析技术进行数据和信息的耦合处理,将传统的“任务审批”、“客户资料共享”、“提醒通知”等功能从PC应用扩展到智能手机上,实现方便快捷的移动办公,大幅提高企业的办公效率。系统总体框架如图32所示图32系统框架图34系统功能设计341系统功能模块概述前已述及,本文实现的移动OA系统主要由服务器端和智能手机客户端组成。手机客户端的主要功能为提供用户交互界面,提供表现层的处理功能。而服务器端的主要功能为实现数据的后台处理,提供数据的交换、服务处理功能。图33系统实现时序图342移动OA客户端设计与传统的OA系统不同,移动OA客户端利用了移动通信技术,主要实现如图34所示的几大主要功能。可实现不同权限的用户的随时随地的需求,提高工作效率,减少不必要的人力和物力的浪费。本文初步设计的移动OA客户端功能架构如图所示图34移动OA客户端功能架构图(

温馨提示

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

评论

0/150

提交评论