版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
移动互联网开发课程设计报告学生姓名:谌敦斌学号:专业:数字媒体技术班级:0312413设计题目:安卓新浪微博客户端设计学年学期:2023年秋季学期指导教师:张华目录(示例)TOC\o"1-2"\h\z\u一、 设计题目 1二、 设计目的 1三、 设计原理及方案 11 使用的软件工具和环境 12 需求分析与概要设计 13 数据库设计(若有) 14 具体设计和关键问题 1四、 实现效果 1五、 设计体会 1参考文献 3设计题目简易新浪微博客户端系统设计目的通过设计开发新浪微博客户端综合训练安卓系统开发能力,进一步提高对安卓程序开发及运营的理解和结识,学会团队协作,开发出界面与功能都有特色的安卓应用软件。掌握并熟悉OAuth认证协议的工作原理,学会通过http的get或者post方式传参数获取相应的服务器应答信息,可以运用新浪微博官方提供的一系列接口完毕简易微博客户端的开发。设计原理及方案使用的软件工具和环境Eclipsejdk7.0AndroidSDK以及新浪官方提供的WeiboSDK、WeiboSDKDemo和相应API需求分析与概要设计众所周知,官方新浪微博客户端的功能非常完善,我们这次课程设计重要是模仿官版的微博。具体的功能需求如下:我们的安卓客户端是在线运营的,也就是必须在有网络连接的情况下才干工作,假如没有联网将提醒用户打开网络连接。为了安全起见,安卓客户端不建议直接使用用户名和密码进行登录,而是通过比较流行的OAuth认证授权后才干登录使用,所以授权功能是必须的。并且在测试阶段,授权的用户必须通过开发者将其微博昵称添加到测试信息才干正常登录。对于第一次授权成功的用户,我们需要把它的部分身份信息例如ID、昵称、头像url和token验证等保存到数据库,方便下一次直接登录。因此要设计一个简易的数据库功能。对于已经授权的用户,假如第二次登录,就不需要授权,而是直接进入登陆界面。因此还需要一个微博一键登录功能。登陆的用户能获取到新浪微博首页的信息、用户资料、好友资料,可以发表微博、转发微博、点赞微博、评论微博、收藏微博,获取关注信息,粉丝信息,查看自己发的微博等等。同样为了安全起见,还需一个注销登录功能。一旦用户点击注销之后,下一次登录必须先通过授权才干正常登录。系统的总体架构设计如图1所示loadingloading网络连接网络连接一键登录授权一键登录授权我发现我发现更多消息首页浏览身份信息,查看自己的微博、关注以及粉丝列表发表微博(文字,图片),点评、签到、拍摄浏览微博、转发、评论、点赞等浏览身份信息,查看自己的微博、关注以及粉丝列表发表微博(文字,图片),点评、签到、拍摄浏览微博、转发、评论、点赞等找人、找热门微博,新浪新闻等@我的、评论、赞列表,写私信等找人、找热门微博,新浪新闻等@我的、评论、赞列表,写私信等图1系统总体架构设计如图1所示,我们的微博客户端一方面进入loading界面,在加载中一方面判断网络是否连接,假如网络是可用的,将进入下一步,否则将提醒用户打开网络连接。网络连接成功后系统还将判断用户是否已经授权,假如已经授权则可以直接通过登录进入主界面。否则将进入授权页面,进入授权页面的用户需要输入新浪微博用户名和密码并且允许授权后方能进入主页面。进入主页面后用户可以查看当前用户及其所关注用户的最新微博,可以转发、评论和点赞。在“消息”页面,用户可以查看@用户的微博、评论和赞等,还可以发送私信。在“更多”页面,用户可以发送微博,涉及纯文字微博,带图片的微博、拍照微博等,还可以点评和签到。在“发现”页面,用户可以搜索热门微博和找人等等。在“我”页面,用户可以查看自己的身份信息,以及自己发的微博、用户的关注和粉丝等等。数据库设计在本次微博客户端开发过程中,我们用到了一点点数据库,就是将授权成功后的用户部分身份信息保存到数据库,方便用户下次一键登录而不用授权。由于只用到了一个用户信息表,它的ER图如图2所示字符串型UID字符串型UID用户UID用户UID用户头像url用户头像url用户信息认证token认证token用户昵称用户昵称图2数据库ER图相应的数据表userinfomation如表1:表1用户信息表结构字段名数据类型宽度是否可空说明idintnotnull用户UIDidstrString20notnull字符串型的UIDscreen_nameString20notnull用户昵称tokenString40notnull授权认证请求码profile_image_urlString40notnull用户头像网络地址在具体设计和关键问题具体设计:1.用户登录和授权模块功能描述:对于第一次使用该应用的用户,在程序启动之后进入配置页面,输入用户名和密码进行授权认证。对于用户在自己的手机上使用过或者已经通过了授权认证则可以不用输入用户名和密码就可以选择用户进行登录。参与者:未通过授权认证或者未登录。前置条件:未通过授权认证或者未登录的用户。后置条件:通过授权配置或者直接登录系用户登录和授权模块流程图如图3所示:判断是否存在已授权用户授权配置开始启动应用登录登录到应用首页结束是否判断是否存在已授权用户授权配置开始启动应用登录登录到应用首页结束是否图3用户登录和授权流程图2.系统首页信息显示模块功能描述:显示被用户添加关注的好友的最新微博信息。参与者:合法登录用户。前置条件:已登录用户。后置条件:在首页显示所有被用户添加关注的最新微博信息列表。该模块用例如下图4所示:用户用户查看微博列表搜索用户发表新微博图4系统首页信息显示用例图系统首页显示模块流程图如图5所示:加载数据加载数据开始进入首页发表新微博结束显示最新微博的列表搜索其他用户图5显示主界面流程图3.发表微博模块功能描述:该模块重要实现了用户发表微博的功能。参与者:合法登录用户。前置条件:已登录用户。后置条件:新微博信息是否发表成功。4.通过关键字搜索相关用户模块功能描述:该模块重要实现了通过关键字搜索相关用户的功能。参与者:合法登录用户。前置条件:已登录用户。后置条件:搜索成功返回结果。搜索功能流程图如下图6所示:开始开始输入关键词显示与关键字相关的微博用户列表点击某一用户进入该用户具体信息页面添加关注或者返回结束图6搜索功能流程图5.查看微博内容模块:功能描述:该模块实现了用户可以通过点击某一条微博信息查看该微博的所有内容,并进行评论和转发操作。参与者:合法登录用户。前置条件:已登录用户。后置条件:可以转发和参与评论。查看微博内容模块用例如下图7所示:查看微博查看微博具体信息转发评论用户图7查看微博用例图评论微博功能流程图如下图8所示:点击评论按钮进入评论页面点击评论按钮进入评论页面开始结束输入评论内容点击发送判断评论失败图8评论功能流程图转发功能流程图如下图9所示:点击评论按钮进入转发页面点击评论按钮进入转发页面开始结束输入转发内容点击发送判断转发失败图9转发功能流程图6.查看用户信息模块功能描述:查看好友的具体信息。参与者:合法登录用户。前置条件:已登录用户。后置条件:查看好友具体信息(涉及所有微博,话题,关注,粉丝)关注和取消关注操作。查看用户信息模块用例如下图10所示:添加对好友粉丝的关注添加对好友粉丝的关注对好友进行关注和取消关注对好友进行关注和取消关注添加对好友所关注用户的关注添加对好友所关注用户的关注查看好友的具体信息查看好友的具体信息查看好友的关注列表用户查看好友所有微博信息查看好友所有微博信息查看好友的所有话题查看好友的粉丝列表图10查看用户信息用例图查看关注和添加关注功能具体流程图如下图11所示:点击进入关注列表点击进入关注列表开始结束查看用户信息添加关注图11查看关注和添加关注流程图查看用户所有微博列表功能流程如下图12所示:结束结束点击微博按钮开始用户所有微博列表界面查看某一条微博具体信息同时进行评论和转发操作图12查看用户所有微博列表流程图碰到的关键问题:OAuth认证,如何获取授权?这也是我们这个微博客户端开发过程中的一个难点,就是怎么样与新浪微博的官方服务器交流并得到相应的响应信息。刚开始想了很久,也跟着一个视频教程一步一步做,可后来发现,新浪微博的一些东西涉及接口等是随着时间不断在更新的,我们要做这个客户端,必须去了解官网上相应的API文档,根据具体的接口具体设计。一方面我们需要到新浪微博官网去注册我们要开发的APP,填写相关的信息。注册网址是,当然新浪微博提供应开发者一个非常好的平台,像网站接入、站内应用、无线游戏等等,由于我们开发的是安卓客户端,因此选择微连接里面的移动应用。在填写APP基本信息时有个包名和署名比较重要,包名必须与源程序的包名一致,并且署名必须是在安装了微博署名器的安卓平台上输入包名后得到的署名,包名与署名错误将会导致应用不可以用。此外,在高级信息里的回调页地址也比较重要,它是一个http地址,形式可以任意,但必须与源代码里面的回调地址同样。注册了APP后,会生成一个APPKey,这个APPKey非常重要,我们请求授权时所需要的参数就包含它。通过阅读微博开发的API文档,我们发现,不管是读接口还是写接口,我们都需要传相应的参数给服务器。然后服务器会返回一些信息给我们,也许是字符串,也也许是json文本,有时候我们还需要对它进行解析。请求授权的话,我们是要通过oauth2接口的authorize函数获取授权,需要的参数是APP_KEY、REDIRECT_URL和SCOPE。SCOPE是权限参数,通过它才可以使用平台的许多核心微博功能。这个函数将会返回授权后的授权后的accesstoken,这个accesstoken可以说是我们实现后面功能的一把金钥匙,有它我们才干读接口和写接口。关键代码如图13mWeiboAuth=newWeiboAuth(this,Constants.APP_KEY,Constants.REDIRECT_URL,Constants.SCOPE);mWeiboAuth.anthorize(newAuthListener());图13授权关键代码2.获取并显示用户的信息,涉及昵称、头像、性别、所在地、个人描述、微博数、关注数、粉丝数等等。这是我们导航栏“我”中的内容,其实这么多信息呢,都是通过我们向UserAPI中的show函数传递请求参数,服务器返回给我们的json文本,然后我们通过解析json,获得相应的属性值。通过最初的授权我们获得了accesstoken,通过它我们可以生成UserAPI接口对象,然后我们才干调用相应的show函数,show函数涉及两个参数,第一个是uid值,可以通过accesstoken得到,另一个是异步回调监听,我们接受服务器返回的信息就是在回调函数里面进行的。请求用户信息的关键代码如图14图14请求用户信息我们需要声明一个回调监听变量,也就是图14中的m1Listener,它是RequestListener的实例,定义时会重载一个onComplete函数,在这个函数里面。我们可以将获取的json窜解析成相应的对象,然后将这些对象的相应属性通过UserInfo类的get和set方法赋值给静态变量,方便我们在其他类运用这些数据。关键代码如图15图15接受并保存用户信息3.加载用户头像这是一个难点,我们获取到的用户头像其实是一个字符串地址,即url,我们要通过这个url来加载这个网络图片。其实就是运用handler和SoftReference<Drawable>,根据url获得一个输入流,然后从这个输入流中创建drawable。当然我们也可以通过BitmapFactory来得到相应的位图。关键代码如图16图16根据url加载网络图片4.获取微博列表其实这个跟我们获取用户信息同样,都是传几个参数过去,然后获得响应的json串,再解析缓存数据。只是用到的接口和函数不同样了,我们这里介绍获取首页登录用户及其关注用户的最新微博。根据官网API,我们可以知道这里要用的是StatusesAPI里面的friendsTimeline函数。这个函数需要8个参数,听起来比较多,事实上很多用默认的就可以了。关键代码如图17图17获取首页微博列表关键代码一般我们只需要注意friendsTimeline的第三个参数,表达一次请求获取多少条微博,一般20就足够了,太大了一是加载很慢,二是也许会导致卡死。同样是异步回调,同样需要解析json,同样是用pojo通过set和get方法保存和传递参数,但要注意,这时是涉及到多条微博的数据信息,要用数组来保存。然后我们在listview的适配器中将相应的数据传给相应的控件,这样就能显示我们的微博列表了。其他的像显示我的好友列表、关注列表、粉丝列表等与此类似,只是接口和函数以及相应参数有些差别罢了,这里就不再一一赘述。5.发微博前面的显示微博列表及用户信息都是通过读接口实现的,而发一条微博则是通过写接口实现的。当然我们这里用到的还是StatusesAPI接口,发微博的函数是update。这个函数需要四个参数,第一个就是我们的文本内容,第二个和第三个是字符串的经纬度不需要管,都用默认的就可以了,第四个参数仍然是我们的异步回调。在异步回调函数里我们要做的就是给出一个响应,看微博是否发成功了,尚有就是跳转到首页的微博列表,这时我们就会看到我们发布的微博。关键代码如图18图18发微博关键代码微博中其他功能实现与此都相类似,只是接口和函数也许不相同,都是接口函数传参数请求,然后在异步回调函数里接受解析数据或者做其他操作,这里不再一一赘述。此外,新浪微博官方提供的接口函数成千上万,由于时间因素,很多功能我们都还没有实现,在本次课程设计结束之后,我们将继续我们的微博开发。实现效果图19loading界面图片的alpha由小变大,亮度由暗变亮,给人一种豁然开朗的感觉。图20一键登录界面只有已经授权的用户才干进入到此页面,通过登录可以进入到微博主界面图21授权界面用户第一次使用必须通过授权,并且在测试阶段并不是随便一个新浪微博账号都可以被授权,而是其昵称被开发者添加到测试信息里的用户才干被授权,用户输入对的的用户名、密码和验证码后将直接进入到微博主界面。图22微博主界面的5大分界面5大分界面涉及首页、消息、更多、发现和我。“首页”重要是显示用户及其关注用户的微博列表。“消息”里面可以发私信,查看@我的、评论、赞等列表。“更多”,可以发文字微博、图片微博,签到等等。发现里面可以找人和搜索热门微博。“我”里面重要是登录用户的身份信息,可以查看自己发的微博,可以查看关注列表和粉丝,如图23图23查看“我”的资料信息和发的微博图24@我的微博用户可以在消息里查看@我的微博,与首页微博的形式差不多。图25发微博在“更多”里面我们可以发送微博,微博写好后点击确认后,假如发送成功会有相应提醒,并跳转到首页查看。图26注销登录在主界面假如用户点击菜单按钮,将会出现注销菜单,假如点击用户在这个客户端的所有信息将会被清空,用户如需再次登录必须重新授权。设计体会对于本次安卓课程设计,可以说是一次非常锻炼人的开发实战。接触安卓开发没多久的我们在一个比较综合的项目面前还是有些胆怯和紧张。但逐渐的只要你敢于去尝试,去探索,天天都有天天的收获,也许一个问题你一天解决不了,多花一点时间或许就会解决了。由于时间仓促,新浪微博的接口功能众多,我们并没有达成预期的结果,尚有很多功能需要我们后续继续去开发。我认为我在这个过程中最大的收获就是一定要专心思考,不管是界面还是功能,一定要去想它究竟是怎么样实现的,此外就是注意代码的模块化、结构化,多实现代码复用,千万不能写成“一口井”和“大锅饭”,还要就是要养成写注释的好习惯,假如代码多了,函数多了,变量多了,就搞不清具体相应的意义了。给函数及其参数写注释,给变量写注释能更好的帮助进行团队开发和后续开发。我相信每一个优秀的程序员都有这样的一个好习惯吧。通过本系统的开发,使我对书本上的知识点和理论有了更深一层的了解,也使我学会了如何运用所学的知识,把理论结合于实践中,进一步掌握了管理信息系统开发的规律,从而对本专业有了更深刻的结识。此后,我会加倍努力的去研究,在纯熟的基础上掌握更多的新型技术,来提高自己的开发水平。后记我们这次新浪微博客户端的开发由马露负责界面,董建负责算法,谌敦斌负责具体功能代码实现。虽然实现了部分新浪微博功能,由于时间仓促,加之我们能力有限,尚有很多微博功能还没有来得及实现。我们将在本次课程设计之后继续我们的微博开发,尽量开发出一个比较完善的微博客户端。在写作课程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智慧城市的创新商业模式考核试卷
- 木材的可再生资源与环境保护考核试卷
- 危险品仓储危险物品管理考核试卷
- 目视化管理与沟通效率考核试卷
- 媒体的影响与社会观念考核试卷
- 激光雷达在光学成像技术中的新应用案例研究考核试卷
- 盐矿经济效益评价与优化调控考核试卷
- 仪器仪表制造业的人才选拔机制考核试卷
- 城镇低保申请告知单
- DB11T 584-2013 保温板薄抹灰外墙外保温施工技术规程
- 校车使用(许可)申请表
- 月度质量例会PPT模板
- 煤矿皮带智能化集控系统PPT教学讲授课件
- 分数乘除法整理复习(课堂PPT)
- 故乡雨正普五线谱(正谱)
- YD_T 3956-2021 电信网和互联网数据安全评估规范_(高清版)
- 2022年物业管理师《物业管理实务》考试题库大全-下(多选题、简答)
- 大班科学活动教案《豆豆家族》含PPT课件
- 压力管道检验员在线考试习题与答案
- 【精品试卷】部编人教版(统编)一年级上册语文第一单元测试卷含答案
- 金属有机化学ppt课件
评论
0/150
提交评论