基于android开发平台的新浪微博的实现(终版)_第1页
基于android开发平台的新浪微博的实现(终版)_第2页
基于android开发平台的新浪微博的实现(终版)_第3页
基于android开发平台的新浪微博的实现(终版)_第4页
基于android开发平台的新浪微博的实现(终版)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

28第二章系统分析2.1系统可行性分析市场的可行性项目是否可以实施,主要应该看这个项目是否有潜在的市场,以及市场的变化对项目的开发结果会有哪些重要影响。一个项目的市场需求是推动技术进步的主要动力,有时市场的需求,决定了某项技术的产生。有的时候,即使没有技术,没有经济实力,只要找对市场,也会通过其他渠道来达到项目的经济等方面的要求来开发项目,所以说,市场需求是项目可行性的根本。本系统基于移动平台的微博客户端系统,是人们日常生活中和朋友交流互动的必要工具。只要针对大众对物品的喜好,使系统功能齐全,操作简单,界面美观大方,就一定会有市场潜力。本系统为毕业设计练习实践型项目,所使用的开发工具都由学校免费提供,因此开发成本比较低,所以开发基于Android移动平台的微博客户端在经济上是可行的。新浪微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,基于Android系统开发使用Java作为编程语言具有良好的平台移植性和可扩展性,所以在技术上也是可行的。本应用是基于Android系统手持移动终端,Android系统手机在智能手机和平板电脑市场都有很高的占有率,各个手机厂商也争先推出更新版本和硬件配置更高的终端,从市场上一般的Android手机硬件配置来看运行本系统应该是绰绰有余所以在运行可行性上更是可行的。2.2系统需求分析本应用程序启动后,可以通过使用新浪的微博开放平台,利用接口调用返回的数据,用户信息配置,授权认证,用户登录。登录成功之后进入程序首页,可以显示微博好友发布的最新微博信息,以及相关图片的浏览。可以查看好友的个人信息、粉丝数量、发表的话题、所有发表过的微博以及其关注的好友情况。从以上描述可以基本了解到该应用的功能需求:启动应用程序,进入欢迎页面。暂停2s后,判断是否有授权账号,有并且在有效期内则直接进入微博首页;无则进入用户授权页面。如果用户是第一次使用,进入授权界面。点击授权按钮,如果手机上装有官方新浪微博客户端并且版本支持sso单点登录,将会调用官方集成授权方式登录。如果不没有装或版本不支持,系统自动条用web授权方式,和sso授权方式授权成功直接进入为微博首页不同,web方式授权成功后,需退出app后,重新打开将直接进入微博首页。用户登录系统之后,进入微博客户端首页,用户可以查看到自己关注到的好友的最新微博信息。首页,在屏幕的上方有一个发表微博的按钮,用户输入内容,点击发送可以发表自己的微博。用户也可以在此页面点击刷新按钮,刷新当前的最新微博。点击用户发表的某一条微博信息,进入微博浏览页面,可以查看到这条微博信息的全面内容,包括评论数、转发数、图片等多媒体信息。用户可以点击屏幕下方的评论按钮,发表自己对该篇微博的评论。点击转发按钮则可以转发这条微博内容。还可以查看别人@我及评论的相关信息,包括我评论别人和别人评论我的信息。查看自己的的信息,包括用户名、性别、头像、详细信息和我的微博等。并可以删除我发布的微博。删除后将自动刷新当前列表。更多选项卡关于微博,展示的是微博的开发者信息、简介及微博使用的注意事项退出当前账号,可以注销当前用户,更换其他用户使用。2.3系统规划概述凡事预则立,不预则废。科学的规划对于任何需要经过较长时间努力才能实现的事情都是非常重要的。规划,一般是指对较长时期的活动进行总体的、全面的计划。现代社会组织,特别是企业的结构和活动内容都很复杂,应该充分认识这一阶段工作所具有的特点,以提高系统规划工作的科学性和有效性。系统规划工作是面向长远的、未来的、全局性和关键性的问题,因此它具有较强的不确定性,非结构化程度较高。其工作环境是组织管理环境,高层管理人员是工作的主体。系统规划是为整个系统建设,确定目标、战略、系统总体结构方案以及资源计划。因而,整个工作过程是一个管理决策过程。同时,系统规划也是技术与管理相结合的过程,它确定了利用现代信息技术有效的支持管理决策的总体方案。系统规划人员对管理与技术环境的理解程度、对管理与技术发展的见识,以及开创精神与务实态度是规划工作的决定因素。规划工作的结果是要明确回答规划工作内容中提出的问题,描述出系统的总体概貌和发展进程,为系统的发展制定一个科学而又合理的目标和达到该目标的可行方案,而不是替代后续阶段的工作。2.4基于Android新浪微博客户端的建设原则统一规划、分步设计。坚持标准化和可行性。保证系统的稳定性和安全性。保证网络系统的先进性和有效性。操作简单、人机界面友好,便于用户理解和使用。2.5系统开发环境及相关技术Android的上层应用程序是使用Java语言开发的,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java开发环境Eclipse。如果只有Eclipse那还不够,因为是使用Java语言进行开发,还应该具备由SUN公司提供的JavaSDK(其中包括JRE:JavaRuntimeEnvironment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。第三章系统概要设计3.1系统设计目标通过创建新浪微博客户端应用,让用户随时随地与好友分享身边的新鲜事。通过友好的界面设计和完善的功能,使微博用户更加得心应手的与好友交流互动,尽可能多的给用户提供方便。3.2系统模块设计3.2.1系统功能模块划分功能模块划分是描述系统的一个过程,需要将需求分析中的感性描述进行抽象化,提取出要实现的功能,这是整个系统开发的一个关键过程。在系统分析的基础上,确定系统的功能模块。系统的功能模块图如下图3-1所示:微博客户端用户最新微博列表发表新微博评论微博转发微博删除微博查看@我及评论登录授权及注销微博客户端用户最新微博列表发表新微博评论微博转发微博删除微博查看@我及评论登录授权及注销图3-1系统功能模块图3.2.2系统总体结构设计系统总体结构设计确定软件由哪些模块组成以及这些模块之间的动态调用关系。微博客户端不是一个简单的概念,它包含了许多个内容,是由多个页面组成的一个整体的系统。在功能方面,采用图形用户界面技术,使系统能够有多重图形窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。在系统开放性方面,基于优秀的开发平台,再按照软件工程开发规范实现系统的开放性,既便于内容的扩充又便于技术的升级,以适用今后其他人的借鉴需求。在系统和数据的安全性方面,本项目是采用OAuth认证方式,采用这种方式就需要有用户的新浪UserID、AccessToken、AccessSecret这3个要素才能自由便利的调用新浪的开放接口。本项目是这样实现的,当用户第一次使用软件时,进行授权认证获取这3个要素,同时将其存储到SharedPreferences中以便用户下次使用。当用户再次使用时就不需要重新进行繁琐的授权认证操作,直接从SharedPreferences中读取出来即可使用。这样的需求载入页面的功能设定是这样实现的:当用户打开软件显示载入页面时开始检查SharedPreferences中是否已经保存有用户的新浪微博的UserID号、AccessToken、AccessSecret的记录,如果一条记录都没有那就说明用户是第一次使用本软件,那么跳到认证授权页面进行授权认证操作(认证授权功能在接下来的两篇中进行实现讲解)获取这3个值保存到SharedPreferences中,如果已经包括了记录那么读取这些记录的UserID号、AccessToken、AccessSecret值然后根据这3个值调用新浪的API接口获取这些记录对应的用户昵称信息等。OAuth认证的原理如下图3-2所示:客客户端新浪微博服务器将APPKEY和APPSECRET发送至新浪微博返回RequestToken和RequestSecret给客户端表示新浪微博信任客户端将RequestToken和RequestSecret发送至新浪微博跳转至授权页面授权页面输入账号密码完成授权根据回调地址返回oauth_verifier,表示用户信任客户端将RequestToken、RequestSecret、oauth_verifier发送至新浪微博返回user_id、AccessToken和AccessSecret用来代替账号密码图3-2OAUTH2.0认证原理图3.2.3系统模块用例图分析用户注册模块功能描述:在用户第一次使用该应用时,如还未获得新浪微博的账号,可以通过配置页面跳转到新浪微博的用户注册页面。参与者:未注册的用户。前置条件:所有未注册的用户。后置条件:提示注册是否成功。该模块用例如下图3-3所示:未注册用户用户注册未注册用户用户注册3-3用户注册用例图用户登录和授权模块功能描述:对于第一次使用该应用的用户,在程序启动之后进入配置页面,输入用户名和密码进行授权认证。对于用户在自己的手机上使用过或者已经通过了授权认证则可以不用输入用户名和密码就可以选择用户进行登录。参与者:未通过授权认证或者未登录。前置条件:未通过授权认证或者未登录的用户。后置条件:通过授权配置或者直接登录系统。用户登录和授权模块用例如下图3-4所示:用户通过授权认证用户通过授权认证选择用户进行登录图3-4用户登录和授权认证用例图用户登录和授权模块流程图如图3-5所示:判断是否存在已授权用户授权配置开始启动应用登录登录到应用首页结束是否判断是否存在已授权用户授权配置开始启动应用登录登录到应用首页结束是否图3-5用户登录和授权流程图系统首页信息显示模块功能描述:显示被用户添加关注的好友的最新微博信息。参与者:合法登录用户。前置条件:已登录用户。后置条件:在首页显示所有被用户添加关注的最新微博信息列表。该模块用例如下图3-6所示:用户用户查看微博列表搜索用户发表新微博图3-6系统首页信息显示用例图系统首页显示模块流程图如图3-7所示:加载数据加载数据开始进入首页发表新微博结束显示最新微博的列表搜索其他用户图3-7显示主界面流程图发表微博模块功能描述:该模块主要实现了用户发表微博的功能。参与者:合法登录用户。前置条件:已登录用户。后置条件:新微博信息是否发表成功。该模块用例如下图3-8所示:用户用户发布微博图3-8发表微博用例图发表新微博流程图如下图3-9所示:点击首页微博发送按钮点击首页微博发送按钮开始输入内容点击发送判断结束发送失败图3-9发表微博流程图通过关键字搜索相关用户模块功能描述:该模块主要实现了通过关键字搜索相关用户的功能。参与者:合法登录用户。前置条件:已登录用户。后置条件:搜索成功返回结果。搜索模块用例如下图3-10所示:用户用户查看返回的用户列表添加对搜索到用户的关注输入关键字搜索图3-10搜索用例图搜索功能流程图如下图3-11所示:开始开始输入关键词显示与关键字相关的微博用户列表点击某一用户进入该用户详细信息页面添加关注或者返回结束图3-11搜索功能流程图查看微博内容模块:功能描述:该模块实现了用户可以通过点击某一条微博信息查看该微博的所有内容,并进行评论和转发操作。参与者:合法登录用户。前置条件:已登录用户。后置条件:可以转发和参与评论。查看微博内容模块用例如下图3-12所示:查看微博查看微博详细信息转发评论用户图3-12查看微博用例图评论微博功能流程图如下图3-13所示:点击评论按钮进入评论页面点击评论按钮进入评论页面开始结束输入评论内容点击发送判断评论失败图3-13评论功能流程图转发功能流程图如下图3-14所示:点击评论按钮进入转发页面点击评论按钮进入转发页面开始结束输入转发内容点击发送判断转发失败图3-14转发功能流程图查看用户信息模块功能描述:查看好友的详细信息。参与者:合法登录用户。前置条件:已登录用户。后置条件:查看好友详细信息(包括所有微博,话题,关注,粉丝)关注和取消关注操作。

查看用户信息模块用例如下图3-15所示:添加对好友粉丝的关注添加对好友粉丝的关注对好友进行关注和取消关注对好友进行关注和取消关注添加对好友所关注用户的关注添加对好友所关注用户的关注查看好友的详细信息查看好友的详细信息查看好友的关注列表用户查看好友所有微博信息查看好友所有微博信息查看好友的所有话题查看好友的粉丝列表图3-15查看用户信息用例图查看关注和添加关注功能具体流程图如下图3-16所示:点击进入关注列表点击进入关注列表开始结束查看用户信息添加关注图3-16查看关注和添加关注流程图查看用户所有微博列表功能流程如下图3-17所示:结束结束点击微博按钮开始用户所有微博列表界面查看某一条微博详细信息同时进行评论和转发操作图3-17查看用户所有微博列表流程图第四章系统详细功能实现本应用主要实现了四个主要模块,包括应用登录模块用户可以使用授权配置登录系统。主界面显示模块用户可以发表新的微博。微博浏览模块进入浏览微博的详细页面,用户可以评论微博和转发微博。用户模块可以获取用户的详细信息,可以查看该用户的详细信息微博及删除自己的微博,和该用户所发表的全部微博。4.1登录模块实现4.1.1用户授权配置模块软件运行时,会先进入一个欢迎页面。在等待2秒钟后,程序会检查sharedPerfrences中是否有用户登录账号的信息,无则进入用户授权页面。授权配置页面如下图4-1所示:图4-1用户授权页面软件在首次开打会开启一个新线程,并且UI线程会休眠2秒钟,休眠结束后程序会判断系统中是否存在有效的帐号信息,有则会进入微博,无则会进入用户授权页面。核心代码:newThread(){ publicvoidrun(){ try{ Thread.sleep(2000); if(mAccessToken.isSessionValid()){ startActivity(newIntent(MainActivity.this,HomeActivity.class)); MainActivity.this.finish(); }else{ IntentgoLogin=newIntent(MainActivity.this, LoginActivity.class); startActivity(goLogin); MainActivity.this.finish(); } }catch(InterruptedExceptione){ e.printStackTrace(); } } }.start();4.1.2用户登录模块如果用户是第一次使用,进入授权界面。点击授权按钮,如果手机上装有官方新浪微博客户端并且版本支持sso单点登录,将会调用官方集成授权方式登录。如果不没有装或版本不支持,系统自动条用web授权方式,和sso授权方式授权成功直接进入为微博首页不同,web方式授权成功后,需退出app后,重新打开将直接进入微博首页。如下图4-2所示:图4-2用户登录页面实现算法:第一步:获取微博实体类,传入appkey,secret,以及callback_url。第二步:实例化SsoHandler对象并传入appkey,调用ssoHandler的Authorize函数。第三步:在weiboAuthListener接口回调函数oncomplete中获取access_token存入sharedPerferences中第四步:重写onActivityResult方法,实现微博首页首页登录跳转。图4-3用户确认是否授权信任此应用用户帐号验证通过后,用户选择是否授权并信任此应用,选择授权后,程序将进入微博首页。如上图4-3所示。 4.2主界面显示模块实现首页显示被用户添加了关注的用户的最新微博信息、发表微博、更新最新微博列表。4.2.1显示最新微博列表在此功能模块内,用户可以点击搜索按钮进入搜索页面,点击发布新微博按钮进入发表新微博页面,点击刷新按钮刷新最新的微博列表,并且可以通过滚动鼠标分页显示更多的微博信息。点击刷新后,程序异步向新浪服务器发送获取我关注的微博信息请求。在成功返回json格式的结果后,解析json数据包装到list对象中,然后通过在使用SimpleAdapter放到listview中显示。其中程序开启新线程解析图片地址字符串并包装到Bitmap中。请求成功后如下图4-7所示:图4-7请求首页微博消息图4.2.2发表微博功能用户可以通过点击首页的发表微博按钮,弹出输入对话框,输入内容点击发送按钮。发布新微博页面如下图4-8所示:图4-8新微博发表页面直接调用SDK的update方法传出需要的参数,并在回调方法判断是否成功。核心代码://请求发送到服务器 mStatusesAPI.update(((EditText)findViewById(R.id.msg_text)).getText().toString(),null,null,mListener);发送方法的回调接口if(response.startsWith("{\"created_at\"")){//调用Status#parse解析字符串成微博对象Statusstatus=Status.parse(response);Toast.makeText(NewMsgActivity.this,"发送微博成功!",Toast.LENGTH_LONG).show();}4.3微博信息浏览模块实现通过点击微博列表中的某一条微博信息可以查看这条微博的详细信息。进入浏览微博信息页面可以通过点击页面下方的评论按钮,评论该条微博。也可以点击转发按钮,转发这条微博。微博信息浏览页面如下图4-9所示:图4-9微博信息浏览页面4.3.1评论微博用户通过点击微博详细信息页面的评论按钮进入微博信息评论页面,用户可以输入评论的内容对这条微博信息进行评论。评论微博界面如下图4-10所示:图4-10评论发表页面核心代码:组装WeiboParameters对象。包括微博ID、评论内容、及包含认证信息的令牌AccessToken,然后想服务器发送评论请求。结果在回调函数显示。4.3.2转发微博用户通过点击微博详细信息页面的转发按钮进入微博信息转发页面,用户可以输入评论的内容对这条微博信息进行转发。转发微博界面如下图4-11所示:图4-11转发微博界面4.4获取用户信息模块实现用户通过点击微博详细信息浏览页面中的查看用户详细信息按钮,进入查看用户详细信息的页面,在该页面中用户可以查看被关注的用户的昵称、头像、个人介绍;可以显示该用户的粉丝和粉丝数量;显示用户所关注的用户和关注的数量;显示用户发表过的所有微博和微博数量用户详细信息浏览页面如下图4-12所示:图4-12用户信息主页面4.4.1获取我的所有微博获取我的所有微博包括我发送及转发的微博信息,获取成功后如下图4-15所示:图4-15“我”的所有微博列表信息获取我的所有微博信息流程和上面都大体相同,请求数据——>解析结果——>更新到view组件。解析返回数据和更新view组件都基本相同。4.4.2删除我发送的微博信息只能删除自己发布的微博且必须指定要删除的微博ID。删除如下图4-16所示:图4-16删除微博消息删除必须要传入一个微博ID。在成功获取到微博信息列表后,选中要删除的微博项目,长按2秒后,将自动弹出一个删除对话框,点击确认按钮是后,将想服务器发送删除请求,删除成功后将使用Toast提示是否删除成功。第五章系统的测试与维护5.1单元测试测试系统的第一步是测试组成系统的单个构件。测试这些构件称为单元测试。在单元测试过程中,首先检查代码在程序的算法、数据和语法方面有没有缺陷,最后给该构件输入一个测试用例集,以说明该构件是否正确。在单元测试时,主要对单个模块的功能进行测试,不用理会其他的模块的耦合情况。测试在发表新微博时,输入空内容,或者和上一条内容一样的微博时,程序是否有出现预先设定的提示。具体操作:输入的内容为空,或者和上一条相同的内容。结果:提示用户内容不能为空,或者请不要输入相同内容。结论:要求输入正确内容。测试评论微博时,输入评论内容,如果内容为空,程序是否有出现预先设定的内容为空提示。具体操作:输入空的评论内容。结果:显示评论内容不能为空。结论:微博评论功能正常。5.2集成测试单元测试之后,就需要对系统的所有功能进行测试。在此阶段对照用例进行功能测试。此阶段所发现的往往是概要设计的错误并将各个模块继承起来进行结合测试。继承测试分为两种:一次性组装方式和增殖式组装。即把经单元测试后的模块一次性的组装成系统进行测试,增殖式组装方式即在模块组装的过程中,边组装边测试,每增加一个或几个模块就测试一次,最后组装成最后的系统。总结当今社会对于软件开发是一个分工很细的工作,在开发过程中不同的人负责不同的模块开发,比如有专门的人负责业务逻辑,有专门的人负责图形界面,所以现在的开发人员都是某一方面的专家。在本系统中图形界面不是十分的友好,从美观的角度来说也还是很不够的,这样的界面是不能应用到实践中的。在论文的写作过程中,不仅参考了大量的书籍,而且还有老师指导和帮助,这给论文的编写奠定了良好的理论基础,并且自己亲身体验了现行的微博系统,给本人开发系统及编写论文提供了良好的素材。本系统经历了从系统问题的提出,系统可行性分析,系统数据库设计,总体的功能模块设计,详细设计,功能模块的实现,到最后的程序测试,就是以这样的一个思路完成整个系统的开发。经过几个月的努力,基于Android的新浪微博客户端应用终于完成了。由于对Java浓厚的兴趣引发了本人对Android的好奇心,从一开始什么都不懂一直摸索着运用了很多高级技术完成了这个软件。在这个过程中,我学会了很多知识,比如Android环境的搭建、Intent、Activity、Services、ContentProvider、SQLite等,但我学会的最重要的一点是,利用现有的资源去解决问题。在图书馆和网络上寻找解决问题的答案。虽然,这个软件目前运行良好,但是代码的健壮性还很差,在整个工程的构思方面也不足,用户操作界面还是不够灵活友好,这些问题还需要今后逐一解决。于此同时,这个软件还可以进一步扩展,例如:微博广场、私信、推荐好友等,使功能更加强大,带给用户更好的体验与生活的便捷。通过本系统的开发,使我对书本上的知识点和理论有了更深一层的了解,也使我学会了如何利用所学的知识,把理论结合于实践中,进一步掌握了管理信息系统开发的规律,从而对本专业有了更深刻的认识。此后,我会加倍努力的去研究,在熟练的基础上掌握更多的新型技术,来提高自己的开发水平。通过这次毕业设计,使我感到高科技的力量。在这次毕业设计的过程中,得到了学校的大力支持,给本人提供了舒适的工作学习环境,也得到了吉大老师的精心指导。由于本人第一次完整的设计程序,价值水平有限,设计中难免有不当之处,还请各位老师给予批评和指正。踉踉跄跄地忙碌了一个月,毕业设计课题也将告一段落。点击运行,也基本达到了预期的效果。虚荣的成就感在没人的时候也总会冒上心头。但由于能力和事件的关系,总是觉得有很多不尽人意的地方,譬如,功能不全、外观粗糙、底层代码不合理...数不胜数。可是,又会有点自恋似的安慰自己:做一件事情,不必过于在乎最终的结果,可贵的是过程中的收获,以此来安抚自己尚未平复的心。总结制作过程中的经验和教训,在此对这方面的研究提几点建议,以资参考:要准备充分,在系统分析于设计阶段要做的尽可能详细、全面,以免在后阶段返工,浪费人力、物力、财力。/r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论