1移动互联网开发课程设计报告学生姓名:谌敦斌学号:031241318专业:数字媒体技术班级:0312413设计题目:安卓新浪微博客户端设计学年学期:2014年秋季学期指导教师:张华2目录(示例)一、设计题目....................................................................................................................................3二、设计目的....................................................................................................................................3三、设计原理及方案........................................................................................................................31使用的软件工具和环境............................................................................................................32需求分析与概要设计................................................................................................................33数据库设计(若有)................................................................................................................54详细设计和关键问题................................................................................................................6四、实现效果..................................................................................................................................17五、设计体会..................................................................................................................................20参考文献.............................................................................................................................................................203一、设计题目简易新浪微博客户端系统二、设计目的通过设计开发新浪微博客户端综合训练安卓系统开发能力,进一步提升对安卓程序开发及运行的理解和认识,学会团队协作,开发出界面与功能都有特色的安卓应用软件。掌握并熟悉OAuth认证协议的工作原理,学会通过http的get或者post方式传参数获取相应的服务器应答信息,能够利用新浪微博官方提供的一系列接口完成简易微博客户端的开发。三、设计原理及方案1使用的软件工具和环境Eclipsejdk7.0AndroidSDK以及新浪官方提供的WeiboSDK、WeiboSDKDemo和相应API2需求分析与概要设计众所周知,官方新浪微博客户端的功能非常完善,我们这次课程设计主要是模仿官版的微博。具体的功能需求如下:1.我们的安卓客户端是在线运行的,也就是必须在有网络连接的情况下才能工作,如果没有联网将提醒用户打开网络连接。2.为了安全起见,安卓客户端不建议直接使用用户名和密码进行登录,而是通过比较流行的OAuth认证授权后才能登录使用,所以授权功能是必须的。并且在测试阶段,授权的用户必须经过开发者将其微博昵称添加到测试信息才能正常登录。3.对于第一次授权成功的用户,我们需要把它的部分身份信息例如ID、昵称、头像url和token验证等保存到数据库,方便下一次直接登录。因此要设计一个简易的数据库功能。4.对于已经授权的用户,如果第二次登录,就不需要授权,而是直接进入登陆界面。因此还需要一个微博一键登录功能。5.登陆的用户能获取到新浪微博首页的信息、用户资料、好友资料,能够发表微博、转发微博、点赞微博、评论微博、收藏微博,获取关注信息,粉丝信息,查看自己发的微博等等。6.同样为了安全起见,还需一个注销登录功能。一旦用户点击注销之后,下一次登录必须先经过授权才能正常登录。4系统的总体架构设计如图1所示图1系统总体架构设计如图1所示,我们的微博客户端首先进入loading界面,在加载中首先判断网络是否连接,如果网络是可用的,将进入下一步,否则将提醒用户打开网络连接。网络连接成功后系统还将判断用户是否已经授权,如果已经授权则可以直接通过登录进入主界面。否则将进入授权页面,进入授权页面的用户需要输入新浪微博用户名和密码并且允许授权后方能进入主页面。进入主页面后用户可以查看当前用户及其所关注用户的最新微博,可以转发、评论和点赞。在“消息”页面,用户可以查看@用户的微博、评论和赞等,还可以发送私信。授权一键登录首页消息更多发现我浏览微博、转发、评论、点赞等@我的、评论、赞列表,写私信等发表微博(文字,图片),点评、签到、拍摄找人、找热门微博,新浪新闻等浏览身份信息,查看自己的微博、关注以及粉丝列表loading网络连接5在“更多”页面,用户可以发送微博,包括纯文字微博,带图片的微博、拍照微博等,还可以点评和签到。在“发现”页面,用户可以搜索热门微博和找人等等。在“我”页面,用户可以查看自己的身份信息,以及自己发的微博、用户的关注和粉丝等等。3数据库设计在此次微博客户端开发过程中,我们用到了一点点数据库,就是将授权成功后的用户部分身份信息保存到数据库,方便用户下次一键登录而不用授权。由于只用到了一个用户信息表,它的ER图如图2所示图2数据库ER图对应的数据表userinfomation如表1:表1用户信息表结构字段名数据类型宽度是否可空说明idintnotnull用户UIDidstrString20notnull字符串型的UIDscreen_nameString20notnull用户昵称tokenString40notnull授权认证请求码profile_image_urlString40notnull用户头像网络地址用户信息用户头像url用户UID字符串型UID用户昵称认证token64在详细设计和关键问题详细设计:1.用户登录和授权模块功能描述:对于第一次使用该应用的用户,在程序启动之后进入配置页面,输入用户名和密码进行授权认证。对于用户在自己的手机上使用过或者已经通过了授权认证则可以不用输入用户名和密码就可以选择用户进行登录。参与者:未通过授权认证或者未登录。前置条件:未通过授权认证或者未登录的用户。后置条件:通过授权配置或者直接登录系用户登录和授权模块流程图如图3所示:图3用户登录和授权流程图判断是否存在已授权用户授权配置开始启动应用登录登录到应用首页结束是否72.系统首页信息显示模块功能描述:显示被用户添加关注的好友的最新微博信息。参与者:合法登录用户。前置条件:已登录用户。后置条件:在首页显示所有被用户添加关注的最新微博信息列表。该模块用例如下图4所示:图4系统首页信息显示用例图系统首页显示模块流程图如图5所示:图5显示主界面流程图3.发表微博模块功能描述:该模块主要实现了用户发表微博的功能。参与者:合法登录用户。用户查看微博列表搜索用户发表新微博加载数据开始进入首页发表新微博结束显示最新微博的列表搜索其他用户8前置条件:已登录用户。后置条件:新微博信息是否发表成功。4.通过关键字搜索相关用户模块功能描述:该模块主要实现了通过关键字搜索相关用户的功能。参与者:合法登录用户。前置条件:已登录用户。后置条件:搜索成功返回结果。搜索功能流程图如下图6所示:图6搜索功能流程图5.查看微博内容模块:功能描述:该模块实现了用户可以通过点击某一条微博信息查看该微博的所有内容,并进行评论和转发操作。参与者:合法登录用户。开始输入关键词显示与关键字相关的微博用户列表点击某一用户进入该用户详细信息页面添加关注或者返回结束9前置条件:已登录用户。后置条件:可以转发和参与评论。查看微博内容模块用例如下图7所示:图7查看微博用例图评论微博功能流程图如下图8所示:图8评论功能流程图查看微博详细信息转发评论用户点击评论按钮进入评论页面开始结束输入评论内容点击发送判断评论失败10转发功能流程图如下图9所示:图9转发功能流程图6.查看用户信息模块功能描述:查看好友的详细信息。参与者:合法登录用户。前置条件:已登录用户。后置条件:查看好友详细信息(包括所有微博,话题,关注,粉丝)关注和取消关注操作。点击评论按钮进入转发页面开始结束输入转发内容点击发送判断转发失败11查看用户信息模块用例如下图10所示:图10查看用户信息用例图查看关注和添加关注功能具体流程图如下图11所示:查看好友的详细信息查看好友的关注列表用户查看好友所有微博信息查看好友的所有话题查看好友的粉丝列表对好友进行关注和取消关注添加对好友所关注用户的关注添加对好友粉丝的关注12图11查看关注和添加关注流程图查看用户所有微博列表功能流程如下图12所示:图12查看用户所有微博列表流程图点击进入关注列表开始结束查看用户信息添加关注结束点击微博按钮开始用户所有微博列表界面查看某一条微博详细信息同时进行评论和转发操作13遇到的关键问题:1.OAuth认证,如何获取授权?这也是我们这个微博客户端开发过程中的一个难点,就是怎么样与新浪微博的官方服务器交流并得到相应的响应信息。刚开始想了很久,也跟着一个视频教程一步一步做,可后来发现,新浪微博的一些东西包括接口等是随着时间不断在更新的,我们要做这个客户端,必须去了解官网上相应的API文档,根据具体的接口具体设计。首先我们需要到新浪微博官网去注册我们要开发的APP,填写相关的信息。注册网址是=mobile,当然新浪微博提供给开发者一个非常好的平台,像网站接入、站内应用、无线游戏等等,由于我们开发的是安卓客户端,因此选择微连接里面的移动应用。在填写APP基本信息时有个包名和签名比较重要,包名必须与源程序的包名一致,并且签名必须是在安装了微博签名器的安卓平台上输入包名后得到的签名,包名与签名错误将会导致应用不可以用。另外,在高级信息里的回调页地址也比较重要,它是一个http地址,形式可以任意,但必须与源代码里面的回调地址一样。注册了APP后,会生成一个APPKey,这个APPKey非常重要,我们请求授权时所需要的参数就包含它。通过阅读微博开发的API文档,我们发现,不管是读接口还是写接口,我们都需要传相应的参数给服务器。然后服务器会返回一些信息给我们,可能是字符串,也可能是json文本,有时候我们还需要对它进行解析。请求授权的话,我们是要通过oauth2接口的authorize函数获取授权,需要的参数是APP_KEY、REDIRECT_URL和SCOPE。SCOPE是权限参数,通过它才可以使用平台的许多核心微博功能。这个函数将会返回授权后的授权后的acc