版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 户关系管理的不足并结合移动互联网技术本文设计并实现了一款基于Android平台的CustomerRelationshipManagement,客户关系管理)系统客户端软件,以满足快速高效为企业客户提供服务的需求 :,Android,MVC,Object 第1章绪 结 第2 2.1.1客户关系管 2.1.2客户关系管理移动应用系统解决的问题及思 2.2.1Android系统的特 2.2.2Android的系统架 2.2.3Android四大组 DES加技 Java对象序列化技 本章小 第3 3.1.1客户管理功 3.1.2联系人管理功 3.1.3线索管理功 3.1.4销售订单管理功 3.1.5行动管理功 3.1.6其他功 3.2.1端到端业务处理响应时 3.2.2安全 3.2.3易用性需 本章小 4.1.1物理结 4.1.2逻辑结 4.2.1客户模 4.2.2联系人模 4.2.3线索模 4.2.4销售订单模 4.2.5行动模 4.5本章小 第5 5.1.1共用组件的实 5.1.2通用父类——BaseActivity的实 5.1.3模块创建和初始 5.1.4数据封装的实 5.1.5通信模块的实 5.2.1客户功能模块的实 5.2.2联系人模块的实 5.2.3线索模块的实 5.2.4销售订单模块的实 5.2.5行动模块的实 本章小 第6 系统测 测试环 结果分 本章小 第7 结束 7.1工作总 参考文 致 密级 期限题目:基于Android平台的 学号姓名秦专导业师英 院 外国语学 社会信息化进程的推进,信息在社会中的更新速度也越来越快,客户的需求也在时刻了一款基于Android平台的(CustomerRelationshipManagement,客户关系管理)理和日程管理等,并进行了需求功能的分解。其次,本文采用了C/S模式和MVC相结合的模式,对系统进行了结构设计,将系统划分为表示层、业务逻辑层、基础服务层和进行了详细设计与实现。最后,对客户端软件进行了功能和性能测试,表同时也使软件质量得以保证,方便后期。:AndroidMVC对象序列Withtheadvancementofsocialinformatization,thespeedofupdatinginformationandinformationdisseminationinsocietyisgettingfaster,sothedemandofcustomerschangesallthetime.Forthisreasontraditionalcustomerrelationshipmanagementislaggingbehindrelativelyfortheinformationprocessingcapacityandthespeedofresponse,thishinderthedevelopmentofenterprises.Inviewofthecurrentlackofcustomerrelationshipmanagement,andconnectingwiththemobileInternettechnology,wedesignedandrealizeda(CustomerRelationshipManagement)clientsoftwarebasedontheAndroidplatform.Thissoftwarecanprovidetimelyservicefortheenterprisescustomerrapidlyandefficiently.Firstly,inviewofthedemandysisofthesystemofacertainenterprise,weproposesnineservicesthatthesystemsupportingfor,theyarecustomersmanagement,contactsmanagement,salesopportunitymanagement,ordersmanagement,productsmanagement,cluesmanagement,actionsmanagement,theknowledgebasemanagement,schedulemanagementandsoon,andatthesametime posesthedemandfunction.Secondly,wedesignthestructureforthesystem,usingthemodelthatcombiningC/SmodelandMVC.Thesystemisdividedintofour-layerstructure:thepresentationlayer,businesslogiclayer,basicserviceslayeranddatalayer;andwealsodividesfunctionmodule,yzeseachmodulebusinessprocessingprocedureofitsfivefunctionmodules,anddesignsandimplementationseachmoduleindetail.Finally,basedonthefunctionandperformancetestonthesystemandtheclient,itverifiesthegoodoperationofeachfunctionalmoduleandtheefficiencyofbusinessprocessing.Tosumup,thesystemclientsoftwarethatwediscussed,designedandimplementedisofhighefficiency,mobilityandconvenience.Itcannotonlysolvethecurrentdefectsofthecustomerrelationshipmanagementeffectively,butalsohelptheusertocarryoutvariousbusinessactivities,improvetheprocessingefficiency,andensuretheenterprisemanagementworkingregularly. ,Android,MVC,Object1随着的飞速发展,企业之间的竞争越来越激烈,同时,企业客户的需求每时每刻时准确地获取及处理已成为企业急需解决的重要问题。近几年,移动智能终端的出现,使得传统互联网产生了重大的,移动互联网的流的沟通交流,如打、发,而开始关注强大的移动终端带来的丰富多彩的个性化服与传统相比,智能终端具有便携性、智能性、应用丰富等优势,这些优势使得智能终端在社交、、商务等应用上能够为用户带来更加个性化、多样化的体验。因此,课题研究(CustomerRelationshipManagement)即客户关系管理,是以“客户”为中心,以为,以企业业务活动为对象,以为指导,与客户进行高效地沟通,及时更新并反馈,从而帮助企业实现对的管理,在维系并稳定企业客户的同时又扩大客户群,最终实现企业经济效益的提升[1]。强调企业应该与客户的系统却也存在一定的缺陷:实时性差。社会上,消费者或客户的消费行为会因为一些因素(如)的影响而瞬息万变传统的其基于的是所收集的历史数据以及一些传统的通信方式,获取信息的不及时。虽然随着企业信息化的发展,也与计算机、互联网进行了应的业务处理和操作,缺少机动性的获取及处理无法随着业务人员的工,法适应社会信息飞速增长变化的需求,也大大影响了企业客户管理的效率点能有效地弥补传统方式的不足。课题研究目的和意在移动互联网飞速发展与企业经营方式向“客户”的背景下,为了解决传统实现一款基于Android平台的系统的客户端软件。将与移动智能终端相结合,使终端移动性、便捷性的特点得以最大限度的发挥,另外移动智能终端拥有一些PC机上所没有的功能,包括通话、、、位置服务等等,将这些功能与相结合,能为的功能扩展提供一个良好的平台,使得业务相比于PC机,智能终端的容量要小得多,处理能力也相对弱,移动客户端应提供最的功能、精简的界面。另外,移动客户端将不关注对大批量的挖课题研究现当前,移动技术被广泛应用,也紧随移动办公进入移动领域,并且成为了不少业提供具有实时性、不受限制的办公环境和办公能力,让业务人员在任何时间任何地点都能与客户,了解客户需求,及时馈市场信息等。因此,将与移动互联网相结合,使具备移动性、便捷性等特点,这将是客户关系管理将来的主要发展方向。而随着系统的不断完善在技术实现上也有了一定程度的发展当前系统在技术实现上主要体现在以下几个方面:系统作为企业资源的管理系统,需要处理大量的,如何分析和利用这些信息成为了系统的关键。利用数据仓库、数据挖掘等关键技术可以建立量化的、集成多种交换随着网络的发展,新的信息交流技术不断涌现,作为企业的常用企业管理软件,系统应该集成电子邮件VoP和网络会议等多种新的通信方式从而能够更加及时高效的为企业客户提供服务。企业业务信息处理,网络功能越来越发挥着重要的作用。为企业带来了实现电子随着管理理念以及实现技术的进一步发展,系统也将不断实现技术和应用的课题研究内容及主要对基于Android平台的系统的客户端进行需求分析将依据需求阶段所相关需求,确定开发本客户端所涉及的相关技术,对其进行封装/解析、加密/、压缩/解压缩、与服务器的交互等在设计过,将尽可能地涵盖开发同类或类似应用所具有的共有的特征及功能;针对客户端进试及部署功能点等“单元”进试。该测试工作将随着各个功能模块的开发而进行;集成测试,针对子系统内部以及子系统之间的交互进试;系统测试,将客户端与系统其他部分结合起来,在实际环境下运行,进试,同时包括性能测试;验收测试,让用户也参与的测试,使用真实的数据进试。关上。结本的结构和主要内容安排如下第一章介绍本的课题背景,阐述当前系统的研究现状,说明本课题的研究第二章介绍客户关系管理方面的理论知识,介绍系统中所使用到的技术第三章介绍系统的需求分析,包括客户管理、联系人管理、线索管理、销售订单的划分;分析系统的体系架构、层次结构、业务流程以及数据库表的设计。第七章工作总结。对本工作进行总结,提出下一步改进和完善的建议2客户关系管理相关概客户关系管当前关于客户关系管理,不同的研究机构或企业、公司有着不同的定义,但是这些不如咨询售后等是一种长期紧密互利互惠的关系[4]系统将企业内部各个业务人员和各个部门的关于客户的所有信息进行整合、分析,统一保存和管理,并以此为基础向企业提供良好的接口使得企业对于的管理具有高度的统一性、规范性。同时系统结合了先进的管理思想,采用信息产业的成果,为客户关系管理构筑。该平台整合数据挖掘、数据仓库等,能够为企业提供多方面多领域的自动化解决方案,大大减轻了业务人员的工作强度和难度。客户关系管理移动应用系统解决的问题及思整合了企业内部各个业务人员、资源,并对这些资源进行有效、规范地组移动终端下的系统为企业办公提供了一个新的平台,带来了信息时代全新的运营2-1客户维客户维 客户获客户价 客户选客户价 客户选2-1的和发展空间。因此,业必须及时获取并快速响应客户的需求(这些需求有可能时刻都在变化,并提升产品服务质量,提供良好便捷的产品或服务获取,同时提供良好的等。移动应用系统应该为企业提供与客户进行沟通交流的快速方便的和方式,增加企业业务人员与客户沟通的频率和效率。同时,。移动应用系统能帮助企业在活动中转为主动,主动地去找寻客户、主动地获取需求、主动为客户提品和服务。本课题将依照移动终端客户关系管理理念及其所关注的四个问题进行系统客户端Android操作系统机也逐渐的融入人们的日常生活工作当中,成为人们工作生活不可或缺的设备或工具。自2008年公司发布了Android操作系统至今,Android的版本已由当初的1.1上升至如今的4.2,而公司也将于明年5月份正式发布Android5.0版本。随着版本的更新,Android操作系统也逐步趋于完善,运行效率大幅提升,所提供的功能也更加丰在我国,Android终端的销量逐年攀升,已占领大部分终端市场,并且每年每季度均能保持至少一成的增长幅度[6]。由此可见,Android已成为当前市场上主流的移动终端操Android系统的特AndroidAndroidAndroidAndroid统与硬件设备更加适配,从而发挥硬件的最佳性能,提高用户体验。应用程序性Android平台不需要区分应用和第应用。开发者可以随意的开发或扩展任意移动设备上的应用程序,即便是拨号程序或者主屏幕这样的应用,也在很大程度上满Android应用程序基于Java语言进行开发,开发人员只要掌握基本的Java编程技能Android[10]。无缝结合 应用务[11]
应用平台为用户提供诸多优秀稳定的物联网产品,如地图、Gmail、Android的系统架Android2-2ApplicationApplication(应用层ApplicationFramework(应用框架层ViewXMPPLibraries(系统运行库层 LinuxKernel(Linux内核DisplayDriver FlashMemory USB Keypad Wi-Fi Audio Android(Android运行时CoreDalvik2-2Android从图2-2中可以看出,Android系统总共分为四层,从上至下分别是应用层(ApplicationFrameworkLinuxAndroid平台上,一切可操作行为的载体即为应用程序,换句话说,Android操作系统的基本单位为应用程序(Application。应用层一方面包括Android系统中自带的应用程序,如主屏幕、联系人、、设置等应用程序;另一方面,还包括开发人员所开发的第应用。应用框架是一个应用程序的和基础,它为开发人员的开为提供了详尽的规范Android应用框架提供了所有API的方法。该框架提高了组件的重用性,减框架上尽情地扩展应用。Android2-1视图(Content允许应用程序开放接口,让其他程序其数据(Resource(String(drawable)和布局文件(Layoutfile)(Notification(ActivityActivity(Window对所有窗口的管理,如框(Dialog)等等(PackageAndroidAndroidAndroid2-2库BionicC最底层的C多(MediaAndroid系统多,为Android系统提供了多种音及格式的支持。2DAndroidOpenGL3D(vector第二部分Android运行时环(AndroidRuntime提供了Java(CoreLibraries)和Dalvik虚拟机(DalvikVirtualMachine。该Java库提供了Java的API。Dalvik虚拟机是通过Java实现的。Dalvik虚拟机通过将.class和.jar文件转换为.dex.dexDalvik的空间和计算速度下正常顺畅的运行因此Dalvik虚拟机非常适合运行在移动终端中。LinuxAndroid系统基于Linux2.6内核,内核层提供了一些关于终端硬件设备的支持,Android四大AndroidAndroidActivityActivity(Button(TextView每一个具体的Activity都是Activit(android.app.Activity的子类各个ActivityActivity。Service也是Android开发较为频繁使用的组件。Service与Activity的区别在于,首先,Service没有用户界面,它不像Activity那样能够通过各种控件、界面元素的组合来给用户直观的展现;其次,Service运行于系统,而且它不能自己运行,需要通过Context.startService(Context.bindService()方法启动服务。BroadcastBroadcastReceiver主要用于对系统发送的广播进行接收、过滤和响应[14]。AndroidBroadcastReceiverActivityService一种的状态只有符合条件的广播发送过来时BroadcastReceiver才会被激活去行一些指定的操作。ContentContentProvider提供一种应用间的数据共享机制。ContentProvider帮助应用向外部提供数据的接口,使得应用间具有关联性,方便用户使用。DES加技对于一些企业级别的系统,如系统,它们需要在互联网上传输关于公司、客户等一些企业内部信息这些信息如果以明文的形式传输势必会有被窃取的性[15]。因此,系统需要对客户端与服务器之间交互的数据进行加密,保障数据的安全性。本课题的系统将采用一种安全、操作简便的加方法DES(DataEncryptionStandard,数据加密算法)是一种世界标准的加密形式,同时针对系统由于客户端与服务器之间传递的数据属于公司具有私密性;同时,这些数据由于涉及到某些订单、报表的具体内容,数据量可能会很大;再者,、系统客户端为移动终端其处理能力能力相对于PC机要弱因此对于加算法,应该选择一种形式简单,易实现、计算资源少、速度快的算法。而DES加算法具有上述特点,因此本课题采用DES算法来实现系统内数据的加功能。、Java对象序列化技在实现系统的时候,应该为客户端与服务器提供一种能够方便进行数据封装和解析的Java对象写入字节流的过程;接收到字节流,将其恢复为对象的过程,则是反序列化。XML、JSON、JaaJavaJavaSerializable本章本章主要阐述了系统所涉及相关的技术。介绍了客户关系管理的相关概念和理论。对Android操作系统做了简要说明,阐述了Anroid平台的特点,及其体系架构、组件等相关内容。然后对系统所使用到的DES加密技术做了简要介绍。最后对系统客户端与服务器之间交互数据的封装方法——Java对象序列化进行了说明。3功能需求分客户管理功在本系统中,客户管理功能是最基本的功能,其余各个功能都将围绕着“客户”这一是企业产品或服务的顾客,同时也可以泛指企业的内部员工、合作伙伴等等。而且,“客户”这一概念也并非仅指代一个自然人,它可以指代一个公司,一个团体等等。3-2系系搜索客<<extends查看客户相关对查看客快速联客户管编辑客创建交新增客用由于“客户”对 系统是非常重要的元素,因此,本系统在客户端中将不提供户的删除功能,将该功能于系统管理人员联系人管理功系统中客户是一个非常重要的环节它强调企业应该与客户时刻保持沟通,系添加联系编辑联系查看联系人相关对查看联系联系人管快速联用删除联系创建行查询联系系统中的联系人为与用户直接交流的对象。他可以属于一个“客户,也可以独立存在。在系添加联系编辑联系查看联系人相关对查看联系联系人管快速联用删除联系创建行查询联系3-3对于已添加入系统的联系人,系统允许拥有特定权限的用户对联系人信息进行修关对象信息主要包括该联系人相关的行动、线索和联系人在系统中的关系信息,通过关系树()的方式呈现给用户线索管理功系新增线编辑线线索管查询线用查看线查看线索相关对转化为客线索转转化为联系系新增线编辑线线索管查询线用查看线查看线索相关对转化为客线索转转化为联系用户可以查看线索详情,在查看详情过,系统允许拥限的用户对线索信值才能得以体现。因此,线索转化功能对于线索管理功能而言非常重要。系统为用户和联系人信息,用户可以通过该线索查看与之相关的客户和联系人的详细信息。销售订单管理功所示。系系添加订单新增销售订编辑销售订关注销售订 查看客 查看业务销售订单管查看销售订查看订单用查询销售订查看销售机查看附当用户为该订单选择了客户后,系统就允许用户为该订单添加订单行。订单行为订单关注的订单,方便用户对特定订单的。对于已添加入系统的订单,系统为拥有特定权限的用户提供了订单编辑功能,同3.1.5行动管理功系统的主要用户群为企业的业务人员,当业务人员将客户、线索等相关信息录入系统后,并不意味着业务人员的工作告一段落。相反,业务人员的工作因这些信息的总的说来,系统应该为用户提供对其行动的记录功能,使用户能够随时随地地查3-6系系新增行上查看行定行动管查询行查看行动相关对用编辑行编删除行3-6系统为用户提供了新增行动功能。用户通过录入行程相关信息则可添加行程。在录入信息过,用户需要确定该行动的起始、结束时间,以便用户及时的该行动。系统针对行动管理功能,还为用户提供了上传的功能,用户能够通过照相机拍照或者根据本地的将与行动相关的上传至服务器与行动关联,用户可以查看与其相关的所有行动信息。在查看过,用户可以查看与行动相关的对象信息,包括:线索信息、、销售机会信息。次上传的信息。系统还为用户提供了行动的编辑功能。用户可以对行动信息进行相应调整修改。用户可以在此更新自己的地理位置信息,可以修改和删除所上传的或者上传新的。3.1.6其他功系统处理为用户提供上述功能外,还为用户提供了销售机会管理、产品管理、知3-73-7非功能性需求分系统将从端到端业务处理响应时间、安全性以及易用性三个方面分别对系统的非3.2.1端到端业务处理响应时53.2.2安全对于系统,其数据都均为企业内部数据,包括企业信息、相关、订单信所以,在本系统中,对于所有在客户端与服务器之间传递的数据,都必须进行加3.2.3易用性用户对本客户端软件的功能、逻辑等方面的认识的难易程度。移动客户用户学习使用本客户端软件的难易程度。用户在使用时能够轻易地找到所要用的功能;界面应简单明了地将功能呈现出来,软件的使用手册也应该对每一步操用户对于本客户端软件操作控制的难易程度用户在使用时应操作简单方便系统客户端应该满足以上关于易用性的相关要求,提高用户体验。本章本章主要阐述了基于Android平台下的系统的需求分析,主要包括功能性求和非功能需求。对系统的各个功能进行了相应的说明并给出了用例图,重点分析笔者参与实现的功能同时针对在性能安全等方面进行了非功能需求分析和说明4系统架构设4.1.1物理结系统建立在Internet等Web技术的基础上,具有动态性、分散性等特点,因此,对于较差,事件响应速度较低。因此系统采用C/S模式进行设计开发。如图4-1所示。移动终
WLAN/ 移动应用服务
企 系图4-1某企业系统组成示由图4-1所示,用户使用移动智能终端,可以通过无线网络从指定的系4.1.2逻辑结MVC改变上层的结构细节不会对下层造成任何影响。系统客户端结构层次结构图如图4-2所示。表示层主要用于向用户展现客户端的界面信息,负责将传来的数据以友好的方式在本系统中,除了用Android自带的控件构建用户界面外,还需使用特定的控表示表示列图控业务逻辑用户管客户管线索管联系人管销售订单管销售机会管产品管行动管日程管知识库管升网络连通信服服定位服数数据数据非结构化数基础服务基础服务数据压数据数据封电子邮件服照相机接在本客户端中,业务逻辑层提供了对系统业务的处理,是整个系统架构中的该层还提供用户管理、客户端的更新等逻辑功能。业务逻辑层处于整系架构中的中间部分,位于表示层和基础服务层之间。它对于主要通过Activity来实现。在Activity中,它一方面展现XML定义的界面;同时它也通由于系统客户端基于Android平台进行设计开发在客户端中需要使用到Android虽然AndroidSDK提供了已定义好的使用Android相关设备的接口,开发者可以直接使用,但更好的方式是,在此基础上,根据系统业务具体逻辑实现,在相关接口外封装一层,定义适合于系统的接口。使开发时,接口调用更加方便,代码的可读性更高,也更方便。数据层提供对数据的的相关操作的接口。在本系统客户端中,包括结构化数(数据库)和非结构化数据(文件、等等。该层提供了针对这两种类型数据的方式。Android开发平台提供了一种轻量级的数据库——数据库,同时也提供了对该SD4-3客户管线索管联系人管Android客户端软Java对Android客户端软Java对象序列移动应用服务异步处数据转换处WebServce+应用服务登 客 线销售机 销售订数据引擎、ADO.NET数据服务数据仓销售订单管Anroid客户端软件。系统最上层通过Android开发技术为用户提供友好、易操作应用服务器。该层主要负责提供各个功能模块的业务处理逻辑。持久化层。提供对数据的和方法系统主要模块设4.2.1客户模否限否限是否是 否是 是 人信 人信4.2.2联系人模 系人 系人模否否是 是 否否是 是创建行删除联系编辑联系4-5由图4-5可知,当用户进系人模块后,客户端将向用户展现与其相关的联系人列在联系人列表处(主界面列表、或者搜索结果列表,用户可以进行联系人详细信息的查看操作,客户端将联系人的所有信息展现出来,包括、职位、等等。用时将自动带系人信息;用户还可以查看当前联系人的相关对象,包括:行动、线索、关系树、客户。以上操作均需要对用户的权限进行验证。4.2.3线索模否否是否否是 是 是添加线查询线进进入线索模是是是 否是是否已转否删除线编辑线保存线4-64-6分类查4.2.4销售订单模列列表更销售订单列订单列进进入销售订单模否查看销订单列是 是显示查结否查看销机是 是订单详编辑订注销售订查看附查看客录入订信是否添订单 否用户进行查询订单操作时,系统为用户提供了两种方式进行查询。式是分之一进行查询另式则是关键字查询用户可以输入一个或者多个关键字进行查询。行通信,通信方式包括:、座机和电子邮件。用户可以查看与当前订单相关联的本客户端销售订单功能中需要显示用户所关注的订单列表该列表保存于本地,Android提供了轻量级的关系型数据库用以保存结构化数据。该数据库高效、4-14-18是id作为向服务器请求订单详情4.2.5行动模4-8进入行动模进入行动模否否是上上删除行 查编辑行删除行 查编辑行编定保存行客户端结构设本课题在对客户端设计过,将针对面向企业的Android应用软件设计具有一定复件的各个功能模块逐个开发,这种开发方式,既需要开发使用Android基本API所能实现1)PC2)目前绝大多数的企业移动应用软件其内部所涉及的数据都是与企业或客户相关的数据,这些数据具有私密性,如果数据丢失或被窃取,则会给企业或客户造成不小的损失。因此,对于企业应用软件,应该提供一种对据的保护,尽可能地降低数据被窃取的可能性,或者降低因数据丢失或被窃取所造成的损失。不现实的。所以,对于企业移动应用,应该提供法对客户端与服务器之间交互的数基于以上共性,本文所企业移动应用软件结构图如图4-9所示,客户端结构分增多和改善。这些组件,可以通过xml的方式进行描述和设计,而更好的方式则是在xmlModuleModule的实现提供了相关对象和方法,包括器Listener、Handler等。各个Module将基于据处理,将得到的数据封装、加密等以完成对数据格式的转换,最后调用通口实现向Java对象序列DES加通信模GZip解压GZip压Java对象反序列可复用UI组件可复用UI组件4-9DESGzip压缩操作,另一方面,从服务器获取数据要经过解压缩、DES以及反序列的过JAVA理的源数据。用。根据系统传输数据的特性,将经过数据封装后得到的字节流封装成http数据httppost4-10客客户UI框器数据销售订销售机线客服务主界Wi-图4-10系统客户端结构本系统客户端结构架构中UIUIAndroid各个功能模块在BaseActivity的基础上负责各自业务逻辑处理,同时根据业务需要,调用移动终端通话应用(ephony、短/彩信(SMS/MMS、无线网络(WI-FI/GPRS)等相4.5本章本章主要说明了系统客户端的设计,阐述了系统的物理结构和逻辑结构,并通第5章系统客户端的实本章针对系统客户端,基于软件设计工作与成果,阐述了客户端界面元素、底层客户端界面元素以及底层功能5.1.1共用组件的实Android例来说明共用组件的实现方式。在系统中,较多模块都使用到了列表样式的布局。因此,客户端将该样式实现为5-1否否List<View>List<View>将itemviews是5-15-25-2列表内部每个item:layout_list_item_single_line.xml。该布局应尽可能item5-3左 左侧文
中间文(主 中
右侧文 右5-3itemlayout:layout_group.xml,item针对以上两个布局文件,在工建立两个控件类,用以与上述两个控件相关联。而layout_list_item_single_line.xmlandroid.widget.LinearLayout。ListItemSingleLineitemImageViewleftImageView,rightImageView,middleImageView;item中左侧、右侧和中间的;TextViewleftTextView,rightMainTextView,right2TextView;itemListItemSingleLinefindViewByIdxmlListItemSingleLine类提供对点击事件的支持。由于item继承于LinearLayout,则setOnClickListener当用户点击某item时,该item的背景会发生变化。这种依据用户点击事件而更改背景的方式是Android开发过较为常用的界面处理方法。针对列表控件中item的不同itemitemitem5-4112345-4itemitemGroupLayout5-15-1GroupLayoutitem,itemGroupLayoutitem,该item既非第一个也非最后一GroupLayoutitem,item对于上述四种item背景布局,需要定义该控件未被点击和被点击时两种状态下的背景。如对于样式1,其两种背景为:list_item_bg_first.xml(未点击时、list_item_bg_first_pressed.xml(点击时corner_list_first_item.xmlAndroid(selector)加以实现。Selector(state_enabled)时,将背景更换为list_item_bg_first_pressed.xmlGroupLayoutlayout_group.xmlandroid.widget.LinearLayout。GroupLayoutlayoutTextViewgroupTitleTextViewLinearLayoutgroupContentLayoutitem同样通过调用findViewById方法将以上申明的对象与xml中定义的控件相关联。GroupLayout5-25-2setGroupTitle(String5.1.2通用父类——BaseActivity的实BaseActivityModule相关器、以及通过Handler实现对状态结果的相关操作。BaseActivity5-55-5BaseActivityBaseActivity求的具体实现细节,其子类可以直接调用该方法实现发送请求。方法名为:requestVO,所需要传入的参数为:Stringurl: OnVORequestedListenerlistener:器,用以请求状(Thread响应的工作,并在获得服务器响应后,通知相应模块进行处理。请求方法为:requestVOFromServer(url,ponentInstancesVO,headerList);5-6在调用requestVO方法后,客户端将等待服务器的响应。在获取到服务器返回的voHttpResponse后,建立一个消息对象(Messagemsg)并将voHttpResponse添加进该消象中。该消息对象通过Handler机制传递给相应的器,器根据消息以及voHttpResponse开参数对处理是否 处理是否 是结客户端启动了一个子线程进行服务器请求的操作。但由于Android平台中只允许主线UIUI。因此,需要一种消息机制来实现界面的更新操作。AndroidHandler循环、消息发送和消息处理三个部分组成。列建立一个循环。如果队列中有消息,主线将消息去除并通知相应的Handler处理;Android中主要通过Handler来实现消息的发送。在发送消息之前,需要定义消息。消息类为Message。申明Message对象(msg)后,可以为其设置标志和参数,主要包括消息类型(Message.what)和消息内容(Message.obj。BaseActivity中所定义的消息类型5-3VOHttpResponseMessage.obj在设置完消息内容后,直接调用Handler中的sendMessage(Messagemsg)将消息发送5-3HandlerToast在申明Handler对象时,需要实现对消息的处理方法。实现方式为重写Handler中的handleMessage(Messagemsg)方法。在该方法中,通过msg.what属性实现不同消息区分,BaseActivity中,申明了针对请求状态和网络状态的器接口,以供其子类实现。5-7+onVORequested(invo:+onVORequestFailed(invo:图5-7器接口类在Module中,要实现对请求状态和网络状态的,可让Module类直接实现上述两BaseActivity使用Java多态的概念在BaseActivity中为器接口创建对象并在HandlerHandlerBaseActivity5-45-4BaseActivityreadPreference(StringSharedPreferences工具方法用来默Preferenceskeyxmlname,Stringkey)SharedPreferences工具方法用来指PreferenceskeywritePreference(Stringkey,Stringvalue)SharedPreferencesPreferencesxmlname,Stringkey,StringSharedPreferencesPreferencestoastMsg(StringToast信息工具方法用于通过Toast方式显HandlerHandler5.1.3模块创建和初始Module5-85-8ModuleModule:系统中每一个特定业务为一个ModuleModules:ModuleMainBoardActivityActivityGripter:Adapter类,实现主界面数据与界面的连接Module5-55-5ModuleActivity模块素材id模块素材于项目工/res/drawable/下,在项目中各个素材对应一个id号。模块素材id用于九宫格主界面中模5-9开显示功能模结5-9ModuleModule底层功能提供Modules类,用于加载所要实现的模块。Modules类创建一个List<Module>列表,用于保存所有的模块。方法为:loadModules(List<Module>各个Module的创建和添加必须在程序启动开始时进行即在应用处执行模块的设置操作。Android应用程序的并非MainActivity,而是Application。packageApplicationMainActivity本系统设计并实现了继承自Application类的App类。App类所负责的任务就是对应ApponCreateModulesModules.loadModules(moduleList能模块的呈现出来。主界面类为MainBoardActivity。该类使用Android提供的GridView控件实现九宫格界面通过将App类的moduleList中所有的模块添加进GridView中,使客户端主界面显示所有模块的。5.1.4数据封装的实在系统中,将客户端与服务器之间通信的数据封装为对象,以序列化的形式实现 ponentInstanceVO对象用户描述一个对服务器的请求它封装了该请求的模块、 ponentInstanceVO的主要属性如表5-6所表5- ponentInstanceVO主要属id组件id号指代该请求数据哪一个功能模n在ponentInstanceVOActionsActionsAction.setActiontype(Stringm_actiontype)。该存多个行动。当确定请求行动后,ponentInstanceVO调用setActions(Actionsactions)VOVO对象需要确定相应的组件,确定该请求行为属于哪一个组件。ponentInstanceVOponentid(Stringponentid)方法将组id添加进VO请求中另一个重要的元素即为请求的参数。本系统提供了对参数的描述类。ParamTagVOParamTagVOParamTagVOParamTagVO定义(ArrayList<ParamTagVO>params定义好所有的请求参数后,ReqParamsVO类的实例添加该参数数列,然后Action对象ReqParamsVO5-10tpe5-10VOponentInstancesVO5-11ByteArrayOutputStreamObjectOutputStreamwriteObject所示。开开 结传入数 开开结关闭输入对于传入反序列化方法的字节流数据,使用输入流ByteArrayInputStream和ObjectInputStream对其进行封装,然后通过调用readObject方法,从输入流中对象DES(ECB(CBC对密文进base64编认初始化工作模式是不同的,因此,实现时为了和服务器端加保持对应一致,应逐个进行设置,出于对加的效率以及抗等因素考虑,本系统采用加密块链模式CBC模式。CBC对密文进base64编++加加++加加明文区块明文区块i-密文区块密文区块i-密文区块明文区块明文区块密文区块密文区块密密文区块i=明文区块i⊕加密(明文区块i-开 ecSpeciv开 ecSpecivKey 创建 其工作模通过密钥工输入明生成密是生成密是否需base64是否结DES加密中,密钥是加的关键所在,它作为一个输入参数,在加过充当(SecretKeyFactory)generateSecret(keySpec)方法获取密钥。然后通过调用cipher.init(Cipher.ENCRYPT_MODE,key,iv)方法进行初始化工作,最后通过cipher.doFinal(data)base64base64输入密开是否需base64是输入密开是否需base64是否执 作生成明对密文进base64编 结结base64DESDESEncrypt。该类提供两个工具方法,即加密方法encode和方法decode。GZipGzip高数据的性和数据的传输效率。Java提供了良好定义的接口支持GZip压缩和解压缩。为方便开发人员使用,将向上GZIPInputStreamread5-75-7byte[]byte[]5-165-17结结图5-16数据封装流程 图5-17数据解析流程5-85-8objbooleanisEncrypt:是否 press将所需要封装的对象转5.DataProcessOrderorder:byte srcbooleanisEncrypt:是否需要;intencryptiontype:加解booleanpress:是否DataProcessOrderorder:对象源byte数组的解将封装好的数据解析为提供、解压缩的开对于方法提供的加类型,可选项为需要base64编码的加类型不需要base64编码的加类型对于方法提供的加、压缩解压缩的顺序,可选项为先加密后压缩、先解压缩后; PRESS_FIRST:先压缩后加密、先后解压缩5.1.5通信模块的实HTTP5-18V-- nseHeaders:-statCode:5-18VOHttpHandler(requestVOFromServerVOHttpResponseHTTP(DefaultHttpClient)间等等。本系统使用POST方式实现HTTP连接,因此,需要创建HttpPost请求对象。该对象PostHttpPost底层功能所提供的通信操作对外的接口将接收调用方传入的参数,其中就包括Post请求的头信息。头信息通过Header类实现,Post请求直接调用setHeader方法实现头信请求参数在Http中以Entity(实体)的方式封装。5-95-9ByteArrayEntityrequestsetEntity在将上述参数等数据准备并设置好后,client执行execute方法向服务器发送请求,HttpResponse5-105-10HttpVOHttpResponseVOHttpResponsevoHttpResponse=ponentInstancesVO,客户端主要模块的实出于对企业知识保护的目的,本文中所有关于客户端界面的效果图均隐去5.2.1客户功能模块的5-195-19CustomerModuleModule,ModuleCustomerMainActivity:客户模块主类,继承BaseActivity,用以显示客户WAEXLoadListView:自定义控件,继承ExpandableListView,具有上下滑动CommonExpandableListItemItemCommonExpandableListItemViewItemCustomerDetailActivityBaseActivity,CustomerCreditStatusActivity:继承BaseActivity,用以实现客户信用状WADetailView客户列表为客户主界面中的主要元素,客户主界面为CustomerMainActivity,该ActivityBaseActivity5-20。获取客户列获取客户列表请client显示客户列5-20用户列表使用getCustomerList()函数获取列表参数,通过VOHttpHandler类中requestVOFromServer()方法向服务请求数据,voHttpResponseAndroidAdaptetAdapterAdapterAdapter,使其能够将添加并加以显示。WAEXLoadListView继承自ExpandableListView,定义继承自BaseExpandableListAdapter的类CommonListAdapter来实现WAEXLoadListView控件的数GroupChild,CommonListAdapterGroupChildCommonListAdapter5-115-11CommonListAdapterintGroupListGroupListGroup无根据GroupList内容确定GroupintGroupintGroupconvertViewGroupgroupPosition获取相应的Group数据并添加到GroupViewViewGroupint List<List<Object>>的方式int数据。该方法从ChildList中获取指定位置的数int获取指定Group中的intintChildintgroupPosition;intViewViewGroup构建Child界面和数据的方法。通过convertView为该ChildgroupPosition和childPosition从ChildList中提取相应的数据添加到Child对WAEXLoadListView中数据进行获取及构建成符合Adapter规定的格式。WAEXLoadListView通过调用setAdapter方法完成与Adapter的连接,从而实现列表界面ActivityIntentitemitemCommonListAdaptergetChildViewgetChildViewconvertViewChildsetOnClickListener方法为其设置点击事件器,并实现器回调函数的具体内容在onClick方法中,创建Intent实例并确定所要跳转到的Activity,此处为客户详情Activity:CustomerDetailActivity,并通过intent实例调用putExtra方法为此次跳startActivity(intent)方法即实现了CustomerDetailActivityActivityIntentActivity的跳转。通信方式包括:拨打座机、拨机、以及发送电子邮件。5.2.2联系人模块的实5-21ContactModuleModule,ModuleWAEXLoadListViewWADetailView 5-21ContactMainActivityBaseActivity间因素对联系人进行分组,包括:本周、上周、更早。在主界面联系人列表处同样使用WAEXLoadListViewActiviyquestOfMainActivityAppend置请求相关参数,并返回ponentInstancesVOrequestVOAdapterWAEXLoadListView该控件名为CommonExpandableListItemView,该控件主要用于可扩展列表(ExpandableListView)5-22d5-22listIcon:ImageViewitemupText:TextView,itemdownText:TextView,itemrightDownDescription:TextView类型,辅助文字说明,位于下层,一般不rightarrow:ImageView类型,主要用于显示指向右侧的“箭头”,说明item在使用上述控件进行联系人列表项界面设置时,listIcon表示联系人图标、upText显示联系人、downText显示联系人所属公司、rightarrow显示右向箭头,对于主联系人标识,采用rightDescription进行表示。将其背景设置为主联系人标识,并将联系人详细信息会将联系人的、是否为主联系人、各种、所属公司以及用户点击联系人的即可进行快速的通信,通信方式包括:拨打座机、拨机、、发送邮件等。快速通信使用Intent类,通过指定Intent的行为,并设置相关参数,调用Android提供的、等功能模块的接口加以实现。5.2.3线索模块的实5-23ClueModule:Module,ModuleCommonListAdapter:AdapterClueDetailActivityActivity,BaseActivity,实现线索详WADetailView5-23ClueActivity间因素,将线索划分为本周、上周、更早三类线索。ExpandableListViewcreateClueListVOWtihRequestOfMainActivityAppend客户端调用requestVO方法发送请求。通过所设定的器,在获取服务器返回的线索列表信息后,进行相应的数据解析;提取出列表信息,通过继承自Base的CommonListAdapter搜索界面使用ListView控件显示线索查询历史记录。记录通过SharedPreference保现对历史记录的和添加。能。可以进行的快速通信包括:拨打座机、拨机、和发送邮件。线索详情下方提供了查看线索相关对象的,可以查看联系人、客户和行动5.2.4销售订单模块的5-245-24OrderModule:ModuleModuleOrderListActivityActivity,BaseActivityWAEXLoadListViewOrderListViewAdapter:AdapterOrderAttentionListViewAdapter:Adapter类,用于实现关注订单列表数据OPListItemViewDataWADetailView EmployeeDetailActivityActivity,BaseActivity,用于AttaentListActivity:附件列表Activity,继承BaseActivity,用于显AttaentActivity:附件Activity,继承BaseActivity,用于显示附件信OrderRowActivityActivity,BaseActivity,用于显示订单行OrderRowAdapter:AdapterOrderExecuteActivityActivity,BaseActivity,用于显示OrdersListActivityBaseActivity时间分组方式进行订单列表的显示。订单列表使用可扩展列表控件WAEXLoadListView实现。以各订单的时间作为Group,Group下的Child。OrdersListActivity通过调用createGetOrderListRequestVO生成订单列表请求idparam客户端通过调用requestVO方法将请求发送给服务器,同时建立器以获取服务器的响应。通过器的回调函数,对服务器返回的数据进行解析。在提取出订单列表数据OrdersListViewAdapterCommonExpandableListItemView5-125-12OrdersListViewAdapter通过getGroupView方法设置Group界面及其数据Group界面使用已定义好的界面布局文件R.layout.layout_list_item_title,并将Group数据添加进对应的控件中。对于Child,OrdersListViewAdapter调用getChildView方法,根据表5-12所的界面控件与订单信息的对应关系,将订单信息添加到界面中。groupCode其对应的参数值分别为:日期:date;客户:customer;业务员:salesman。groupCodeWAEXLoadListViewGroupGroupGroupAndroidDATABASE_NAME= DATABASE_TABLE= OrderDatabaseUtil在该类中,创建了数据库的类及其实例:DatabasemDb。该类提供了针对数据库的增删改查等操作。同时,创建DatabaseHelper类及其实例:DatabaseHelpermDbHelper。该类继承自Android提供的数据库帮助类OpenHelper。DatabaseHelper类重写了OpenHelper中的onCreate方法用于根据传入的SQL语DatabaseHelpergetWritableDatabase获取数据库对象并赋予DatabasemDb,用以实现其他操作。OrderDatabaseUtilContentValuesputmDbinsertdeleteContentValues
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《人体解剖生理学》2023-2024学年第一学期期末试卷
- 淮阴师范学院《篮球》2021-2022学年第一学期期末试卷
- 淮阴师范学院《装饰雕塑》2022-2023学年第一学期期末试卷
- 黄山学院《电磁场与电磁波》2022-2023学年期末试卷
- 淮阴师范学院《伴奏与弹唱》2023-2024学年第一学期期末试卷
- DB6505T188-2024花生病虫害绿色防控技术规程
- 关于进一步做好全员安全生产培训工作的通知修改版
- 机器人在安全监控服务的创新考核试卷
- 污水处理中的藻类光合作用技术研究考核试卷
- 化学纤维在人力资源招聘等行业的应用考核试卷
- 建筑行业会计基本处理课件
- 三年级上册美术课件-第4课 连环画 ▏人美版 (共15张PPT)
- 光州事件与韩国的民主化课件
- 新人教统编版四年级上册道德与法治 第9课 正确认识广告 第2课时 教学课件
- 收取执行款银行账户确认书
- 超星尔雅学习通走近核科学技术章节测试答案
- 初中艺术鄂教七年级上册(2022年新编) 漫步艺术长廊舞剧欣赏《永不消逝的电波》教学设计
- 水电厂检修标准化作业流程图
- GB 18384-2020 电动汽车安全要求
- 腹股沟斜疝护理查房ppt
- PMC生产计划与物料控制实务课件
评论
0/150
提交评论