新浪微博客户端部分功能的实现毕业论文

2015届本科毕业论文(设计)

基于Android平台

新浪微博客户端部分功能的实现姓名:xxxxxxxx_

系别:计算机与信息技术学院_专业:网络安全_学号:xxxxxxxx_

指导教师:xxxxxxx_

2015年04月16日

目录

1绪论 (1)

1.1课题背景 (1)

1.2微博简介 (1)

1.3Android简介 (1)

1.4研究目标 (1)

1.5研究内容、意义 (1)

2系统分析 (1)

2.1系统可行性分析 (1)

2.2系统需求分析 (1)

2.3基于Android新浪微博客户端部分功能的开发原则 (1)

2.4系统开发环境 (2)

3系统概要设计 (2)

3.1设计目标 (2)

3.2模块设计 (2)

3.2.1功能模块的划分 (2)

3.2.2系统总体结构设计 (2)

3.2.3系统模块用例图 (3)

4数据库的设计和实现 (9)

4.1数据库结构设计 (9)

4.1.1实体图 (9)

4.1.2系统实体联系 (11)

4.2数据库物理建模 (12)

5系统详细功能实现 (13)

5.1登录模块的实现 (13)

5.1.1用户授权配置 (13)

5.1.2用户登录模块 (14)

5.2主界面显示模块 (15)

5.2.1查看微博列表 (15)

5.3微博信息查看模块实现 (17)

5.4获取用户信息模块实现 (18)

5.4.1关注功能 (18)

5.4.2查看用户微博信息功能 (21)

6总结 (21)

参考文献 (22)

基于Android系统的新浪微博客户端的设计与实现

摘要

该系统软件包括四个模块:登录模块,主界面模块,微博浏览模块,用户模块。在登录模块,用户可以使用授权配置和用户注册并且登录系统。主界面显示模块中,用户可以发表新的微博。微博浏览模块,进入浏览微博的详细页面,用户可以评论微博和转发微博。用户信息模块,可查看该用户的详细信息包括该用户的关注列表,话题列表,粉丝列表,和该用户所发表过的全部微博。

关键词

新浪微博开放平台;授权的配置;微博API调用的服务.

Sina Micro-Blog Client Design and Implementation Based on

Android System

Abstract

This system based on Android mobile development platform,use Java language development and the system which has a good platform portability and expansibility.The Sina micro-blog Android SDK third-party micro-blog application provides document easy to use micro-blog API call service,so that the third-party micro-blog client without understanding the complex validation and API calls procedure, may realize to share text or multimedia message to Sina micro-blog.

This system includes four modules:application login module,the interface display module,the blog browsing module,the user module.In login module,the user can use authorized configuration and user registered and logged in system.In interface display module,users can post new micro blog and through the nickname to search good friends.In blog browsing module,users can comment on the blog and forwarding the blog into the detailed page.In user module,can view the detailed information including the users'attention list,topics list,fan list,and all the blogs he has posted.

Key words

Sina Micro-Blog Open Platform;Authorized Configuration;Micro-Blog API Calls Service.

1绪论

1.1课题背景

新浪微博手机客户端的应运而生,Android开发下的新浪微博应用拥有广泛的需求。基于Android平台的新浪微博客户端基于市场利益考虑,均有不同程度添加广告的行为,而且界面设计比较传统。

1.2微博简介

用户可以用简短文字更新自己的状态,每条动态的长度都在140字以内,不仅支持图片而且还支持视频等,用户是微内容的创造者也是微内容的发布者和分享者。微博有如下特点:

1)要求低只要学过拼音会打字就会使用微博。

2)即时通讯微博的即时通讯功能很强。即使在没有网络的地方,利用手机就可以更新自己

的内容。

1.3Android简介

Android系统是一个开放的手机操作系统。Android系统发展迅猛主要是因为免费和开源,这两点优势让安卓在智能手机市场赢得发展机遇。

1.4研究目标

1)掌握Android程序的设计和开发过程。

2)Android平台新浪微博客户端的开发。

