本科毕业设计新浪微博android客户端的实现.docx

上传人:夺命阿水 文档编号:1035458 上传时间:2024-03-01 格式:DOCX 页数:53 大小:292.50KB
返回 下载 相关 举报
本科毕业设计新浪微博android客户端的实现.docx_第1页
第1页 / 共53页
本科毕业设计新浪微博android客户端的实现.docx_第2页
第2页 / 共53页
本科毕业设计新浪微博android客户端的实现.docx_第3页
第3页 / 共53页
本科毕业设计新浪微博android客户端的实现.docx_第4页
第4页 / 共53页
本科毕业设计新浪微博android客户端的实现.docx_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《本科毕业设计新浪微博android客户端的实现.docx》由会员分享,可在线阅读,更多相关《本科毕业设计新浪微博android客户端的实现.docx(53页珍藏版)》请在课桌文档上搜索。

1、本科毕业设计新浪微博android客户端的实现本科生毕业设计(论文)题目:姓名:班级:微博客户端的设计开发学号:计08-3班二。一二年六月中国矿业大学本科生毕业设计姓名:学号:学院:计算机科学与技术专业:计算机科学与技术设计题目:微博客户端的设计开发专题:指导教师:徐慧职称:讲师2012年6月学院计算机科学与技术专业年级计08级学生姓名任务下达日期:2012年1月10日毕业设计日期:2012年1月4日至2011年6月100毕业设计题目:微博客户端的设计开发毕业设计专题题目:毕业设计要紧内容与要求:毕业设计的软件内容及要求:1 .用户界面美观有用,便于各功能页面导航。2 .系统各功能模块要明确划

2、分。论文的内容及要求:1 .论文对系统设计的思想进行全面描述,介绍整个软件开发过程。2 .进行系统需求分析,概要设计,全面设计,性能测试。3 .说明开发过程中遇到的问题极其解决方法。4 .最后写出软件开发的体会及收获。5 .严格按照软件工程要求的格式编写文档。指导教师评语(基础理论及基本技能的掌握;独立解决实际问题的能力;研究内容的理论根据与技术方法;取得的要紧成果及创新点;工作态度及工作量;总体评价及建议成绩;存在问题;是否同意答辩等):成绩:指导教师签字:指导教师评语(基础理论及基本技能的掌握;独立解决实际问题的能力;研究内容的理论根据与技术方法;取得的要紧成果及创新点;工作态度及工作量;

3、总体评价及建议成绩;存在问题;是否同意答辩等):成绩:指导教师签字:答辩情况提出问题回答问题正确三j有原则性蝴没有回答答辩委员会评语及建议成绩:答辩委员会主任签字:年月日学院领导小组综合评定成绩学院领导小组负责人:年月日微博即MiCroBlog,网上昵称围脖,是一种非正式的迷你型博客,是一个基于用户关系的信息分享、传播及获取平台。用户能够通过WEB、WAP与各类客户端组件个人社区,以140字左右的文字更新信息,并实现即时分享。它是一种互动及传播性极快的工具,传播速度甚至比媒体还快。本文阐述了新浪微博客户端的各类有关知识,特别对Android客户端作了全面的介绍,同时将设计过程中所用到的要紧方法

4、及控件进行了全面说明。此次毕业设计以Android操作系统作为开发平台,ECliPSe作为开发环境,参照新浪提供的API,进行微博客户端软件的设计与实现。本软件实现了微博首页获取数据、我的资料、好友资料、我的关注、我的粉丝、收藏微博、评论微博、转发微博、发表微博等功能,具备了通常微博所具有的功能,具有较强的有用性。关键词:Android平台;微博;OAUth认证协议ABSTRACTMicrobloggingisarelationshipbasedonuserinformation-sharing,disseminationandaccessplatform.UserscanuseWEB,WAP

5、individualcomponentsandavarietyofclientcommunitiestointerabout140wordsoftextupdates,andsharethisinstantly.Itisaninteractiveandfastspreadtool,spreadevenfasterthanthetraditionalmedia.ThisarticleintroducesthedevelopmentofAndroid-basedmicrobloggingsystem,thesystemisdividedintoserver-sideandmobileclient.

6、MicrobloggingsystemusestheMVCdesignpattern,thethree-layerarchitecture.ThedevelopmenttoolsistheEclipse.ThedevelopingenvironmentisJDK7.0andtheAndroid2.3andusesinarestAPI.Thissinaandroidmicroblogimplementlogining,register,releasemicroblogging,visittheFriendsHomePage,uploadphotos,updatestatusandsoon.Exc

7、epttheabovefunctions,inmobileclient,thetablefordiscussionandreal-timemicrobloggingupdateremindersareadded.DesignandImplementationofthetablefunctionistoresolvetheproblemofthemicrobloggingandmobilizetheenthusiasmoftheusers.Keywords:Android;Microblog;OAuthprotocol1绪论1Ll开发背景及意义11.1.1 开发背景11.1.2 意义31.2开发

8、工具及运行环境31.2.1 开发工具31.2.2 运行环境42项目所用技术介绍52.1 Andorid简介52.2 Android系统架构52.3 系统组件52.3.1 Activity62.3.2 Service62.3.3 BroadcastReceiver62.3.4 ContentProvider73系统分析73.1 功能需求73.2 系统用例图94系统设计104.1 程序总体架构104.2 模块功能设计115全面设计与编码135.1 授权模块135.1.1 OAUth有关的三个URL135.1.2 OAuth有关的参数定义135.1.3 OAuth认证授权流程145.2 微博首页模块

9、165.3 公布微博模块255.3.1 基本功能255.3.2 选择图片上传285.3.3 好友、添加热点话题与表情296系统测试316.1 授权模块测试用例326.2 发表微博测试用例336.3 浏览微博测试用例336.4 系统评价336总结34参考文献35翻译部分36英文原文36中文译文40致谢441绪论1.l开发背景及意义1.1.1 开发背景2006年3月,博客技术先驱blogger创始人埃文威廉姆斯(EVanWiHiamS)创建的新兴公司TWitter推出了微博服务。在最初阶段,这项服务只是用于向好友的手机发送文本信息。TWitter英文原意为小鸟的叽叽喳喳声,用户能用如发手机短信的数

10、百种工具更新信息。TWitter的出现把世人的眼光引入了微博的小小世界里。TWitter是一个社交网络及微博客服务。现在,用户能够经由SMS、即时通信、电邮、Twitter网站或者TWitter客户端软件(如TWitterrifIC瀚入最多140字的文字更新,TWitter被Alexa网页流量统计评定为最受欢迎的50个网络应用之一。在2007年5月,国际间计算总共有111个类似Twitter的网站。然而,最值得注意的仍是Twitter,它于2007年在得克萨斯州奥斯汀举办的南非西南会议赢得了博客类的网站奖。TWitter的要紧竞争对手是PlUrk与Jaiku。后来微博客的新服务特色持续诞生,比

11、如PIUrk有的时候间轴能够观看整合了视讯与照片的分享,IdentiPownce整合了微薄客加上档案分享与事件邀请。TWitter在国外的“大红大紫”,令国内有些人终于坐不住了。2005年从校内网起家的王兴,在2006年把企业卖给千橡互动后,于第二年建立了饭否网。同样擅长技术活的SWiSen也瞄准了这个行业,很快清新、简约的随心微博也开始正式上线。而腾讯作为一个拥有4.1亿QQ用户的企业,看着用户对随时随地公布自己状态的强烈需求后,也忍不住尝试了一把,2007年8月13日腾讯滔滔上线。但事实证明,TWitter建立的“微型王国”不是在短时间内掘出黄金的浅矿,国内的微博目在当时尚处于慢热的状态。

12、据悉,随心微博、饭否网等目前仅拥有几十万用户,每月处理几千万条信息。国内微博不约而同地将现在的目光放在了产品调整与服务完善上,在尚无法吸引到风险投资的眼光之前,他们最需要做的可能是如何靠自己的能力继续活下去。从2007年中国第一家带有微博色彩的饭否网开张,到2009年,微博这个全新的名词,以摧枯拉朽的姿态扫荡世界,打败奥巴马、甲流等等名词,成为全世界最流行的词汇。伴随而来的,是一场微博世界人气的争夺战,大批量的名人被各大网站招揽,各路名人也以微博为平台,在网络世界里聚集人气,同样,新的传播工具也造就了无数的草根英雄,从默默无闻到新的话语传播者,往往只在一夜之间、寥寥数语。2009年7月中旬开始

13、,国内大批老牌微博产品(饭否、腾讯滔滔等)停止运营,一些新产品开始进入人们的视野,像1月份开放的大围脖,6月份开放的FOIlOW5,7月份开放的贫嘴,8月份开放的新浪微博。其中FOIlOW5在2009年7月19日孙楠大连演唱会上的亮相,是国内第一次将微博引入大型演艺活动,与twitter当年的进展颇有几分神似。2010年国内微博迎来了春天,微博像雨后春笋般崛起。四大门户网站均开设微博。根据有关公开数据,截至2010年1月份,微博类产品在全球已经拥有7500万注册用户。中国互联网络信息中心(CNNIC)公布的第28次中国互联网络进展状况统计报告报告显示,2011年上半年,中国微博用户从6331万

14、增至1.95亿,增长约2倍。该报告指出,中国互联网的普及率增至36.2%,较2010年增加1.9%。2011年上半年,我国微博用户数量从6331万增至1.95亿,半年增幅高达208.9%。微博在网民中的普及率从13.8%增至40.2%。从2010年底至今,手机微博在网民中的使用率比例从15.5%上升到34%o至今,新浪微博用户数超过1亿,得益于抢占了先机,而且在整体的战略执行上也比较完全到位,因此获得了现在的地位。仅仅三年时间,新浪微博就为新浪生下了一个价值几十亿美金的,金蛋开放APl(OPenAPD是SaaS(SoftwareasaService,软件即服务)模式下常见的一种应用,网站的服务

15、商将自己的网站服务封装成一系列APKApplicationProgrammingInterface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的APl就被称作OPenAPl(开放API)。网站提供开放平台的API后,能够吸引一些第三方的开发人员在该平台上开发商业应用,平台提供商能够获得更多的流量与市场份额,第三方开发者不需要庞大的硬件与技术投资就能够轻松快捷的创业,从而达到双赢的目的,开放API是大平台进展、共享的途径,让开发者开发一个有价值应用,付出的成本更少,成功的机会更多。今天,OPenAPI作为互联网在线服务的进展基础,已经成为越来越多互联网企业

16、进展服务的必定选择。OpenAPI的典型成功范例是GoogleMapsAPI与Twitter,GoogleMaps有Google这样的大公司支持,成功当然并不惊奇,但是TWitter的成功就很能说明问题。事实上,假如TWitter仅仅是一个网页形式的微博客的话,JaikU就能够轻松的将其打败,TWitter根本不可能取得今天的成就。TWitter的活力就在于开放API,TWitter的成功与开放APl密不可分。TWitter的开放APl能够激发个人创作的积极性,引来了大量的第三方应用,这些第三方应用同时又扩大了Twitter原有的功能,让Twitter更好用,从而极大丰富了Twitter平台自

17、身的功用与乐趣,现在,TWittei超过一半的流量都是来自第三方APL随着Twitter的OPenAPl公布数量不断增加,运营过程中也开始暴露出一些问题。OPenAPl的巨大的访问量引起了TWitter种种性能问题,使得TWitter的稳固性大为降低,为了支持大量的外部API,TWitter宕机频繁,这估计是几乎所有TWitter用户都遇到过的现象。但即使如此,TWitter也没有放弃对OPenAPl的支持。由于开放API是历史的潮流,是必定的趋势,顺之者昌,逆之者亡,Twitter之因此击败众多各式各样的微博客网站,开放APl功不可没。国内的主流微博服务也纷纷开放了api,供广大第三方开发者

18、接入微博提供了途径。本论文就是利用新浪微博的开放api来完成的。1.1.2 意义微博,有点像聊天室或者者说是像茶楼酒肆。是沟通人与人之间思想,交流知识,讨论问题与交换观点的网络交际平台。在这个平台上首先是虚拟的人(性别,年龄,职业,喜好,职务等?)共同谈论你所感兴趣的任何话题,通过你们之间交流争辩让你对它有更进一步的熟悉与认知。微博的传播速度更快,关注的人更多,时效性更强。微博上有许多信息是在传统媒体上看不到的,而公众对公共话题天生有一种关注心态,在微博上企业与客户之间不再是单纯的买卖关系,微博用好了,就能够在企业用户中培养出超越买卖的情感关系,在市场竞争中游刃有余。传统的企业口碑营销,偏重在

19、认识的人之间的口碑,但现在,越来越多的年轻人相信网络社群上不认识的“亲朋好友”的评价。因此,赢得网友的口碑,对企业而言,几乎跟花钱做广告一样重要。微博客的出现丰富了企业网络营销的手段,帮助企业“赢得”陌生人的口碑。新浪微博要紧用户群体集中在影视明星、企业高管、经济学者、传媒专家、营销策划人、评论员、主持人(主播)、创业者、网络红人,这些人基本上代表着颠覆与变革、创新与时尚。微博客作为一个新的交流互动平台,正在受到越来越多人的青睐。相比博客而言,微博客使用更加简单,用户所付出的单位成本、精力投入都更少,写作门槛更低,用户扩展更为迅速,为可能实现的媒体信息传播积存了庞大的通讯员队伍。同时.,整合各

20、类工具特别是手机短信的优势,微博客具备了实时传播的特性,在面对突发新闻事件时,微博客的报道速度往往能领先于传统媒体。随着微博的“客”流量不但呈爆炸式增长,而且其影响力也与日俱增。微博客迅速成为中国企业及时传播信息,增加用户与企业粘性的营销利器。众多中小企业纷纷设立官方微博客,安排专人在新浪微博客开博,与粉丝紧密互动,积极推广企业品牌。微博预示着个体的力量不再孱弱,它在影响与改变这个世界上正发挥越来越大的作用。企业微博的最大价值在于构建与用户沟通的渠道与平台,高效传达及展现企业产品与服务,实现企业品牌的快速传播。越来越多的传统企业成功借助微博宣传企业品牌与企业文化,通过建立口碑来获得长期利益。1

21、.2开发工具及运行环境1.2.1 开发工具1 .操作系统:Windows7,SPl2 .开发工具:EclipseIDEforJavaDevelopers,Version:IndigoServiceRelease23 .插件:AndroidDevelopmentTools(ADT)PluginforEclipse4 .开发语言:Java1.2.2运行环境1 .手机型号:摩托罗拉MB5252 .操作系统:AndroidGingerbread(2.3.7)3 .硬件参数:a) CPU:德州仪器OMAP3610,800MHzb) Ram:512MBc)屏幕:3.7寸,854X480像素2项目所用技术介

22、绍2.1 Andorid简介Android是一种以Linux为基础的开放源代码操作系统,要紧使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或者“安致”。Android操作系统最初由AndyRUbin开发,最初要紧支持手机。2005年由GoOgIe收购注资,并组建开放手机联盟开发改良,逐步扩展到平板电脑及其他领域上。Android的要紧竞争对手是苹果公司的iOS与RIM的BlackberryOSo2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年2月数据,AndrOid占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为

23、68.4%o2.2 Android系统架构AndrOid的系统架构与其它操作系统一样,使用了分层的架构。android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层与IinUX核心层。Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速进展,如今已同意开发者使用多种编程语言来开发AndrOid应用程序,而不再是往常只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在AndrOid中,开发者能够使用JaVa作为编程语言来开发应用程序,也能够通过NDK使用C/C+作

24、为编程语言来开发应用程序,也可使用SL4A来使用其他各类脚本语言进行编程(如:pythonIuatclPhP等等),还有其他诸如:Qt(qtforandroid)Mono(monoforandroid)等一些著名编程框架也开始支持AndrOid编程,甚至通过MonoDroid,开发者还能够使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别公布了针对初学者的AndrOidSimPIe语言,该语言类似BaSiC语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、Seneha、dojo、mobRPhOneG叩等等都已经支持Android开发。而在And

25、roid系统底层方面,Android使用C/C+作为开发语言。2.3 系统组件Android开发四大组件分别是:活动(ACtiVity):用于表现功能。服务(SerVice):后台运行服务,不提供界面呈现。广播接收器(BroadCaStReCeiver):用于接收广播。内容提供商(ContentPrOVider):支持在多个应用中存储与读取数据,相当于数据库。2.3.1 ActivityAndroid中,Activity是所有程序的根本,所有程序的流程都运行在ACtiVity之中,ACtiVity能够算是开发者遇到的最频繁,也是AndrOid当中最基本的模块之一。在Android的程序当中,A

26、ctivity通常代表手机屏幕的一屏。假如把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity当中能够添加一些ButtonCheckbox等控件。能够看到ACtiVity概念与网页的概念相当类似。通常一个Android应用是由多个Activity构成的。这多个Activity之间能够进行相互跳转,比如,按下一个BUttOn按钮后,可能会跳转到其他的ACtiVity。与网页跳转略微有些不一样的是,Activity之间的跳转有可能返回值,比如,从ACtiVityA跳转到ActivityB,那么当ActivityB运行结束的时候,有可能会给ActivityA一个返回值。这样

27、做在很多时候是相当方便的。当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,同时压入历史堆栈中。用户能够通过回退操作返回到往常打开过的屏幕。我们能够选择性的移除一些没有必要保留的屏幕,应为Android会把每个应用的开始到当前的每个屏幕储存在堆栈中。2.3.2 ServiceService是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,同时能够与其他组件进行交互。Service是没有界面的长生命周期的代码。Service是一种程序,它能够运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想

28、上网了,那么,我们打开AndrOid浏览器,这个时候尽管我们已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。事实上这个播放就是由播放音乐的Service进行操纵。当然这个播放音乐的Service也能够停止,比如,当播放列表里边的歌曲都结束,或者者用户按下了停止音乐播放的快捷键等。service能够在与多场合的应用中使用,比如播放多媒体的时候用户启动了其他ACtiVity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。2.3.3 BroadcastReceiver在Androi

29、d中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadCaStReCeiVer是对发送出来的BrOadCaSt进行过滤同意并响应的一类组件。能够使用BroadcastReceiver来让应用对一个外部的事件做出响应。这是非常有意思的,比如,当电话呼入这个外部事件到来的时候,能够利用BroadcastReceiver进行处理。比如,当下载一个程序成功完成的时候,仍然能够利用BroadcastReceiver进行处理。BroadcastReceiver不能生成UL也就是说关于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过Notificatio

30、nManager来通知用户这些情况发生了。BroadcastReceiver既能够在AndroidManifest.Xml中注册,也能够在运行时的代码中使用ConteXt.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各类应用还能够通过使用Context.SendBroadcast()将它们自己的intentbroadcasts广播给其他应用程序。注册BroadcastReceiver有两种方式:(1)在AndroidManifest.Xml进行注册。这种方法有一个特点即使你的应用程序已经关闭了,但这个BroadCa

31、StReCeiVer依然会同意广播出来的对象,也就是说不管你这个应用程序时开还是关都属于活动状态都能够同意到广播的事件;(2)在代码中注册广播。第一种俗称静态注册,第二种俗称动态注册,这两种注册BroadcastReceiver的区别:动态注册较静态注册灵活。实验证明:当静态注册一个BroadCaStReCeiVer时,不论应用程序是启动与否。都能够同意对应的广播。动态注册的时候,假如不执行UnregisterReceiverO;方法取消注册,跟静态是一样的。但是假如执行该方法,当执行过以后,就不能同意广播了。2.3.4 ContentProviderContentProvider是Andro

32、id提供的第三方应用数据的访问方案。在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不同意其他直接访问的。Andorid当然不可能确实把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是ContentPrOVider。应用想对外提供的数据,能够通过派生ContentProvider类,封装成一枚ContentProvider,每个ContentProVider都用一个Uri作为独立的标识,形如:contentcom.xxxxx,所有东西看着像REST的样子,但实际上,它比REST更为灵活。与REST类似,Uri也能够有两种

33、类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给你id的Uri你也能够返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的RESTo另外,ContentProvider不与REST一样只有Uri可用,还能够同意Projection,Selection,OrderBy等参数,这样,就能够像数据库那样进行投影,选择与排序。墓询到的结果,以Cursor(参见:reference/android/database/Cursor.html)的形式进行返回,调用者能够移动CUrSOr来访问各列的数据。COmentProVider屏蔽了内部数据的存储细节,向外提供了上述统一的接

34、口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。ContentPn)Vider内部,常用数据库来实现,AndrOid提供了强大的SqIite支持,但很多时候,你也能够封装文件或者其他混合的数据。在各大组件中,Service与ContentProvider都是那种需要持续访问的。Service假如是一个耗时的场景,往往会提供异步访问的接口,而COntentPrOVider不论效率如何,都提供的是约定的同步访问接口。3系统分析3.1功能需求此次程序设计任务是Android平台下的新浪微博客户端设计,程序将在真实手机运行调试。此次程序设计用户界面要求较为友好,由于

35、针对的用户为Android智能手机用户,因此程序的操作全部能够通过触控完成操作。本新浪微博客户端要求设计合理.在设计完成后,要求程序能够实现新浪微博的登录功能。同时,程序还务必能够实现对对新浪微博的首页信息获取,用户资料,好友资料,发表微博,用户的关注,用户的粉丝,转发微博,评论微博,收藏微博,我发表的微博等。最后,新浪微博获取信息要具有较高的执行效率。此次程序设计的操作系统要求为WindOWS7或者Linuxo此次程序设计需要在EeIiPSe环境下开发。本客户端的数据都是通过网络来自于新浪的服务器,产生的数据也是上传到新浪的服务器,在客户端存储的只有OAUth产生的一些省份识别信息,因此本客

