基于android开发平台的新浪微博的实现终版.docx
《基于android开发平台的新浪微博的实现终版.docx》由会员分享,可在线阅读,更多相关《基于android开发平台的新浪微博的实现终版.docx(29页珍藏版)》请在冰豆网上搜索。
![基于android开发平台的新浪微博的实现终版.docx](https://file1.bdocx.com/fileroot1/2023-2/1/976a621c-03ed-4e60-854a-dbfe12430e64/976a621c-03ed-4e60-854a-dbfe12430e641.gif)
基于android开发平台的新浪微博的实现终版
毕业设计(论文)
题目:
基于android系统的新浪微博客户端的实现
摘要
本系统基于Android移动开发平台,使用Java语言开发,使系统具有良好的平台移植性和可扩展性。
新浪微博AndroidSDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方微博客户端无需了解复杂的验证和API调用过程,就可以实现分享文字或者多媒体信息到新浪微博。
本系统包括四个模块:
应用程序登录模块,主界面显示模块,微博浏览模块,用户模块。
在登录模块,用户可以使用授权配置和用户注册并且登录系统。
主界面显示模块中,用户可以发表新的微博。
微博浏览模块,进入浏览微博的详细页面,用户可以评论微博和转发微博。
用户模块,可查看该用户的详细信息包括该用户的关注列表,话题列表,粉丝列表,和该用户所发表过的全部微博。
关键词:
新浪微博开放平台;授权配置;微博API调用服务.
Abstract
ThissystembasedonAndroidmobiledevelopmentplatform,useJavalanguagedevelopmentandthesystemwhichhasagoodplatformportabilityandexpansibility.TheSinamicro-blogAndroidSDKthird-partymicro-blogapplicationprovidesdocumenteasytousemicro-blogAPIcallservice,sothatthethird-partymicro-blogclientwithoutunderstandingthecomplexvalidationandAPIcallsprocedure,mayrealizetosharetextormultimediamessagetoSinamicro-blog.
Thissystemincludesfourmodules:
applicationloginmodule,theinterfacedisplaymodule,theblogbrowsingmodule,theusermodule.Inloginmodule,theusercanuseauthorizedconfigurationanduserregisteredandloggedinsystem.Ininterfacedisplaymodule,userscanpostnewmicroblogandthroughthenicknametosearchgoodfriends.Inblogbrowsingmodule,userscancommentontheblogandforwardingtheblogintothedetailedpage.Inusermodule,canviewthedetailedinformationincludingtheusers'attentionlist,topicslist,fanlist,andalltheblogshehasposted.
Keywords:
SinaMicro-BlogOpenPlatform;AuthorizedConfiguration;Micro-BlogAPICallsService.
第一章绪论
1.1课题背景
每一个时代都会催生新的理念,每一个理念又会引领新的潮流,每一个潮流又注定会冲破原有的桎梏,创新是时代的特征,更是IT业的标志。
摩尔定律的持续实现使整个IT业的发展和更新令人手忙脚乱,而作为终端设备中数量级最大的手机,近年更是近乎脱胎换骨,在颠覆传统手机概念的同时,不断挖掘着自身的市场价值,也成为众多厂商利益角逐的角斗场。
IOS在乔布斯的精心策划下一路高歌猛进,Android则凭着开源的方式开山劈路,Symbian和Blackberry的旧有模式被不断蚕食,WindowsPhone则在滞后的泥潭中继续挣扎。
手机终端多样化应用的不断出现,使其在近乎实现PC端功能的同时,也影响着PC的发展。
于是,新浪微博手机客户端便应运而生,而作为市场占有率第一的Android平台下的新浪微博客户端更是拥有广泛的需求。
目前一些基于Android平台的新浪微博客户端相对比较完善,功能也比较齐全,但基于市场利益考虑,均有不同程度的涉及广告的行为,而且界面设计相对传统,招到很多用户的不满。
因此,本课题就致力于开发出一款基于Android平台的新浪微博客户端,来满足用户的使用需求。
1.2微博简介
微博(英文名为micro-blog),即微型博客,是随着Web2.0而兴起的一类开放的互联网社交服务,它允许用户以简短文字随时随地更新自己的状态,每条信息的长度都在140字以内,支持图片、音频、视频等多媒体的出版,每个用户既是微内容的创造者也是微内容的传播者和分享者。
与传统博客相比,微博具有如下特点:
1)准入门槛低。
传统博客强调版本的布置与语言的组织,因此博文的创作需要考虑完整的逻辑性,也就是说,在Blog上写文章的门槛还是很高的;哪怕是一个没有受过严格中文训练的人,只要会发短信,他就能使用微博。
闲得无事,更新一下签名,就被记录了。
2)即时通讯的原创性。
对于每篇微博140个字符的信息量特别适合手机上网用户使用,无论你是在咖啡厅还是在地铁站,都很容易通过手机完成自己的微博。
因此,微博的即时通讯功能非常强大。
很多微博网站,即便在没有网络的地方,只要有手机也可即时更新自己的内容。
一些突发事件或引起全球关注的大事,如果有微博,就能利用各种手段在微博上发表,其真实性以及快捷性给人带来的现场感,甚至超过所有媒体。
3)更强的互动性。
与博客上面对面的表演不同,微型博客上是背对脸的follow(跟随),就好比你在电脑前打游戏,路过的人从你背后看着你怎么玩,而你并不需要主动和背后的人交流。
既可以一点对多点,也可以点对点。
在Web浏览器中实现好友管理是非常方便的,如果你想在手机中进行管理的话同样是非常方便的,移动终端提供的便利性和多媒体化,使得微型博客用户体验的粘性越来越强。
与传统博客相比,微型博客具有更好的及时性、开放性和随意性,用户不仅可以通过网页浏览和发布信息,还可以通过手机、即时通讯软件的客户端、桌面客户端、外部API接口等多种途径使用微博功能。
对单条信息长度的限制是微博服务形式的核心特征,其信息短、直观、简洁的特点便于迅速阅读和传播。
1.3Android简介
Android是Google开发的基于Linux平台的开源手机操作系统。
它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件。
Android系统就是一个开放式的手机和平板电脑的操作系统,目前的发展势头十分迅猛。
1.4研究目标
1)了解Android应用程序的设计和开发过程行。
2)使用多种组件进行Android平台新浪微博客户端的开发。
本软件是基于Eclipse的开发环境,依托新浪微博开放平台提供的接口,开发出针对Android平台的新浪微博客户端。
1.5研究内容、意义
1)本课题研究的内容包括创建基于Android平台的新浪微博客户端应用,使用Java语言编写,通过新浪微博开放平台提供的接口创建的微博客户端应用。
2)本课题研究的意义在于使用基于Android系统的新浪微博客户端可以方便的在本系统中使用发微博,评论微博,转发微博,消息提醒,为用户推荐微博等全面的功能。
用户可以随时随地的更新自己的微博信息,把看到的、想说的一切都以最快的速度分享给大家。
第二章系统分析
2.1系统可行性分析
2.1.1市场的可行性
项目是否可以实施,主要应该看这个项目是否有潜在的市场,以及市场的变化对项目的开发结果会有哪些重要影响。
一个项目的市场需求是推动技术进步的主要动力,有时市场的需求,决定了某项技术的产生。
有的时候,即使没有技术,没有经济实力,只要找对市场,也会通过其他渠道来达到项目的经济等方面的要求来开发项目,所以说,市场需求是项目可行性的根本。
本系统基于移动平台的微博客户端系统,是人们日常生活中和朋友交流互动的必要工具。
只要针对大众对物品的喜好,使系统功能齐全,操作简单,界面美观大方,就一定会有市场潜力。
2.1.2经济上的可行性
本系统为毕业设计练习实践型项目,所使用的开发工具都由学校免费提供,因此开发成本比较低,所以开发基于Android移动平台的微博客户端在经济上是可行的。
2.1.3技术上的可行性
新浪微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,基于Android系统开发使用Java作为编程语言具有良好的平台移植性和可扩展性,所以在技术上也是可行的。
2.1.4运行上的可行性
本应用是基于Android系统手持移动终端,Android系统手机在智能手机和平板电脑市场都有很高的占有率,各个手机厂商也争先推出更新版本和硬件配置更高的终端,从市场上一般的Android手机硬件配置来看运行本系统应该是绰绰有余所以在运行可行性上更是可行的。
2.2系统需求分析
本应用程序启动后,可以通过使用新浪的微博开放平台,利用接口调用返回的数据,用户信息配置,授权认证,用户登录。
登录成功之后进入程序首页,可以显示微博好友发布的最新微博信息,以及相关图片的浏览。
可以查看好友的个人信息、粉丝数量、发表的话题、所有发表过的微博以及其关注的好友情况。
从以上描述可以基本了解到该应用的功能需求:
1)启动应用程序,进入欢迎页面。
暂停2s后,判断是否有授权账号,有并且在有效期内则直接进入微博首页;无则进入用户授权页面。
2)如果用户是第一次使用,进入授权界面。
点击授权按钮,如果手机上装有官方新浪微博客户端并且版本支持sso单点登录,将会调用官方集成授权方式登录。
如果不没有装或版本不支持,系统自动条用web授权方式,和sso授权方式授权成功直接进入为微博首页不同,web方式授权成功后,需退出app后,重新打开将直接进入微博首页。
3)用户登录系统之后,进入微博客户端首页,用户可以查看到自己关注到的好友的最新微博信息。
4)首页,在屏幕的上方有一个发表微博的按钮,用户输入内容,点击发送可以发表自己的微博。
用户也可以在此页面点击刷新按钮,刷新当前的最新微博。
5)点击用户发表的某一条微博信息,进入微博浏览页面,可以查看到这条微博信息的全面内容,包括评论数、转发数、图片等多媒体信息。
用户可以点击屏幕下方的评论按钮,发表自己对该篇微博的评论。
点击转发按钮则可以转发这条微博内容。
6)还可以查看别人@我及评论的相关信息,包括我评论别人和别人评论我的信息。
7)查看自己的的信息,包括用户名、性别、头像、详细信息和我的微博等。
并可以删除我发布的微博。
删除后将自动刷新当前列表。
8)更多选项卡关于微博,展示的是微博的开发者信息、简介及微博使用的注意事项
9)退出当前账号,可以注销当前用户,更换其他用户使用。
2.3系统规划概述
凡事预则立,不预则废。
科学的规划对于任何需要经过较长时间努力才能实现的事情都是非常重要的。
规划,一般是指对较长时期的活动进行总体的、全面的计划。
现代社会组织,特别是企业的结构和活动内容都很复杂,应该充分认识这一阶段工作所具有的特点,以提高系统规划工作的科学性和有效性。
1)系统规划工作是面向长远的、未来的、全局性和关键性的问题,因此它具有较强的不确定性,非结构化程度较高。
2)其工作环境是组织管理环境,高层管理人员是工作的主体。
3)系统规划是为整个系统建设,确定目标、战略、系统总体结构方案以及资源计划。
因而,整个工作过程是一个管理决策过程。
同时,系统规划也是技术与管理相结合的过程,它确定了利用现代信息技术有效的支持管理决策的总体方案。
4)系统规划人员对管理与技术环境的理解程度、对管理与技术发展的见识,以及开创精神与务实态度是规划工作的决定因素。
5)规划工作的结果是要明确回答规划工作内容中提出的问题,描述出系统的总体概貌和发展进程,为系统的发展制定一个科学而又合理的目标和达到该目标的可行方案,而不是替代后续阶段的工作。
2.4基于Android新浪微博客户端的建设原则
1)统一规划、分步设计。
2)坚持标准化和可行性。
3)保证系统的稳定性和安全性。
4)保证网络系统的先进性和有效性。
5)操作简单、人机界面友好,便于用户理解和使用。
2.5系统开发环境及相关技术
Android的上层应用程序是使用Java语言开发的,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java开发环境Eclipse。
如果只有Eclipse那还不够,因为是使用Java语言进行开发,还应该具备由SUN公司提供的JavaSDK(其中包括JRE:
JavaRuntimeEnvironment)。
此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。
同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。
第三章系统概要设计
3.1系统设计目标
1)通过创建新浪微博客户端应用,让用户随时随地与好友分享身边的新鲜事。
2)通过友好的界面设计和完善的功能,使微博用户更加得心应手的与好友交流互动,尽可能多的给用户提供方便。
3.2系统模块设计
3.2.1系统功能模块划分
功能模块划分是描述系统的一个过程,需要将需求分析中的感性描述进行抽象化,提取出要实现的功能,这是整个系统开发的一个关键过程。
在系统分析的基础上,确定系统的功能模块。
系统的功能模块图如下图3-1所示:
图3-1系统功能模块图
3.2.2系统总体结构设计
系统总体结构设计确定软件由哪些模块组成以及这些模块之间的动态调用关系。
微博客户端不是一个简单的概念,它包含了许多个内容,是由多个页面组成的一个整体的系统。
1)在功能方面,采用图形用户界面技术,使系统能够有多重图形窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。
2)在系统开放性方面,基于优秀的开发平台,再按照软件工程开发规范实现系统的开放性,既便于内容的扩充又便于技术的升级,以适用今后其他人的借鉴需求。
3)在系统和数据的安全性方面,本项目是采用OAuth认证方式,采用这种方式就需要有用户的新浪UserID、AccessToken、AccessSecret这3个要素才能自由便利的调用新浪的开放接口。
本项目是这样实现的,当用户第一次使用软件时,进行授权认证获取这3个要素,同时将其存储到SharedPreferences中以便用户下次使用。
当用户再次使用时就不需要重新进行繁琐的授权认证操作,直接从SharedPreferences中读取出来即可使用。
这样的需求载入页面的功能设定是这样实现的:
当用户打开软件显示载入页面时开始检查SharedPreferences中是否已经保存有用户的新浪微博的UserID号、AccessToken、AccessSecret的记录,如果一条记录都没有那就说明用户是第一次使用本软件,那么跳到认证授权页面进行授权认证操作(认证授权功能在接下来的两篇中进行实现讲解)获取这3个值保存到SharedPreferences中,如果已经包括了记录那么读取这些记录的UserID号、AccessToken、AccessSecret值然后根据这3个值调用新浪的API接口获取这些记录对应的用户昵称信息等。
OAuth认证的原理如下图3-2所示:
图3-2OAUTH2.0认证原理图
3.2.3系统模块用例图分析
1)用户注册模块
功能描述:
在用户第一次使用该应用时,如还未获得新浪微博的账号,可以通过配置页面跳转到新浪微博的用户注册页面。
参与者:
未注册的用户。
前置条件:
所有未注册的用户。
后置条件:
提示注册是否成功。
该模块用例如下图3-3所示:
3-3用户注册用例图
2)用户登录和授权模块
功能描述:
对于第一次使用该应用的用户,在程序启动之后进入配置页面,输入用户名和密码进行授权认证。
对于用户在自己的手机上使用过或者已经通过了授权认证则可以不用输入用户名和密码就可以选择用户进行登录。
参与者:
未通过授权认证或者未登录。
前置条件:
未通过授权认证或者未登录的用户。
后置条件:
通过授权配置或者直接登录系统。
用户登录和授权模块用例如下图3-4所示:
用户
图3-4用户登录和授权认证用例图
用户登录和授权模块流程图如图3-5所示:
图3-5用户登录和授权流程图
3)系统首页信息显示模块
功能描述:
显示被用户添加关注的好友的最新微博信息。
参与者:
合法登录用户。
前置条件:
已登录用户。
后置条件:
在首页显示所有被用户添加关注的最新微博信息列表。
该模块用例如下图3-6所示:
图3-6 系统首页信息显示用例图
系统首页显示模块流程图如图3-7所示:
图3-7显示主界面流程图
4)发表微博模块
功能描述:
该模块主要实现了用户发表微博的功能。
参与者:
合法登录用户。
前置条件:
已登录用户。
后置条件:
新微博信息是否发表成功。
该模块用例如下图3-8所示:
图3-8 发表微博用例图
发表新微博流程图如下图3-9所示:
图3-9发表微博流程图
5)通过关键字搜索相关用户模块
功能描述:
该模块主要实现了通过关键字搜索相关用户的功能。
参与者:
合法登录用户。
前置条件:
已登录用户。
后置条件:
搜索成功返回结果。
搜索模块用例如下图3-10所示:
图3-10 搜索用例图
搜索功能流程图如下图3-11所示:
图3-11搜索功能流程图
6)查看微博内容模块:
功能描述:
该模块实现了用户可以通过点击某一条微博信息查看该微博的所有内容,并进行评论和转发操作。
参与者:
合法登录用户。
前置条件:
已登录用户。
后置条件:
可以转发和参与评论。
查看微博内容模块用例如下图3-12所示:
图3-12查看微博用例图
评论微博功能流程图如下图3-13所示:
图3-13评论功能流程图
转发功能流程图如下图3-14所示:
图3-14转发功能流程图
7)查看用户信息模块
功能描述:
查看好友的详细信息。
参与者:
合法登录用户。
前置条件:
已登录用户。
后置条件:
查看好友详细信息(包括所有微博,话题,关注,粉丝)关注和取消关注操作。
查看用户信息模块用例如下图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(new
Intent(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方法传出需要的参数,并在回调方法判断是否成功。
核心代码:
//请求发送到服务器mStatusesA