1.5研究内容、意义

1)内容在于创建Android平台的新浪微博客户端应用,使用Java语言编写,使用新浪微

博开放平台提供的接口。

2)意义在于使用基于Android新浪微博客户端可以方便发微博,评论微博,转发微博,为

用户推荐微博等功能。用户可以更新自己的微博信息,把见到的、想说的可以以最快的速度分享给大家。

2系统分析

2.1系统可行性分析

2.1.1市场的可行性

项目是否可以实施,先看这个项目有没有潜在的市场和市场的变化他有哪些重要影响。所以说,市场需求是项目可行性的根本。

2.1.2经济上的可行性

通常毕业设计实践型一般开发成本比较低,所以开发微博客户端是可行的。

2.1.3技术上的可行性

新浪微博平台SDK为第三方微博提供了微博API,是以Android系统开发为基础使用Java 编程语言应为Java具有很好的移植性和可扩展性,因此在技术上也是可行的。

2.1.4运行上的可行性

A ndroid手机在智能手机中具有很高的占有率,绝大部分的Android手机运行该软件是可以的。

2.2系统需求分析

利用接口调用返回的数据,进行用户的操作。登录成功之后进入程序主页,能看到微博好友发表的微博信息。可以查看个人信息、粉丝的数量、发表的话题、所有发表过的微博和用户关注的好友情况。以上描述基本了解到该应用的功能需求:

如果用户之前没有登录过用,进入授权界面,如果用户还没有微博账号,就选择跳到微博的用户注册页面。如过用户已经申请过新浪微博账号,可以输入账号和密码授权。去新浪的授权认证。

如果用户之前已经登录过,需要选择用户名和账号可直接登录系统。

当进入首页时,你能够看到自己曾经关注的好友她们的动态。

2.3基于Android新浪微博客户端部分功能的开发原则

1)统筹规划、分步骤设计。

2)保证系统的稳定和安全。

3)保证网络系统的先进和有效

4)操作简单、有利于理解和使用

2.4系统开发环境

Android是建立在Java语言开发的基础上同时还需要Dalvik(虚拟机),Google公司推荐使用Java开发环境Eclipse需要Android SDK和ADT。

3系统概要设计

3.1设计目标

开发本软件能让用户更方便的分享身边的新鲜事。

3.2模块设计

3.2.1功能模块的划分

需要将需求分析中的描述功能实现。在系统分析的基础上,确定系统的功能模块。

系统的功能模块图如下图3-1所示:

图3-1系统功能模块图

3.2.2系统总体结构设计

在系统开放性方面按照软件工程开发规范,有利于内容的扩充和技术的升级,适用其他人的借鉴需求。

1)在数据的安全性方面,采用OAuth认证方式,利用这种方发需要知道用户的新浪UserID、Access Token、Access Secret这3个值才能调用新浪的开放接口。当用户第一次使用软件时,进行授权认证获取这3个值,这个时候将数据存储到SharedPreferences中为了方便下次使用。用户第二次使用时就不需要重新授权认证操作,直接从SharedPreferences中取出数据。OAuth2.0认证机制如下图3-2所示:

端新浪微博服务器

将APPKEY 和APPSECRET 发送至新浪微博

返回RequestToken 和RequestSecret 给客户端表示新浪微博信任客户端

将RequestToken和RequestSecret发送至

新浪微博跳转至授权页面

授权页面输入账号密码完成授权根据回调地址返回oauth_verifier ,表示用户信任客户端

将RequestToken 、RequestSecret 、oauth_verifier 发送至新浪微博返回user_id 、AccessToken 和AccessSecret 用来代替账号密码

图3-2OAUTH2.0认证

3.2.3系统模块用例图

1)新的用户注册模块

功能性描述:用户初次使用软件时,如果还没有获得新浪微博的账号,可以通过登录页面跳转至新浪微博的用户注册页面。

参与者:还没有注册过的用户。

前置条件:全部没有注册过的用户。

后置条件:需要提示注册有没有成功。

模块如图3-3所示:

图3-3用户注册用例E-R 图2)用户登录和授权模块

功能描述:刚下载该软件没有登录过当打开程序进入登录页面,输入账号和密码来授权认证。

参与者:没有通过授权认证或者没有登录。

前置条件:没有通过授权。

后置条件:已经通过授权的用户和直接登录系统的用户。

用户登录和授权例如下E-R 图3-4所示:

通过授权认证选择用户进行登录

用户注册

未注册用户

用户

图3-4用户登录和授权认证用例E-R 图

用户登录和授权模块流程图如图3-5所示:判断是否存在

已授权用户授权配置

开始

启动应用

登录

登录到应用首页结束

否图3-5用户登录和授权流程图

3)系统首页信息显示模块

功能描述:显示被用户关注的好友的微博信息。

参与者:已经登录用户。

前置条件:已经登录用户。

后置条件:在首页显示已经被用户添加关注的微博信息列表。

本模块用例如下图3-6所示:

用户

查看微博列表微博发表新微博

图3-6系统首页信息显示用例图

系统首页显示模块流程图如图3-7所示:加载数据

开始

进入首页

发表新微博

结束

显示最新微博

的列表搜索其他用户图3-7显示主界面流程图

4)发布微博模块

功能描述:本模块主要完成了用户发表微博的功能。

参与者:登录用户。

前置条件:已经登录用户。

后置条件:新微博信息有没有发表成功。

该模块用例如下图3-8所示:

用户发布微博

图3-8发表微博用例图

发表新微博流程图如下图3-9所示:

开始

点击首页微

博发送按钮

输入内容

点击发送

发送失败

判断

结束

图3-9发表微博流程图

5)查看微博内容模块:

参与者:合法登录用户。

前置条件:已经成功登录的用户。

后置条件:转发和参与评论。

查看微博内容模块如下图3-12所示:

查看微博

详细信息

转发评论

用户

图3-12查看微博用例E-R图

评论微博功能流程E-R图如下图3-13所示:

开始

点击评论按钮进

入评论页面

输入评论内容

评论失败

点击发送

判断

结束

图3-13评论功能流程图

转发功能图如下图3-14所示:

开始

点击评论按钮进

入转发页面

输入转发内容

转发失败

点击发送

判断

结束

图3-14转发功能

6)查看用户信息

功能描述:查看添加好友的详细信息。

参与者:已经成功登录用户。

前置条件:已登录用户。

后置条件:查看好友详细信息(包括所有微博,话题,关注,粉丝)关注和取消关注操作。查看关注和添加关注功能具体流程如图3-16所示:

开始

点击进入关注列

查看用户信息

添加关注

结束

图3-16查看关注和添加关注

用户微博列表功能如下3-17所示:

开始

点击微博按钮

用户所有微博列

表界面

查看某一条微博

详细信息同时进

行评论和转发操

结束

图3-17查看用户所有微博列表E-R图

4数据库的设计和实现

大多数数据库主要用逻辑数据库和物理数据库。逻辑数据库设计说的是根据用户要求和数据库系统的特点,按照数据库设计理论来设计数据库的全局结构和局部结构。

4.1数据库结构设计

对数据库实体关系的设计是在需求分析、系统分析的基础之上的。实体的表示比较简单一些,包括用户的信息、发布微博的信息、对微博评论的信息。

4.1.1实体图

1)用户实体如下图4-1:微博账号

用户ID 自增主键用户ID

粉丝数量

TokenSecret 用于获

取AcessToken 图4-1实体图

2)用户相关信息实体属性如下图4-2所示:

用户ID 用户相关信息ID

用户图标

微博账号

用户相关信息

最新微博

图4-2用户信息3)微博信息实体属性E-R 图如下图4-3所示:

Token 失效期代表用户身份的access token

微博ID

内容用户ID

用户名用户图标

时间

是否有图片

微博

图4-3微博信息实体E-R 图4)评论信息实体属性E-R 图如下图4-4所示:评论ID

