版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DesignandImplementationoftheInternalEnterpriseSoftwareof TerminalbasedonAndroidCandidate:SangSupervisor:DaSchoolofMechanicalEngineering&AutomationBeihangUniversity,Beijing,并且降低交流时间成本和设备成本已经成为企业提高自身效益的重要途径。机应用解决企业员工的交流需求成为一个可行的方案。当前的可携带智能系统以Android与IOS为主,其中Android占据了80%的智能市场份额,拥有庞大的用户的企业内部社交应用。的主要工作如下。详细地分析了企业员工的业务需求,对企业内部社交应用进行了架本项目集成了环信即时通讯云V3.0EaseUI,开发容易、时间短,性能稳定。Thedevelopmentofinformationerabringsabouttheexpansionofthedemandforinformationexchange.Enterpriseinternalintheincreaseofemployeeinformationexchangealsoneedtoreducethecostofinformationexchangebetweenemployees.Toimprovethecommunicationefficiencyandquality,reducethetimecostandequipmentcostofenterpriseshave eanimportantwayforenterprisestoimprovetheirownefficiency.Enterpriseemployeesatanytimeandcetocommunicatetheneedsof devicesandtheperfectfit,sotheuseof phoneapplicationstoaddresstheneedsofenterpriseemployeestoexchangeneeds eaviablesolution.ThecurrentportablesmartphonesystemwithIOSandAndroidbased,whichaccountedfor80%ofAndroidsmartphonemarketshare,hasahugeuserbase.ThispaperselectedasthestartingpointofAndroidequipment,theringletterbasedonSDK,followtheMVCdevelopmentmodel,thedevelopmentofabusinessorientedinternalstaff,tosolvethecommunicationneedsbetweenemployees,reducethecommunicationcost,enterprisesocialnetworkingapplicationsimprovecommunicationefficiency.Themainworkofthispaperisasfollows.theprojectbackgroundandprojectdevelopmentintheneedtointroducetherelevantdetailedysisofthebusinessneedsofenterpriseemployees,theproposedenterpriseinternalsocialapplicationofthearchitecturedesignandmoduledivision.Theenterpriseinternalphonesocialapplicationsystemisdividedintosevenimportantmodules,whichareregisteredloginmodule,mainframemodule,contactmodule,sessionmodule,groupmodule,settingmoduleandothermodules.thisprojectintegratestheringletterinstantmessagingcloudEaseUIV3.0,developmentiseasy,thetimeisshort,theperformanceisstable.Inthepartofsoftwaretesting,thispapercarriesonthefunctionaltesttoeachkeymodule,andtheimplementationofthesoftwareandtheconsistentwiththeexpectedresultsareverifiedbythetest.Atpresent,theapplicationhasbeenintheenterprise applicationtformontheline,theoveralloperationisgood,downloadsarerising.Alotofusershavealsobeenusedafterthefeedback,andputforwardvaluablesuggestions.Theseideasprovidethebasisforthecontinuousimprovementoftheapplication.:Android,Enterpriseapplication,social, 第一章绪 项目背 Android智能设备系 国内社交应用的发展概 第二章相关技术介 Android平 Android基本组 Android数据持久 MVC设计模 环 本章小 第三章系统需求分 3.1.1登录功 群功 兼容 易用 本章小 第四章系统概要设 基于MVC模式的架构设 模块划 数据方案设 4.4.1数据库SharedPreferences本章小 第五章系统各功能模块详细设 5.1登录模 5.1.2功能设 会话模 群模 设置模 其他模 全局设 本章小 第六章系统实现中关键问题及解决方 第七章系统测试及实现效 本章小 第八章总结与展 总 展 参考文 致 第一章Android拥有庞大的用户群与广阔的市场前景Android系统智能的年出货量为10.59亿部,同比增长32%。出货量为1.927亿部,同比去年增长25.6%。Android智能的年出货量是IOS智能的年出货量的10倍,Android智能2014年的出货量还在实名认证的网络交友平台出现之后,SNS这个名词进入人们的视野用户,并且在这个系统里,网民可以查看自己的和关联用户的"。50003814年,互联网用了4年,随着智能的普及智能的及时性与随身性为SNS的发展搭建了新的平台,使企业进行更实时、有效的沟通与协作。以群和聊天为,促进群的建立,能够提高,件,SNS已经成为目前功能的一个热点社交已经成为国内用户不可缺少的交,,,显示了国内社交应用的分布,国内社交应用市场纷杂,内容丰富,竞争激烈。在如此多的社交应用中,拥有最多的用户,截止2014年底,国内用户量已经达到5亿,2011121讯服务的免费应用程序,支持跨通信运营商、跨操作系统平台通过网络快速发送免平台"、"语音记事本"等服务插件。的语音技术与传输技术,彻底了文字交流的模式,使得交流更加的快捷方便,形象准确。的离线消息推送功能完全契优越化增强了之间的联系。的网络反应速度特别快捷,这得益于他完善的网络时间,降低了系统的反应速度,提升了系统的资源开销。用户需要通过添加好友的好友的,这对于企业内部员工之间的交流很不方便。的实时交流系统实现了耗电量,离线请求等方面都着巨大的工作内容包括客户端功能模块中的登录模块、会话模块、联系人模块、群模块、设对的相关技术进行调研,结合开发周期与现有资源,与项目讨论,选按照客户端模块划分,独立完成登录模块、会话模块、联系人模块、群模块、设置模块;对软件实现过程中出现的问题设计解决方案;对功能模块进试 展性,功能为即时通讯。因此本章对平台,设计模式和常用的推送方案进行说明。Android是基于Linux开发的一款开源操作系统,对掌上设备如、平板等硬件API接口。AndroidAndroid为开发者提供通用的四大基本组件,分别是Activity、Service、ContentProvider和BroadcastReceiver。ActivityViewActivity负责响应窗口,保持界面状态以及通过Intent实现Activity之间的切换Service是可以在运行的程序,在功能上接近与剥离界面的Activity。Service无ContentProvider提供了应用程序间共享数据的一种机制对外了数据的内部的细节,提供统一的接口模型。共享的数据可以在文件系统、数据库、网络上或其他持久化方式。BroadcastReceiverAndroid可以对全系统范围内Broadcast进行过滤接受并响应。大部分广播都是来自系统的,比如开机、屏幕关闭、电池电量。应用程序也可以发送自己的广播通知,由进AndroidAndroid为开发者提供了多种方式对数据进行存取:内部、外部、SharedPreferences、数据库以及网络方式。开发人员可以根据系统需求来选择相应的方式。本应用软件使用了这些数据持久化方式对数据进行了缓存。、long、和String持久化保存到设备的上下文中。其本质是以Key-Value键值对形式在文件中。SharedPreferences适合简单的要求,常用来保存配置信息。在数据性方面,有四种设置方式实现不同的权限:MODE_PRIVATE、MODE_WORLD_READABLE 和MODE_MULTI_PROCESS。默认为InternalStroage:内部。允许直接将文件保存在设备的内部中,默认情况下,这是一个私有数据区域,其他应用程序和用户不能够它们。当用户卸载应用时,这些文件将被删除。在数据性方面,有三种设置方式实现不同的权的使用该设备的用户和其他应用程序可以读修改和删除外部的数据在数据保。数据库:一款轻型的关系型数据库,支持SQL语言,适用结构化的数据数据库支持的数据类型有五种:NULLINTEGERREALTEXT、BLOB。AndroidRuntime集成了因此每个应用程序都可以使用其进行搜索和数据管理。在数据性方面:在应用程序中建立的数据库对于程序内部都可以,但对于外部应用程序是不可的。。(Model(Model(请求;当数据有变化时通知对此数据感的View。(iewModel变化时,它作出相应变化。(ControllerView来展现数据。在现代的图形交互相关的设计模式里,MVC设计模式几乎是在图形交互处理上的AndroidMVCXML使用20134月,是一家全通讯能力云服务提供商。产品包括全球最大的即时通讯云PaaS平台——环信即时通讯云,以及全球首创的全智能云平台—环信移动PaaSV3.0SDK和通讯协了更好的扩展性,将支持的对接和设备同步场景。SDK进行即时通讯开发,缩短了开发周期,节约了开发成API如下:环信SDK类1)SDK初始化:EM2)账号:EM.getInstance().createAccount(name,pwd);EMChatManagerEMChatManagerchatMgr=EMEMContactManagerEMContactManagercontactMgr=EMEMGroupManagerEMGroupManagergroupMgr=EMEMChatroomManagerEMChatroomManagerchatroomMgr=EMAndroid平台,MVC架构和MVCMVCAndroid系统中的应用;详SDKAPI。通用功能包括登录模块、联系人模块、会话模块、群模块、设置模块。3.1.1登录功的会话详情页面。在会话详情页面可以实现语音、、文字等方式的聊天。Android系统版本为:4.0、4.1、4.2、4.3、4.4、5.06.0。兼容的屏幕分辨率为 *720、800*4803和可恢复性,压力测试中,应用的率应小于1%。MVC模式的架构设计、系统包设计、模块划分和数据方案设计AndroidAndroidSDK生变化后依据通知反馈到视图层进行展现;数据层包括网络数据,SharedPreferences数4-1Figure4-1architectureMVC4-2所示。model模型;controller控制层 应用界面相 存放fragment 数据模型 数据对象封 数据库操作 数据 相关工具 依据需求将应用程序分成七大模块,分别为登录模块、主框架模块、联系人模图4-2Figure4-2Module图4- Figure4-3Callrelationshipbetweenmoduleand数据方案设数据库数据库/数据库/ 用户账号建表语 用户账号表操作用户/4-4Figure4-4TheoveralldesignoftheSharedPreferencesSharedPreference与业务无关,只是单纯的保存数据,因此将SharedPreference抽取成工具类,方便和以后其他项目使用。publicclassSpUtilsprivatestaticSpUtilsinstace=newSpUtils();privatestaticSharedPreferencesmSp=null;publicstaticSpUtilsgetInstace(Contextcontext){if(mSp==null)mSp=}return}//保存publicvoidsave(Stringkey,Objectvalue){if(valueinstanceofString){mSp.edit().putString(key,(String)}elseif(valueinstanceofBoolean){mSp.edit().putBoolean(key,(Boolean)value).commit();}elseif(valueinstanceof Integer){mSp.edit().putInt(key,(Integer)value).commit();}} publicStringgetString(Stringkey,StringdefValue){returnmSp.getString(key,defValue);}}publicbooleangetBoolean(Stringkey,booleanreturnmSp.getBoolean(key,}publicintgetInt(Stringkey,intreturnmSp.getInt(key,}}本章依据系统需求分析,决定软件架构采用MVC的设计模式,依据此架构对程序进行了系统包的划分和设计,将程序划分为登录模块、主框架模块、联系人模块、 本章主要介绍基于Android的移动社交软件的详细设计部分,这里主要分为5.1登录模5-1Figure4- epageflow(3(3)
5-2Figure5- epageeffect后去环信服务器创建用户账号,最后,提示成功还是失败。图5-3功能流程Figure5-3Registerfunctionflow显 开
5-4Figure5-4Loginfunctionflow
5-5Figure5-5LoginpageeffectRadioGroup+RadioButton+Fragment的方式搭建。根据用户点击RadioButton 否 5-6Figure5-6Flowchartofmainframe
5-7Figure5-7Mainframeeffect点击顶部的“+”号按钮可以实现跳转到添加好友页面。在代码中需要该“+”号的点击该好友邀请条目的点击。的点击。idid转换为对应的联系人。然后把获取的联系人信EaseUI提供的方法进行刷新联系人列表页面。5-8Figure5-8Contactlistpageflow(3)
5-9Figure5-9Contactlistpageeffect 添加按钮:首先 添加按钮的点击 ,然后联网调用
getName添加好友") 5-10Figure5-10Addfriendspageflow5-11Figure5-11Addfriendspageeffectlistview进行实现,显示的数据来源于本地数据库中的所有邀请信息,并将获取的邀请。。(2)5-12Figure5-12Informationflow(3)
5-13Figure5-13InviteinformationlistpageeffectEaseUIEaseConversationListFragment,就可以显示调用EM.getInstance().chatManager().addMessageListener,并在onMessageReceived()方法中调用EaseUI.getInstance().getNotifier().onNewMesg(list);获取
5-14Figure5-14Sessionlistpageflow5-15Figure5-15SessionlistpageeffectEaseChatFragment()id和会话类型(包括单聊和群聊)Fragment替换到当前要显示的页面布局上。 退群广播,如果接收到的退群广播信息与当前用户的id创建会话的会话页面 携带群id获取传递过来的环信id否是 如果当前的环信id
5-16Figure5-16Sessiondetailsflow5-17Figure5-17Sessiondetailspageeffect群列表主要采用listview和listviewlistviewlistviewlistviewListviewlistview中,同时连接网络去环信5-18Figure5-18Groupmoduleflow
5-19Figure5-19Groupmoduleeffect面e,groupDesc,memberses,reasonoptions);5-20Figure5-20Newgroupflow5-21Figure5-21Newgrouppageeffectlistview和保存按钮实现。如果是该群中已经存在的联BaseAdapter适是否选择联系人是通过,Listview条目的点击实现的。当点击了listviewitem的数据并将数据一并跟新。最后刷新数据。intent返回到上一个页面。
5-22Figure5-22Groupcontactselectionfunctionflow5-23Figure5-23Groupcontactselectionfunctioneffect
5-24Figure5-24Groupdetailsflow5-24Figure5-24Groupdetailseffect
er()close()Figure5-25Setmoduleflow5-25Figure5-25SetmoduleeffectprivateExecutorServiceexecutorService privateExecutorServiceexecutorService publicExecutorServicegetGlobalThreadPool(){return}全局设全局主要包括联系人相关信息变化的和群相关信息变化的UserInfo(hxid),UserInfo(hxid),mLBM.sendBroadcast(new}publicvoidonContactDeleted(Stringhxid)privatefinalEMContactListeneremContactListener=new{publicvoidonContactAdded(Stringhxid)mLBM.sendBroadcast(new}publicvoidonContactInvited(Stringhxid,Stringreason)InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setUser(newUserInfo(hxid));SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}publicvoidonContactAgreed(Stringhxid)InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setUser(newUserInfo(hxid));SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}//别 publicvoidonContactRefused(Strings)SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}群信息变化的里面实现的方法包括收到群邀请收到群申请群申请被接受、9个方法。privatefinalEMGroupChangeListenereMGroupChangeListener=EMGroupChangeListener()publicvoidonInvitationReceived(StringgroupId,StringgroupName,Stringinviter,Stringreason){InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setGroup(newGroupInfo(groupName,groupId,SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}publicvoidonApplicationReceived(StringgroupId,StringgroupName,Stringapplicant,Stringreason){InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setGroup(newGroupInfo(groupName,groupId,SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}publicvoidonApplicationAccept(StringgroupId,StringgroupName,Stringaccepter){InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setGroup(newGroupInfo(groupName,groupId,accepter));SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}publicvoidonApplicationDeclined(StringgroupId,StringgroupName,Stringdecliner,Stringreason){InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setGroup(newGroupInfo(groupName,groupId,SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}publicvoidonInvitationA ted(StringgroupId,Stringinviter,Stringreason){InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setGroup(newGroupInfo(groupId,groupId,SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}publicvoidonInvitationDeclined(StringgroupId,Stringinviter,Stringreason){InvationInfoinvitationInfo=newInvationInfo();invitationInfo.setGroup(newGroupInfo(groupId,groupId,SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}publicvoidonUserRemoved(StringgroupId,StringgroupName)}publicvoidonGroupDestroy(Strings,Strings1)}publicvoidonAutoAcceptInvitationFromGroup(StringgroupId,SpUtils.getInstance().save(SpUtils.IS_NEW_INVITE,mLBM.sendBroadcast(new}inviter,StringinviteMessage)InvationInfoinvitationInfo=newinvitationInfo.setGroup(newGroupInfo(groupId,groupId,inviter));Error:ExecutionfailedfortaskError:Executionfailedfortask> ception:ernal.ExecException:'command'D:\Progra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年增值税法立法进展与税率调整预期
- 上海立达学院《Android 移动应用开发》2025-2026学年第一学期期末试卷(A卷)
- 2026年矿泉水资源开采与旅游业融合发展模式
- 上海立信会计金融学院《安全防范系统工程》2025-2026学年第一学期期末试卷(B卷)
- 2026年公司部门职责划分与协作机制优化
- 2026年村卫生室结核病防治讲座
- 2026年施工现场成品保护管理办法
- 2026年演唱会突发事件处置预案
- 上海立信会计金融学院《AI 设计基础》2025-2026学年第一学期期末试卷(A卷)
- 大连东软信息学院《Android 应用开发》2025-2026学年第一学期期末试卷(B卷)
- 韦氏成人智力测验(完全版)
- 城市轨道交通光缆接续作业指导书
- 直肠癌柱状切除术的临床实践与体会
- GB/T 6075.1-2012机械振动在非旋转部件上测量评价机器的振动第1部分:总则
- GB/T 39165-2020电阻点焊及凸焊接头的剥离和凿离试验方法
- GB/T 15788-2017土工合成材料宽条拉伸试验方法
- GA/T 1442-2017法庭科学摹仿笔迹检验技术规程
- 基本习题及答案-量子力学
- 2015新版《建筑设计服务计费指导》
- 水利工程中鱼道设计的工程伦理思考课件
- 高压输电线路施工的环保水保措施
评论
0/150
提交评论