571
社区成员
发帖
与我相关
我的任务
分享在互联网飞速发展的今天,微博应用已经成为人们日常生活中不可或缺的重要组成部分。人们可以便利的通过微博平台分享自己身边的新鲜事,并及时的获取到自己感兴趣的消息。微博应用作为一个典型的移动端产品,其开发过程中需要用到绝大多数的移动端开发技术,包括数据存储、多线程开发与服务端的网络通信等。因此,通过开发这样一款微博应用,也能有效的提高我们作为编码人员的工程能力。
我们设计的微博应用主要包含发布话题、评论、好友资料查看和私信等功能。
如下图所示,我们的微博应用包括四大基础板块的内容:用户个人资料、话题、私信、好友。

其中,各个板块包含的详细内容如下图所示。

如下图所示,我们的微博应用将包含注册、登陆、退出、注销、发表/查看话题、评论话题、发送/接收私信、阅读私信、添加/删除好友以及查看用户资料等功能。

我们的微博应用将包括如下业务逻辑:
业务逻辑如下图所示。

根据上述板块和功能描述,绘制如下系统用例图和类图。


在数据存储建模上,绘制如下对象关系图,并列出使用到的数据库表。

用户表
| 属性 | 类型 | 描述 |
|---|---|---|
_id | int | 系统默认主键 |
UID | long | 用户ID |
UName | text | 用户名 |
UPhoto | text | 用户头像 |
UMobile | text | 用户电话号码 |
USex | text | 用户性别 |
UAddress | text | 用户地址 |
话题表
| 属性 | 类型 | 描述 |
|---|---|---|
_id | int | 系统默认主键 |
UID | long | 话题发布者用户ID |
Topic_ID | long | 话题ID |
Topic_Content | text | 话题内容 |
Topic_Time | int | 话题发表的时间 |
Topic_Name | text | 话题发布者的名字 |
Topic_Photo | text | 话题发布者的头像 |
评论表
| 属性 | 类型 | 描述 |
|---|---|---|
_id | int | 系统默认主键 |
UID | long | 评论发布者用户ID |
Comment_ID | long | 评论ID |
Comment_Content | text | 评论内容 |
Comment_Time | int | 评论发表的时间 |
Comment_Reply_To | long | 评论回复的用户 |
私信表
| 属性 | 类型 | 描述 |
|---|---|---|
_id | int | 系统默认主键 |
Send_UID | long | 私信发送者用户ID |
Recv_UID | long | 私信接收者用户ID |
Letter_ID | long | 私信ID |
Letter_Content | text | 私信内容 |
Letter_Time | int | 私信发送的时间 |
微博应用的设计主要包含如下四个部分。
安卓应用遵循单例模式的设计原则,在安卓开发中,Application可以被视为应用程序的唯一实例,在应用开发过程中所需的全局变量及操作都存放在该类中。在客户端与服务端的交互中,遵循代理模式进行开发,使用常用的JSON格式作为中间接口,来在客户端和服务端之间传输数据。在客户端的设计中,采用MVC设计模式,来实现模型和界面视图的解耦。在应用中创建一个MsgService服务,通过网络模块定时向服务器发送请求,并对响应数据进行解析,存储在前端模型中,接着由视图负责刷新界面。下面分别介绍应用中的具体功能模块和实现。
在登陆界面中,主要完成用户的用户名和密码输入,若用户还没有创建账号,则可以通过注册按钮,跳转到注册界面;若用户不记得账号密码,则可以通过忘记密码按钮,跳转到重制密码的界面。在用户输入密码后,单击登陆,将对用户名与密码进行验证,并显示登录结果。若验证成功,则进入主界面,否则显示错误提示。
在登陆界面中,主要实现向服务器发送登陆请求,对用户名和密码进行验证,并根据验证结果进行界面的跳转。登录按钮响应onLoginClick()方法,根据用户的用户名与密码的输入情况进行提示,若输入正确,则设置好请求参数,启动登陆请求类,利用异步任务机制在后台完成数据的请求。接着根据返回结果进行解析判断,完成登陆数据的存储、界面的提示与跳转。
话题界面以列表的形式显示话题,单击每一条列表中的话题,能够跳转至该话题的详细界面,其中包含对该话题的评论。单击发表话题按钮,可以跳转至发表话题界面,单击刷新图标,可以向服务器请求更新的话题数据,并刷新界面。在话题的详细界面中,用户可以查看到该话题的完整信息,并输入自己的评论,将其显示在该界面中。
当进入话题界面时,通过请求话题类向服务器发送话题信息请求,获取一段时间内的话题信息数据,接着进行数据解析并执行界面刷新。当进入话题评论界面时,从数据库中读取对应话题的完整信息,当用户发表新的评论时,通过话题评论请求类向服务器发送请求,并将返回的数据进行解析并显示。在话题发表界面中主要完成话题的发表,利用发表话题请求类向服务器发送发表话题请求,根据返回数据进行解析和显示。
好友界面中以列表方式显示自己的好友,当长按某个好友时,就会弹出上下文菜单,可选择发私信和删除好友功能。当单击某个好友时,则跳转到该用户的详细资料页面。当单击在页面顶部的添加好友图标时,则进入添加好友界面。
进入好友界面时,通过异步机制向服务端请求好友数据。当选择私信或删除好友等功能时,只需要向服务端发送对应的请求即可。
用户资料界面的功能包含查看个人资料和其他用户的资料。处理过程中通过用户的ID来向服务端请求对应ID的用户个人资料,用户ID唯一标识了某个用户。
查看个人资料或者其他用户资料时,都是通过同一个界面进行显示和操作。当要查看某个用户的资料时,首先在好友表中查询是否存在该用户的信息,如果不存在则通过网络向服务端请求,在请求的参数重放入该用户的ID,然后通过异步任务来请求用户的资料。
服务端通过MySQL数据库进行数据存储,数据库中包括用户资料、话题、好友和私信等数据;控制处理函数通过Java实现,主要用来控制请求和返回数据等业务流程。该过程主要包括如下几个步骤:
根据该过程可以绘制流程图如下:

作者:265