评论内容

用户ID 评论图4-4评论信息实体E-R 图

4.1.2系统实体联系

通过对系统的分析和设计。用户可以发表多篇微博,所以用户和微博是一对多的关系。用户也可以发表多篇评论所以用户和评论是一对多的关系。一篇微博可以被多次评论,所以微博和评论也是一对多关系。另外,用户可以关注多个好友也可以被其他多个好友关注,所以用户和用户是多对多的关系。本系统实体之间的关系如下图4-5所示:

时间

微博ID

用户

用户相关信息微博评论

包含

1

1

包含

1

N

发表

1N

1

N

图4-5系统E-R图

4.2数据库物理建模

物理建模是建立在概念模型的基础上,其实每一个实体都对应一个表,并且实体中的每一个属性都对应表中的一个字段。

本系统基于性能的考虑,并且大部分数据从网络获取,所以只有用户信息、用户的相关信息、微博、评论需要存储。本系统选择SQLite存储数据。建立sina_weibo.db和建立表t-user存储用户的数据。t-usherEntry表用于储存与用户相关联的数据。t-weibho表来存储与微博内容相关的数据。t-comment表存储和评论内容相关的内容。

1)用户数据表(t-user):存储与用户授权认证相关信息包括用户身份(token,secret)和token

的失效期和自动的增减的编号、微博的账号、粉丝数量。

表4-1用户数据表

属性数据类型说明

_id integer自动增加的主键

userId varchar用户的id

token varchar代表用户身份的access token

expires varchar token失效期

fanseCount Integer粉丝数量

tokenSecret varchar用户获取acessToken,鉴权用户身份等

userName varchar微博账号

2)用户相关数据表(t-userEntry):存储用户微博账号的相关信息包括自动增加的编号、用

户图标、最新微博信息、微博账号、和用户的编号。

表4-2用户相关信息表

属性数据类型说明

_id integer自动增长的主键

userIcon varchar图标

lastWeibo varchar最新微博

username varchar微博账号

userId varchar用户id

3)微博信息数据表(t-weibo):存储微博的相关信息包括自动增加的编号、微博内容、发布

时间、有没有图片、微博用户编号、微博用户名。

表4-3微博信息表

属性数据类型说明

_id integer自动增加的主键

text varchar微博的内容

userId varchar用户的id

username varchar用户名

userIcon varchar用户图标

time varchar时间

haveImage boolean是否有图片

4)评论信息数据表(t-comment):存储对微博的评论内容,时间等。

表4-4评论信息表

属性数据的类

说明

_id integer自动增加的主键

text varchar评论内容

userId varchar用户id

time varchar评论时间

weiboId integer微博id

5系统详细功能实现

本应用主要实现了四个主要模块,应用登录模块可以授权配置和用户注册登录。主界面模块用户可以发表新的微博。用户模块可以看到用户的信息,能过看待用户关注的好友,话题列表,粉丝类表,和用户所发表的微博。

5.1登录模块的实现

5.1.1用户授权配置

打开程序后,如果用户是初次使用,就要跳到配置页面,在配置页面用户输入新浪微博的账号和密码,进行授权过程。如果当前用户已经通过了新浪微博配置和授权,剩下的只需要选择要登录的用户登录。授权配置如下图5-1所示:

图5-1用户配置

核心代码:

Wzeibo weiboaa=Weibo.getInstsance();

weiboaa.setupsConsudmerConfig(CONSUMsER_KEY,CONsSUMER_SEsCRET);

weibo.setReadirectsUrl("https://www.360docs.net/doc/917419302.html,/");

weaibo.autahorize(AusthorizdeActivity.this,ndew AuthDialsogLisatenerd());

5.1.2用户登录模块

用户进入登录界面点击下啦按钮,在下拉框中选择用户要登录的用户,选中要登录的用户再点击登录按钮就可以登录新浪微博客户端。用户登录页面如下图5-2所示:

图5-2登录页面

核心代码:

SharedPrjeferences preferences=getSharedPreferences("usermessage",0);