36、户端无需使用数据库。基于系统需求分析,该系统需要实现下列功能:(1)用户登录授权:当用户第一次使用该软件时,会打开新浪微博的授权页面,假如是老用户,则授权登录,若是新用户,则注册新浪微博,然后跳转到微博首页。(2)公布微博:公布微博是微博的基本功能,用户将自己想要向外界传达的信息进行公布,这是用户向外传播信息的最要紧的途径与方法。(3)修改用户个人信息:用户能够根据个人需要修改自己的信息,包含用户名、email、心情、与上传头像或者者更换为其他头像。(4)查看微博更新:在微博的首页要显示用户关注的博友的最近微博更新,并能够查看微博的评论,与查看博友的主页。3.2系统用例图图3-1系统用例图4系

37、统设计4.1程序总体架构在三层结构中(图4-1),解决了客户机/服务器模式面临的许多问题。通过划分客户与服务器之间的功能,分布式计算提供了一种把应用中的用户界面从企业逻辑中分离出来的自然方法。在分布式环境下,企业逻辑提供了一种把应用中的用户界面从企业逻辑中分离出来的自然方法。在分布式环境下,企业逻辑集中地安装在应用服务器上,这样就降低了客户端的负载,同时对敏感信息的访问也能够得到很好的操纵。使用分布式计算有着多方面的技术优势,包含:1)封装性2)性能3)全性管理在分布式计算模式中,由于所有的商业逻辑都驻留在服务器端,信息管理部就能够十分方便地监控服务器的运行情况,很容易地操纵访问服务器与与服务

38、器应用打交道人员的数量。这能够大大简化管理员对系统的管理,减轻系统保护的工作量,并确保系统的可靠运行。服务器图4-1三层客户/服务器模型软件设计时,考虑到整个系统的连续性与可扩充性,我们将系统应用体系分为三分:用户表现层、数据访问层、商业逻辑层。(1)用户表现层:处理用户界面的功能;(2)数据访问层:在通常情况下指数据库;(3)商业逻辑层:指在程序中做出职能决策的那一部分功能。微博客户端的结构图如下所示:新浪微博图4-2微博客户端结构图4.2模块功能设计本新浪微博客户端大致分为首页、微博详情、用户信息、公布微博、查看评论等模块,分别负责不一致的功能:1 .授权模块:访问用户的信息与数据需要通过

39、用户的授权,因此务必有用户授权的模块本软件才能正常使用。2 .首页:是用户浏览微博的界面,会将用户所关注的人的微博按照时间先后顺序排列,其中会显示微博的作者、公布时间、内容、转发评论数量、公布方式等。首页是用户使用最多的界面,也是软件初次打开的默认界面。3 .微博详情:当用户在首页浏览微博的时候,点击某一条微博就会进入到微博详情的界面,这个界面会更全面的展示用户所点击的那条微博,同时提供转发与评论的功能按钮。4 .用户信息:用户信息是展示用户的界面,何以展示用户本身的信息并修改,也能够查看任何用户感兴趣的用户。5 .公布微博:用来公布新微博的界面,转发与评论的时候也会用到这个模块。6 .查看评

40、论:用来浏览某一条微博的评论。5全面设计与编码下面就对每个模块的设计与开发进行全面叙述:5.1 授权模块新浪微博使用OAUth授权方式来使第三方应用访问用户的数据,这样的话第三方应用就能够在不明白用户帐号与密码的情况下获取用户数据。OAUth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不一致之处是OAUth的授权不可能使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就能够申请获得该用户资源的授权,因此OAUth是安全的。OAUth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都能够使用OAUth认证服务

41、,任何服务提供商都能够实现自身的OAUth认证服务,因而OAUth是开放的。业界提供了OAUth的多种实现如PHP、JavaScript,Java,RUby等各类语言开发包,大大节约了程序员的时间,因而OAUth是简易的。目前互联网很多服务如C)PenAPI,很多大公司如GOOgIe,Yahoo,MiCrOSOft等都提供了OAUth认证服务,这些都足以说明OAUth标准逐步成为开放资源授权的标准。5.1.1 OAuth有关的三个URLRequestTokenURL:获取未授权的RequestToken服务地址;UserAuthorizationURL:获取用户授权的RequestToken服

42、务地址;AccessTokenURL:用授权的RequestToken换取AccessToken的服务地址。5.1.2 OAuth有关的参数定义OAUTH.consumeJkey:使用者的ID,C)AUth服务的直接使用者是开发者开发出来的应用。因此该参数值的获取通常是要去OAUth服务提供商处注册一个应用,再获取该应用的OAUTH.consumeJkeyoOAUTH_consumer_secret:OAUTH_consumer_key对应的密钥。OAUTH_token:OAUTH进行到最后一步得到的一个“令牌”,通过此“令牌”请求资源的网站就能够去拥有资源的网站抓取任意有权限能够被抓取的资源

43、。OAUTH_token_secret:OAUTH_token对应的私钥0AUTH_signature_method:请求串的签名方法,应用每次向OAUth三个服务地址发送请求后,务必对请求进行签名。签名的方法有:HMAC-SHA1.RSA-SHAl与PLAINTEXT等三种。OAUTH,signature:用上面的签名方法对请求的签名。OAUTH_timestamp:发起请求的时间戳,其值是距197000:00:00GMT的秒数,务必是大于0的整数。本次请求的时间戳务必大于或者者等于上次的时间戳。OAUTH_nonce:随机生成的字符串,用于防止请求的重放,防止外界的非法攻击。OAUTH_v

44、ersion:OAuth的版本号。5.1.3 OAuth认证授权流程OAUth认证授权就三个步骤,三句话能够概括:1 .获取未授权的ReqUeStTOken2 .获取用户授权的ReqiIeStToken3 .用授权的RequestToken换取AccessToken当应用拿到AeCeSSTOken后,就能够有权访问用户授权的资源了。上面的三个步骤中,每个步骤分别请求一个URL,同时收到有关信息,同时拿到上步的有关信息去请求接下来的URL直到拿到AccessToken0具体每步执行信息如下:A.使用者(第三方应用)向OAUTH服务提供商请求未授权的ReqUeStTOken。向RequestTok

45、enURL发起请求,请求需要带上参数。B. OAuth服务提供商同意使用者的请求,并向其颁发未经用户授权的OaUthjOken与对应的OaUth_tOken.secret,并返回给使用者。C.使用者向OAUth服务提供商请求用户授权的RequestToken0向UserAuthorizationURL发起请求,请求带上上步拿到的未授权的token与其密钥。D. OAuth服务提供商将引导用户授权。该过程可能会提示用户,你想将什么受保护的资源授权给该应用。此步可能会返回授权的ReqUeStTOken也可能不返回。如YahooOAuth就不可能返回任何信息给使用者。E. RequestToken授

46、权后,使用者将向ACCeSSTokenURL发起请求,将上步授权的RequestToken换取成AccessTokenoF. OAUth服务提供商同意使用者的请求,并向其颁发ACCeSSToken与对应的密钥,并返回给使用者。G使用者以后就能够使用上步返回的ACCeSSTOken访问用户授权的资源。从上面的步骤能够看出,用户始终没有将其用户名与密码等信息提供给使用者(第三方软件),从而更安全。用OAUth实现背景一节中的典型案例:当服务B(打印服务)要访问用户的服务A(图片服务)时,通过OAUth机制,服务B向服务A请求未经用户授权的RequestToken后,服务A将引导用户在服务A的网站上

47、登录,并询问用户是否将图片服务授权给服务B。用户同意后,服务B就能够访问用户在服务A上的图片服务。整个过程服务B没有触及到用户在服务A的帐号信息。第三方应用首先务必在新浪微博的开发者平台上注册成为开发者同时获得相应的appkey与appsecret才能够引导用户注册。FequestToken=weibo.getOAuthRequestToken(xihaOAuthActivityn);OAUthCOnStant.gestozce().setRequestToken(requestToken);url=requestToken.getAuthenticationURL();Intentintent=newIntent(XihaActivity.this,ActivityWebViewxlass);intent.putExtra(ur,url);startActivity(intent);首先设置ReqUeStTokenJXiha:/0AUlhACtiVity”是一个android系统定义的uri,类似于url,一个协议后跟着一个路径,当授权成功后就打开注册这个uri的页面。获取授权页面的url后,通过一个intent传到一个新的activityo在这个activity中,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号