基于Android系统的新浪微博客户端的设计与实现Word格式文档下载.docx
《基于Android系统的新浪微博客户端的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于Android系统的新浪微博客户端的设计与实现Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。
每一个时代都会催生新的理念,每一个理念又会引领新的潮流,每一个潮流又注定会冲破原有的桎梏,创新是时代的特征,更是IT业的标志。
摩尔定律的持续实现使整个IT业的发展和更新令人手忙脚乱,而作为终端设备中数量级最大的手机,近年更是近乎脱胎换骨,在颠覆传统手机概念的同时,不断挖掘着自身的市场价值,也成为众多厂商利益角逐的角斗场。
IOS在乔布斯的精心策划下一路高歌猛进,Android则凭着开源的方式开山劈路,Symbian和Blackberry的旧有模式被不断蚕食,WindowsPhone则在滞后的泥潭中继续挣扎。
手机终端多样化应用的不断出现,使其在近乎实现PC端功能的同时,也影响着PC的发展。
互联网领域,以Facebook为代表的SNS的突起更是激起新一轮的网络风波,而在国内,冲破众堵的新浪在其准确的定位和成功的推广策略下推出的新浪微博更是占据了先导地位,并逐渐进入大众生活,成为许多人的生活必需品。
近年来,新浪微博的邀请重点由明星、名人转向媒体工作者甚至政府工作者,为时事的发布和民政工作提供了更为多样、便捷的方式。
于是,新浪微博手机客户端便应运而生,而作为市场占有率第一的Android平台下的新浪微博客户端更是拥有广泛的需求。
目前一些基于Android平台的新浪微博客户端相对比较完善,功能也比较齐全,但基于市场利益考虑,均有不同程度的涉及广告的行为,而且界面设计相对传统,招到很多用户的不满。
因此,本课题就致力于开发出一款基于Android平台的新浪微博客户端,来满足用户的使用需求。
1.2微博简介
微博(英文名为micro-blog),即微型博客,是随着Web2.0而兴起的一类开放的互联网社交服务,它允许用户以简短文字随时随地更新自己的状态,每条信息的长度都在140字以内,支持图片、音频、视频等多媒体的出版,每个用户既是微内容的创造者也是微内容的传播者和分享者。
与传统博客相比,微博具有如下特点:
1)准入门槛低。
传统博客强调版本的布置与语言的组织,因此博文的创作需要考虑完整的逻辑性,也就是说,在Blog上写文章的门槛还是很高的;
哪怕是一个没有受过严格中文训练的人,只要会发短信,他就能使用微博。
闲得无事,更新一下签名,就被记录了。
2)即时通讯的原创性。
对于每篇微博140个字符的信息量特别适合手机上网用户使用,无论你是在咖啡厅还是在地铁站,都很容易通过手机完成自己的微博。
因此,微博的即时通讯功能非常强大。
很多微博网站,即便在没有网络的地方,只要有手机也可即时更新自己的内容。
一些突发事件或引起全球关注的大事,如果有微博,就能利用各种手段在微博上发表,其真实性以及快捷性给人带来的现场感,甚至超过所有媒体。
3)更强的互动性。
与博客上面对面的表演不同,微型博客上是背对脸的follow(跟随),就好比你在电脑前打游戏,路过的人从你背后看着你怎么玩,而你并不需要主动和背后的人交流。
既可以一点对多点,也可以点对点。
在Web浏览器中实现好友管理是非常方便的,如果你想在手机中进行管理的话同样是非常方便的,移动终端提供的便利性和多媒体化,使得微型博客用户体验的粘性越来越强。
与传统博客相比,微型博客具有更好的及时性、开放性和随意性,用户不仅可以通过网页浏览和发布信息,还可以通过手机、即时通讯软件的客户端、桌面客户端、外部API接口等多种途径使用微博功能。
对单条信息长度的限制是微博服务形式的核心特征,其信息短、直观、简洁的特点便于迅速阅读和传播。
1.3Android简介
Android是Google开发的基于Linux平台的开源手机操作系统。
它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件。
Android系统就是一个开放式的手机和平板电脑的操作系统,目前的发展势头十分迅猛。
Android的面试的时间不长,但Android已经对传统的手机平台(如Symbian)构成了强大的冲击。
Android操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。
系统的免费让更多的厂商加入,推动了份额的上升;
代码的开源让更多的开发者进入应用开发;
应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。
此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。
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)启动应用程序。
2)如果用户是第一次登陆,进入授权界面,在此页面,当用户还未拥有新浪微博账号,则可以选择跳转到新浪微博的用户注册页面,注册自己的新浪微博账号。
如用户已有新浪微博账号,用户可以输入用户名和密码进行授权。
取得新浪的授权认证。
3)如果用户已经在该应用中登录过,则只需选择需要登录的账号,不用再输入用户名和账号等繁琐操作就可直接登录系统。
4)用户登录系统之后,进入微博客户端首页,用户可以查看到自己关注到的好友的最新微博信息。
5)点击用户发表的某一条微博信息,进入微博浏览页面,可以查看到这条微博信息的全面内容,包括粉丝评论、评论数、转发数、图片等多媒体信息。
用户可以点击屏幕下方的评论按钮,发表自己对该篇微博的评论。
点击转发按钮则可以转发这条微博内容。
6)点击微博浏览页面的查看好友个人信息按钮,进入好友个人信息浏览页面,在此页面可以点击屏幕上方的关注好友按钮,对好友进行关注和取消关注的操作。
在屏幕中央的显示页面,可以查看到好友的地址,个人说明的信息。
在屏幕的下方有四个按钮,分别可以查看该好友发表过的所有微博信息,该好友所关注的所有好友,发表过的所有话题、粉丝数量和所有粉丝列表。
同时也可以查看粉丝的个人信息,用户可以自己对感兴趣的粉丝也添加关注。
7)回到应用的首页,在屏幕的上方有一个发表微博的按钮,用户输入内容,点击发送可以发表自己的微博。
用户也可以在此页面点击刷新按钮,刷新当前的最新微博。
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-2 OAUTH2.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实体图
1)用户实体属性图如下图4-1所示:
图4-1用户实体图
2)用户相关信息实体属性图如下图4-2所示:
图4-2用户相关信息实体图
3)微博信息实体属性图如下图4-3所示:
图4-3微博信息实体图
4)评论信息实体属性如下图4-4所示:
图4-4评论信息实体图
4.1.2系统实体联系
根据对系统的分析和设计,本系统的所有实体的关系包括:
用户相关信息存储了与用户有关的但是不经常进行操作的数据所以用户和用户相关信息是一对一的关系。
用户可以发表多篇微博,所以用户和微博是一对多的关系。
用户也可以发表多篇评论所以用户和评论是一对多的关系。
一篇微博可以被多次评论,所以微博和评论是一对多的关系。
另外,用户可以添加对其他多个用户的关注也可以被其他多个用户关注,所以用户和用户是多对多的关系。
本系统实体之间的关系如下图4-5所示:
图4-5系统E-R图
4.2系统数据库物理建模
物理建模,即数据库建模,建立在概念模型的基础上,每一个实体对应一个数据库表,实体中的每一个属性对应数据表中的每一个字段。
有关系链接的实体,在生成物理模型以后会存在相应的关系。
本系统基于性能的考虑,并且大部分数据从网络获取,所以只有少部分数据需要存储,即用户信息、用户的相关信息、微博、评论。
本系统选择SQLite数据库存储数据。
建立数据库sina_weibo.db,并且建立四张表t-user存储用户的个人授权认证的数据。
t-userEntry表用于储存与用户相关联的一些数据。
t-weibo表用于存储与微博内容相关的数据。
t-comment表存储评论内容相关的数据。
1)用户数据表(t-user):
主要存储与用户授权认证的相关信息包括代表用户身份的token和secret字段以及token的失效期。
其他字段包括自动的增减的编号、微博账号、用户编号、粉丝数量。
表4-1用户数据表
属性
数据类型
说明
_id
integer
自动增加的主键
userId
varchar
用户的id
token
代表用户身份的accesstoken
expires
to