SharedPreferences.Editor editor=preferences.edit();

editor.putString("user_id",list.get(pos).getUser_id());

editor.putString("username",list.get(pos).getUsername());

editor.putString("accesstoken",list.get(pos).getAccesstoken());

editor.putString("head_ing",list.get(pos).getHead_ing());

editor.putString("description",list.get(pos).getDescription());

https://www.360docs.net/doc/917419302.html,mit();

Intent homae1=new Intsent(Logintshis,Homeasctivity.class);

stasrtActivity(home1);

5.2主界面显示模块

在首页可以看到被用户添加了关注的用户的最新微博信息、发表微博、更新微博列表。

5.2.1查看微博列表

点击发布新微博按钮可以发表新微博,点击刷新按钮可以更新微博列表,还可以通过滚动鼠标滚轮分页显示更多的微博信息。系统首页如下图5-3所示:

图5-3系统首页

核心代码:

//定义adapter

adapter=new Home_adapter(context,getSharedPreferences("myweibo",

Context.MODE_PRIVATE).getString("log_accesstoken",null),0);

//System.out.println(getSharedPreferences("myweibo",

Context.MODE_PRIVATE).getString("log_accesstoken",null));

myhandle.sendEmptyMessage(0);

private Handler myhandle=new Handler1(){

public void handle1Mesage(androsid.os.Messqage msdg){

swsitch(msg.whsat){

case0:

xlsv.setAdapster(adaptser);

pd.dismiss();

break;

case1:

xlv.setAdapter(adapter);

xlv.stopRefressh();

breask;

case2:

adaptser.notsifyDataSestChanged();

//xlv.setPullRefreshEnable(true);

xlv.stopLoadMore();

break;

}

};

};

5.2.2发表微博功能

用户可以通过点击首页的发表微博按钮,弹出输入对话框,输入内容点击发送按钮,如果发送成功则返回首页。发布微博动态页面如下图5-4所示:

5-4微博发表页面

核心代码:

public claass FaweeiboActiivity extends Acctivity{

EdittText et;

Button bt;

Handler my=new Handler1(){

public void handleMeswsage(android.os.Message1msg){

swich(msgw.what){

case0:

Toast.makewText(FaweiboActivity.this,"发表成功",3000).show();

finish();

break;

case1:

Toast.makeText(FaweiboActivity.this,"发表失败",3000).show();

et.setText("");

break;

defaulta:

break;

}

};

};

@Overridae

protected voixd onCreate(Bundle savedInstaanceState){

setCaontesntVihew(https://www.360docs.net/doc/917419302.html,yout.act_fasweibo);

et=(EditText)findViewById(R.id.faweibo_coent);

Bta=(Button)findVieawById(R.id.faweibo_ok1);

bt.settOnClickListener(new OnClickListener(){

@Overaride

pubalic void onCalicxk(Vieaw v){

//TODO Axuto-generataed method stuab

new Thread(){public void run(){

boolean bo=Tools1.faweibo(Constants.faweibo_url,

Constants.myaccesstoken,et.getText().toString());

if(bo){

my.sendEmptyMessage(0);

}

else{

my.sendEmptyMessage(1);

}

}}.start();

5.3微博信息查看模块实现

点击某一条微博信息能查看这一条微博的详细信息。进入浏览微博信息页面可以通过点击页面下方的评论按钮,评论该条微博。也可以点击转发按钮,转发这条微博。微博信息浏览页面如下图5-5所示:

图5-5微博信息浏览页面

核心代码:

WaeiboPasrmeters param1=new WeibaoParameters();

Params4.add("id",key);

String temp=weibo.request(ViewA.this,Nampaces.WEIBO_COMMNTS,params, Utility.HTPMETHD_GET,weibo.getAcessToken());

用户可以点击查看微博详情信息页面的评论按钮跳转到微博信息评论页面,用户可以输入评论的内容对这条微博发表自己的意见或评论。评论新浪微博界面如图5-6所示:

相关文档
最新文档