基于安卓的名片社交APP的设计及实现
3 4 5 6 7 8 9 10 11 uid begin_time int 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 是 是 是 是 是 是 是 是 是 用户信息 开始时间 结束时间 职责描述 自己意义 对公司评价 公司对自己评价 排序 是否显示 date date nvarchar(max) nvarchar(max) nvarchar(500) nvarchar(max) int int end_time job_description influence impress assessmentbycompany sort isshow 5、项目表(project)
项目表主要包括开始时间和结束时间,项目名称和描述以及自己负责的具体事务,具体
如表5.5所示。
表5.5项目表
序号 1 2 3 4 5 6 7 8 9 列名 projectid projectname start_time end_time proect_profile effect sort isshow background_information 10 website nvarchar(500) 否 否 是 项目网址 数据类型 int nvarchar(500) date date nvarchar(max) nvarchar(max) Int int nvarchar(max) 标识 是 否 否 否 否 否 否 否 否 主键 是 否 否 否 否 否 否 否 否 允许空 否 是 是 是 是 是 是 是 是 说明 项目标示 项目名字 开始时间 结束时间 项目描述 自己意义 排序 是否显示 背景介绍 6、活动表(party)
活动表用来描述线下活动如会议,沙龙,讨论会等。主要包括活动的名称,举行时间,
举行地点,活动描述,活动流程介绍,具体如表5.6所示。
表5.6活动表 22
基于安卓的名片社交APP的设计及实现
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 列名 数据类型 int 标识 是 否 否 否 否 否 否 否 否 否 否 否 否 否 主键 是 否 否 否 否 否 否 否 否 否 否 否 否 否 允许空 否 是 是 是 是 是 是 是 是 是 是 是 是 是 说明 活动标示 活动名字 开始时间 结束时间 活动描述 背景介绍 关键亮点 出席人员 会议安排 地址 宣传网址 是否显示 是否热门 是否推荐 partyid name begin_time end_time profile background hot_tag red_star party_plan addr website isshow ishot isrecommend nvarchar(500) date date nvarchar(max) nvarchar(max) nvarchar(500) nvarchar(max) nvarchar(max) nvarchar(500) nvarchar(500) int int int (二)关键功能详细设计 1、 手机端服务器请求实现
手机端显示的数据与执行业务操作都需要与服务器交互。同服务器进行交互的方式主要
有Socket和HTTP的2种方式。Socket通信面向连接的通信方式,随着用户的增加服务器要维护连接需要大量的资源开销。而HTTP基于请求驱动式的,基于成熟的ASP.net Web开发技术,面对大量的请求通过多线程的方式处理,资源使用效率更加高效。虽然Socket通信消耗资源大,但是Socket通信即时性高、可靠性高,在实现传送文件、即时聊天等功能时使用。
本应用实现HTTP请求使用了Apache的提供HTTPClient工具包。采用POST表单请求的
方式传递参数到服务器端。参数通过Key与Value的形式保存到RequestEntify里传输到后台。服务器端使用ASP.net动态网页,处理类ClientDo是个继承System.Web.UI.Page的类,在Page_Load方法处理,判断Page的IsPostBack为false的时候处理请求。手机APP发送HTTP请求给ClientDo.aspx,由ASP.net服务器IIS接收到,ClientDo.aspx校验数据合法性后由BizManager业务类处理,BizManager业务类调用ClientDo方法处理请求。获得的数据返回
23
基于安卓的名片社交APP的设计及实现
给ClientDo.aspx。ClientDo.aspx对数据进行处理后把数据包含在HTTP Response里返回给手机,如图5.1所示。
手机APPHTTP Request请求IIS服务器ClientDo.aspxBizManager分发请求校验请求合法性ClientDoIt消息1返回HTTP Response对数据进行处理
图5.1手机端服务器实现示意图
2、 差时异步调用实现Handle与Thread结合使用
Android机制要求不能在主线程执行大量费事的操作,如等待处理HTTP请求,执行大量的计算如加密、压缩解压操作。需要实现差时异步调用。在请求的时候启动一个发送和处理请求的线程Thread,主线程执行显示等待框。当处理结果完成后,调用Handle发送一个Message进行界面刷新处理。通过把Handle与Thread结合起来使用,处理耗时而又需要等待的操作。在主UI线程里启动异步请求线程Thread,该线程与主UI线程是并列的,但是优先级与主UI线程相比低好多。主UI线程不等待异步请求线程的返回结果,实现差时异步调用的功能。主UI线程界面显示等待状态。异步调用线程处理获得数据后,通过Handle调用通知主UI线程进行界面更新,如图5.2所示。
异步调用线程Thread主UI线程IIS服务器启动异步请求线程Thread执行数据请求操作显示请求等待界面返回数据通过Handle通知界面更新操作
图5.2 差时异步调用示意图
24
基于安卓的名片社交APP的设计及实现
3、 基于MVC思想实现业务处理框架
不同的操作界面Activity实现不同的功能模块,界面与界面的跳转通过startActivity方法
传入Intent跳转。Activity就是控制者。与Actvity绑定操作的是res/layout/下的界面资源文件xml。通过setContentView方法结合起来进行绑定操作。业务类在继承与Application的AppContext里声明。而Appliaction调用ApiClient进行具体的功能模块操作,如图5.3所示。
Application<
图5.3 基于MVC思想饿业务处理类图
(三)系统重点用例详细设计
系统实现了浏览器端和手机端的若干操作用例,但限与篇幅无法一一详细展开,以下以
手机端的“生成名片”和“添加好友”操作用例进行详细说明。更多功能用例请结合源码工程和附录进行查看。
1、“手机社交系统”的“生成名片”用例 (1)生成名片的操作流程
图5.4展示了是手机客户端生成名片的操作流程。各步骤解释如下: 1)获取用户标示,如果获取失败进行处理,跳转到登陆注册界面 2)对用户标示进行处理后,发送到服务器端
3)服务器端对数据进行处理,返回用户已添加的名片或者没有则返回系统生成的默
认名片
4)手机处理返回的信息,判断返回状态,获取名片实体
5)根据显示的样式并执行显示操作,并且根据用户的标示显示信息。
25
相关推荐: