微博客户端的设计开发毕业设计Word格式.docx
《微博客户端的设计开发毕业设计Word格式.docx》由会员分享,可在线阅读,更多相关《微博客户端的设计开发毕业设计Word格式.docx(41页珍藏版)》请在冰豆网上搜索。
1.1开发背景及意义
1.1.1开发背景
2006年3月,博客技术先驱blogger创始人埃文·
威廉姆斯(EvanWilliams)创建的新兴公司Twitter推出了微博服务。
在最初阶段,这项服务只是用于向好友的手机发送文本信息。
Twitter英文原意为小鸟的叽叽喳喳声,用户能用如发手机短信的数百种工具更新信息。
Twitter的出现把世人的眼光引入了微博的小小世界里。
Twitter是一个社交网络及微博客服务。
现在,用户可以经由SMS、即时通信、电邮、Twitter网站或Twitter客户端软件(如Twitterrific)输入最多140字的文字更新,Twitter被Alexa网页流量统计评定为最受欢迎的50个网络应用之一。
在2007年5月,国际间计算总共有111个类似Twitter的网站。
然而,最值得注意的仍是Twitter,它于2007年在得克萨斯州奥斯汀举办的南非西南会议赢得了博客类的网站奖。
Twitter的主要竞争对手是Plurk和Jaiku。
后来微博客的新服务特色持续诞生,例如Plurk有时间轴可以观看整合了视讯和照片的分享,Identi、Pownce整合了微薄客加上档案分享和事件邀请。
Twitter在国外的“大红大紫”,令国内有些人终于坐不住了。
2005年从校内网起家的王兴,在2006年把企业卖给千橡互动后,于第二年建立了饭否网。
同样擅长技术活的SwiSen也瞄准了这个行业,很快清新、简约的随心微博也开始正式上线。
而腾讯作为一个拥有4.1亿QQ用户的企业,看着用户对随时随地发布自己状态的强烈需求后,也忍不住尝试了一把,2007年8月13日腾讯滔滔上线。
但事实证明,Twitter建立的“微型王国”不是在短时间内掘出黄金的浅矿,国内的微博目在当时尚处于慢热的状态。
据悉,随心微博、饭否网等目前仅拥有几十万用户,每月处理几千万条信息。
国内微博不约而同地将现在的目光放在了产品调整以及服务完善上,在尚无法吸引到风险投资的眼光之前,他们最需要做的可能是如何靠自己的能力继续活下去。
从2007年中国第一家带有微博色彩的饭否网开张,到2009年,微博这个全新的名词,以摧枯拉朽的姿态扫荡世界,打败奥巴马、甲流等等名词,成为全世界最流行的词汇。
伴随而来的,是一场微博世界人气的争夺战,大批量的名人被各大网站招揽,各路名人也以微博为平台,在网络世界里聚集人气,同样,新的传播工具也造就了无数的草根英雄,从默默无闻到新的话语传播者,往往只在一夜之间、寥寥数语。
2009年7月中旬开始,国内大批老牌微博产品(饭否、腾讯滔滔等)停止运营,一些新产品开始进入人们的视野,像1月份开放的大围脖,6月份开放的Follow5,7月份开放的贫嘴,8月份开放的新浪微博。
其中Follow5在2009年7月19日孙楠大连演唱会上的亮相,是国内第一次将微博引入大型演艺活动,与twitter当年的发展颇有几分神似。
2010年国内微博迎来了春天,微博像雨后春笋般崛起。
四大门户网站均开设微博。
根据相关公开数据,截至2010年1月份,微博类产品在全球已经拥有7500万注册用户。
中国互联网络信息中心(CNNIC)发布的《第28次中国互联网络发展状况统计报告》报告显示,2011年上半年,中国微博用户从6331万增至1.95亿,增长约2倍。
该《报告》指出,中国互联网的普及率增至36.2%,较2010年增加1.9%。
2011年上半年,我国微博用户数量从6331万增至1.95亿,半年增幅高达208.9%。
微博在网民中的普及率从13.8%增至40.2%。
从2010年底至今,手机微博在网民中的使用率比例从15.5%上升到34%。
至今,新浪微博用户数超过1亿,得益于抢占了先机,而且在整体的战略执行上也比较彻底到位,所以获得了现在的地位。
仅仅三年时间,新浪微博就为新浪生下了一个价值几十亿美金的‘金蛋’。
开放API(OpenAPI)是SaaS(SoftwareasaService,软件即服务)模式下常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(ApplicationProgrammingInterface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作OpenAPI(开放API)。
网站提供开放平台的API后,可以吸引一些第三方的开发人员在该平台上开发商业应用,平台提供商可以获得更多的流量与市场份额,第三方开发者不需要庞大的硬件与技术投资就可以轻松快捷的创业,从而达到双赢的目的,开放API是大平台发展、共享的途径,让开发者开发一个有价值应用,付出的成本更少,成功的机会更多。
今天,OpenAPI作为互联网在线服务的发展基础,已经成为越来越多互联网企业发展服务的必然选择。
OpenAPI的典型成功范例是GoogleMapsAPI和Twitter,GoogleMaps有Google这样的大公司支持,成功当然并不奇怪,但是Twitter的成功就很能说明问题。
事实上,如果Twitter仅仅是一个网页形式的微博客的话,Jaiku就可以轻松的将其打败,Twitter根本不可能取得今天的成就。
Twitter的活力就在于开放API,Twitter的成功和开放API密不可分。
Twitter的开放API可以激发个人创作的积极性,引来了大量的第三方应用,这些第三方应用同时又扩大了Twitter原有的功能,让Twitter更好用,从而极大丰富了Twitter平台自身的功用和乐趣,现在,Twitter超过一半的流量都是来自第三方API。
随着Twitter的OpenAPI发布数量不断增加,运营过程中也开始暴露出一些问题。
OpenAPI的巨大的访问量引起了Twitter种种性能问题,使得Twitter的稳定性大为降低,为了支持大量的外部API,Twitter宕机频繁,这估计是几乎所有Twitter用户都遇到过的现象。
但即使如此,Twitter也没有放弃对OpenAPI的支持。
因为开放API是历史的潮流,是必然的趋势,顺之者昌,逆之者亡,Twitter之所以击败众多各式各样的微博客网站,开放API功不可没。
国内的主流微博服务也纷纷开放了api,供广大第三方开发者接入微博提供了途径。
本论文就是利用新浪微博的开放api来完成的。
1.1.2意义
微博,有点像聊天室或者说是像茶楼酒肆。
是沟通人与人之间思想,交流知识,讨论问题和交换观点的网络交际平台。
在这个平台上首先是虚拟的人(性别,年龄,职业,喜好,职务...等?
)共同谈论你所感兴趣的任何话题,通过你们之间交流争辩让你对它有更进一步的了解和认知。
微博的传播速度更快,关注的人更多,时效性更强。
微博上有许多信息是在传统媒体上看不到的,而公众对公共话题天生有一种关注心态,在微博上企业和客户之间不再是单纯的买卖关系,微博用好了,就能够在企业用户中培养出超越买卖的情感关系,在市场竞争中游刃有余。
传统的企业口碑营销,偏重在认识的人之间的口碑,但现在,越来越多的年轻人相信网络社群上不认识的“亲朋好友”的评价。
因此,赢得网友的口碑,对企业而言,几乎跟花钱做广告一样重要。
微博客的出现丰富了企业网络营销的手段,帮助企业“赢得”陌生人的口碑。
新浪微博主要用户群体集中在影视明星、企业高管、经济学者、传媒专家、营销策划人、评论员、主持人(主播)、创业者、网络红人,这些人基本上代表着颠覆与变革、创新与时尚。
微博客作为一个新的交流互动平台,正在受到越来越多人的青睐。
相比博客而言,微博客使用更加简单,用户所付出的单位成本、精力投入都更少,写作门槛更低,用户扩展更为迅速,为可能实现的媒体信息传播积累了庞大的通讯员队伍。
同时,整合各类工具尤其是手机短信的优势,微博客具备了实时传播的特性,在面对突发新闻事件时,微博客的报道速度往往能领先于传统媒体。
随着微博的“客”流量不但呈爆炸式增长,而且其影响力也与日俱增。
微博客迅速成为中国企业及时传播信息,增加用户与企业粘性的营销利器。
众多中小企业纷纷设立官方微博客,安排专人在新浪微博客开博,与粉丝紧密互动,积极推广企业品牌。
微博预示着个体的力量不再孱弱,它在影响和改变这个世界上正发挥越来越大的作用。
企业微博的最大价值在于构建与用户沟通的渠道和平台,高效传达及展现企业产品与服务,实现企业品牌的快速传播。
越来越多的传统企业成功借助微博宣传企业品牌与企业文化,通过建立口碑来获得长期利益。
1.2开发工具及运行环境
1.2.1开发工具
1.操作系统:
Windows7,SP1
2.开发工具:
EclipseIDEforJavaDevelopers,Version:
IndigoServiceRelease2
3.插件:
AndroidDevelopmentTools(ADT)PluginforEclipse
4.开发语言:
Java
1.2.2运行环境
1.手机型号:
摩托罗拉MB525
2.操作系统:
AndroidGingerbread(2.3.7)
3.硬件参数:
a)CPU:
德州仪器OMAP3610,800MHz
b)Ram:
512MB
c)屏幕:
3.7寸,854×
480像素
2项目所用技术介绍
2.1Andorid简介
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。
目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
Android的主要竞争对手是苹果公司的iOS以及RIM的BlackberryOS。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。
2.2Android系统架构
Android的系统架构和其它操作系统一样,采用了分层的架构。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:
python、lua、tcl、php等等),还有其他诸如:
Qt(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。
另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言。
而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。
而在Android系统底层方面,Android使用C/C++作为开发语言。
2.3系统组件
Android开发四大组件分别是:
活动(Activity):
用于表现功能。
服务(Service):
后台运行服务,不提供界面呈现。
广播接收器(BroadcastReceiver):
用于接收广播。
内容提供商(ContentProvider):
支持在多个应用中存储和读取数据,相当于数据库。
2.3.1Activity
Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。
在Android的程序当中,Activity一般代表手机屏幕的一屏。
如果把手机比作一个浏览器,那么Activity就相当于一个网页。
在Activity当中可以添加一些Button、Checkbox等控件。
可以看到Activity概念和网页的概念相当类似。
一般一个Android应用是由多个Activity组成的。
这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。
和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从ActivityA跳转到ActivityB,那么当ActivityB运行结束的时候,有可能会给ActivityA一个返回值。
这样做在很多时候是相当方便的。
当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。
用户可以通过回退操作返回到以前打开过的屏幕。
我们可以选择性的移除一些没有必要保留的屏幕,应为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。
2.3.2Service
Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。
Service是没有界面的长生命周期的代码。
Service是一种程序,它可以运行很长时间,但是它却没有用户界面。
这么说有点枯燥,来看个例子。
打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。
其实这个播放就是由播放音乐的Service进行控制。
当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。
service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。
2.3.3BroadcastReceiver
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。
可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。
这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver进行处理。
例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver进行处理。
BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。
BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。
BroadcastReceiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。
只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。
各种应用还可以通过使用Context.sendBroadcast()将它们自己的intentbroadcasts广播给其他应用程序。
注册BroadcastReceiver有两种方式:
(1)在AndroidManifest.xml进行注册。
这种方法有一个特点即使你的应用程序已经关闭了,但这个BroadcastReceiver依然会接受广播出来的对象,也就是说无论你这个应用程序时开还是关都属于活动状态都可以接受到广播的事件;
(2)在代码中注册广播。
第一种俗称静态注册,第二种俗称动态注册,这两种注册BroadcastReceiver的区别:
动态注册较静态注册灵活。
实验证明:
当静态注册一个BroadcastReceiver时,不论应用程序是启动与否。
都可以接受对应的广播。
动态注册的时候,如果不执行unregisterReceiver();
方法取消注册,跟静态是一样的。
但是如果执行该方法,当执行过以后,就不能接受广播了。
2.3.4ContentProvider
ContentProvider是Android提供的第三方应用数据的访问方案。
在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件、等等内容,都是不允许其他直接访问的。
Andorid当然不会真的把每个应用都做成一座
孤岛,它为所有应用都准备了一扇窗,这就是ContentProvider。
应用想对外提供的数据,可以通过派生ContentProvider类,封装成一枚ContentProvider,每个ContentProvider都用一个uri作为独立的标识,形如:
content:
//com.xxxxx。
所有东西看着像REST的样子,但实际上,它比REST更为灵活。
和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给你id的uri你也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。
另外,ContentProvider不和REST一样只有uri可用,还可以接受Projection,Selection,OrderBy等参数,这样,就可以像数据库那样进行投影,选择和排序。
查询到的结果,以Cursor(参见:
reference/android/database/Cursor.html)的形式进行返回,调用者可以移动Cursor来访问各列的数据。
ContentProvider屏蔽了内部数据的存储细节,向外提供了上述统一的接口模型,这样的抽象层次,大大简化了上层应用的书写,也对数据的整合提供了更方便的途径。
ContentProvider内部,常用数据库来实现,Android提供了强大的Sqlite支持,但很多时候,你也可以封装文件或其他混合的数据。
在各大组件中,Service和ContentProvider都是那种需要持续访问的。
Service如果是一个耗时的场景,往往会提供异步访问的接口,而ContentProvider不论效率如何,都提供的是约定的同步访问接口。
3系统分析
3.1功能需求
此次程序设计任务是Android平台下的新浪微博客户端设计,程序将在真实手机运行调试。
此次程序设计用户界面要求较为友好,由于针对的用户为Android智能手机用户,因此程序的操作全部可以通过触控完成操作。
本新浪微博客户端要求设计合理.在设计完成后,要求程序能够实现新浪微博的登录功能。
同时,程序还必须能够实现对对新浪微博的首页信息获取,用户资料,好友资料,发表微博,用户的关注,用户的粉丝,转发微博,评论微博,收藏微博,我发表的微博等。
最后,新浪微博获取信息要具有较高的执行效率。
此次程序设计的操作系统要求为Windows7或Linux。
此次程序设计需要在Eclipse环境下开发。
本客户端的数据都是通过网络来自于新浪的服务器,产生的数据也是上传到新浪的服务器,在客户端存储的只有OAuth产生的一些省份识别信息,所以本客户端无需使用数据库。
基于系统需求分析,该系统需要实现以下功能:
(1)用户登录授权:
当用户第一次使用该软件时,会打开新浪微博的授权页面,如果是老用户,则授权登录,若是新用户,则注册新浪微博,然后跳转到微博首页。
(2)发布微博:
发布微博是微博的基本功能,用户将自己想要向外界传达的信息进行发布,这是用户向外传播信息的最主要的途径与方法。
(3)修改用户个人信息: