微博客户端的设计与实现(上)

第一章 绪论

1.1课题背景

微博可以说是时下最受人们所喜爱的一种社交方式,它是一种通过关注机制分享简短实时信息的广播式的社交网络平台。通过微博我们可以了解最新的时事新闻动态,了解社会的各种声音。目前一些基于Android平台的微博客户端有很多,如:Weico、BlackLight、Fuubo等,功能相对比较完善,界面美观,但基于市场利益考虑,均有不同程度的涉及广告的行为,招到很多用户的不满。因此,本课题就致力于开发出一款基于Android平台的腾讯微博客户端,可以方便的在本系统中使用浏览微博,发表微博,转发微博等全面的功能。用户可以随时随地的更新自己的微博信息,把看到的、想说的一切都以最快的速度分享给大家。

1.2 研究目标

1) 了解Android应用程序的设计和开发过程行。

2) 使用多种组件进行Android 平台腾讯微博客户端的开发。本软件是基于Eclipse的开发环境,依托腾讯微博开放平台提供的接口,开发出针对Android平台的微博客户端。

第二章 系统分析

2.1系统可行性分析

  • 市场的可行性

本系统基于移动平台的微博客户端系统,是人们日常生活中和朋友交流互动的必要工具。只要针对大众对物品的喜好,使系统功能齐全,操作简单,界面美观大方,就一定会有市场潜力。

  • 经济上的可行性

本系统为毕业设计练习实践型项目,所使用的开发工具Eclipse可以免费下载,因此开发成本比较低,所以开发基于Android移动平台的微博客户端在经济上是可行的。

  • 技术上的可行性

腾讯微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,基于Android系统开发使用Java作为编程语言具有良好的平台移植性和可扩展性,所以在技术上也是可行的。

  • 运行上的可行性

本应用是基于Android系统手持移动终端,Android系统手机在智能手机和平板电脑市场都有很高的占有率,各个手机厂商也争先推出更新版本和硬件配置更高的终端,从市场上一般的Android手机硬件配置来看运行本系统应该是绰绰有余所以在运行可行性上更是可行的。

2.2系统需求分析

本应用程序启动后,可以通过使用腾讯的微博开放平台,利用接口调用返回的数据,进行用户注册,用户信息配置,授权认证,用户登录。登录成功之后进入程序首页,可以显示微博好友发布的最新微博信息,以及相关图片的浏览。从以上描述可以基本了解到该应用的功能需求:

1) 启动应用程序,载入界面。

2) 如果用户是第一次登陆,进入授权界面,在此页面,当用户还未拥有腾讯微博账号,则可以选择跳转到腾讯微博的用户注册页面,注册自己的腾讯微博账号。如用户已有腾讯微博账号,用户可以输入用户名和密码进行授权,取得腾讯的授权认证。

3) 用户登录系统之后,进入微博客户端首页,用户可以查看到自己关注到的好友的最新微博信息。

4) 点击用户发表的某一条微博信息,即可以转发这条微博内容。

5) 回到应用的首页,在屏幕的上方有一个发表微博的按钮,用户输入内容,点击发送可以发表自己的微博。用户也可以在此页面点击刷新按钮,刷新当前的最新微博。

系统模块UML用例图分析:

1) 用户登录和授权模块

功能描述:使用该应用的用户,在程序启动之后进入授权登录页面,输入用户名和密码进行授权认证。

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

前置条件:未通过授权认证或者未登录的用户。

后置条件:通过授权配置或者直接登录系统。

用户登录和授权模块用例如下图所示:

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

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

参与者:合法登录用户。

前置条件:已登录用户。

后置条件:在首页显示所有用户关注的最新微博信息列表,查看菜单栏、发布微博。

该模块用例如下图所示:

3) 发表微博模块

功能描述:该模块主要实现了用户发表微博的功能。

参与者:合法登录用户。

前置条件:已登录用户点击发布微博图标。

后置条件:新微博信息是否发表成功。

该模块用例如下图所示:

4) 转发微博模块:

功能描述:该模块实现了用户可以通过点击某一条微博信息查看该微博的所有内容,并进行转发操作。

参与者:合法登录用户。

前置条件:已登录用户点击微博信息详情。

后置条件:可以转发。

查看微博内容模块用例如下图所示:

2.4系统开发环境及相关技术

1)应用平台: Android 手机

2)开发工具: Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。它是一个框架和一组服务,用于通过插件组件构建开发环境,此外,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)等,提供了一个具有丰富特性的开发环境。

第三章 系统概要设计

3.1系统设计目标

1) 通过创建微博客户端应用,让用户随时随地与好友分享身边的新鲜事。

2) 通过友好的界面设计和完善的功能,使微博用户更加得心应手的与好友交流互动,尽可能多的给用户提供方便。

3.2系统模块设计

3.2.1系统功能模块划分

3.2.2系统总体结构设计

系统总体结构设计确定软件由哪些模块组成以及这些模块之间的动态调用关系。微博客户端不是一个简单的概念,它包含了许多个内容,是由多个页面组成的一个整体的系统。

1) 在功能方面,采用图形用户界面技术,使系统能够有多重图形窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。

2) 在系统开放性方面,基于优秀的开发平台,再按照软件工程开发规范实现系统的开放性,既便于内容的扩充又便于技术的升级,以适用今后其他人的借鉴需求。

3) 在系统和数据的安全性方面,本项目是采用OAuth认证方式,OAuth认证的原理如下所示:

3.2.3系统模块设计

1) 用户登录和授权模块

用户登录和授权界面设计:

用户登录和授权模块流程图如图所示:

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

该模块界面设计:

系统首页显示模块流程图如图所示:

3) 发表微博模块

该模块界面设计:

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

4) 转发微博模块:

转发功能流程图如下图所示:

5)软件设置模块

软件设置界面设计:

(未完待续)

Android实践项目汇报总结(上)修改的更多相关文章

  1. Android实践项目汇报

    Android实践项目:推箱子 推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力.游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置.这就要求玩家巧妙的运用有限的空间和通道 ...

  2. Android实践项目汇报(总结)-修改

    天气客户端开发报告 1系统需求分析 1.1功能性需求分析 天气预报客户端,最基本就是为用户提供准确的天气预报信息.天气查询结果有两种:一种是当天天气信息,信息结果比较详细,除温度.天气状况外还可以提示 ...

  3. Android实践项目汇报(二)

    Google天气客户端 本周学习计划 学习布局控件和XML解析的相关知识. 看懂程序代码. 把借鉴代码成功导入到Android Studio中并运行成功. 实际完成情况 我学习到布局控件XML在res ...

  4. Android实践项目汇报-改(一)

    Google天气客户端NABC Need(需求):  功能性需求分析 天气预报客户端,顾名思义就是为用户提供实时准确的天气信息,方便用户出行生活.根据用户日常需求,软件完成后点开,载入界面,显示查询界 ...

  5. Android实践项目汇报(一)

    # 我要做的是Google天气客户端 一.Need(需求): 1. 功能性需求分析 天气预报客户端,顾名思义就是为用户提供实时准确的天气信息,方便用户出行生活.根据用户日常需求,软件实现后所达到的功能 ...

  6. Android实践项目汇报(总结)

    天气客户端开发报告 1    系统需求分析 1.1功能性需求分析 天气预报客户端,最基本就是为用户提供准确的天气预报信息.天气查询结果有两种:一种是当天天气信息,信息结果比较详细,除温度.天气状况外还 ...

  7. Android实践项目汇报(四)

    全国天气客户端 本周学习计划 添加修改功能,完成项目 实际完成情况 1.成功显示当天及后几天的天气信息 通过修改chaxun.java程序,比较JSON数据格式中JSONObject("to ...

  8. Android实践项目汇报(三)

    Google天气客户端 本周学习计划 调试代码使之成功运行并实现天气预报功能. 实际完成情况 由于google取消api接口服务,天气源的传输.所以我换了一个使用 haoserver API接口的程序 ...

  9. Android实践项目汇报总结(下)

    微博客户端的设计与实现(下) 第四章 系统详细功能实现 本应用实现了如下主要模块:程序启动模块.登录授权模块.主界面显示模块撰写发表微博模块.用户发布信息模块.软件设置模块. 4.1程序启动模块实现 ...

随机推荐

  1. uoj#228. 基础数据结构练习题(线段树区间开方)

    题目链接:http://uoj.ac/problem/228 代码:(先开个坑在这个地方) #include<bits/stdc++.h> using namespace std; ; l ...

  2. 基于express + express-myconnection 的请求处理模板

    前提: 开发APP时经常会用到后台提供的接口,作为一个一直搞前端的程序员.如何写后台这事不能真的一窍不通把.所以还是多多少少了解一些后台. 以前尝试过用java 的spring + springMVC ...

  3. Balanced Lineup---poj3264线段树基础

    题目链接 求对应区间最大值与最小值的差: #include<stdio.h> #include<string.h> #include<algorithm> #inc ...

  4. npm的用户名添加不上的原因

    npm添加不上的错误e401 1.用cnpm提交,会提交的tao.org这个域名了,用npm提交试试 2.如果npm提交不上,那就查看配置文件配置中 registry=http://registry. ...

  5. Loadrunner之脚本的思考时间(固定/随机)设置、调试、保存、测试服务器监控等(六)

    一.思考时间的设置 1)设置固定思考时间: Action(){ // … your code lr_think_time(3); //固定设置此处思考时间3s // … more of your co ...

  6. [svc]ftp协议数据连接的2种模式

    玩明白了以太网2的二层数据格式, ip格式 tcp/udp个时候, 需要玩一玩一些有用的基于这些已上的协议数据了. 如 dhcp ftp等.比较有趣. ftp协议 分控制连接21端口 和数据连接 20 ...

  7. PAT 1064 Complete Binary Search Tree[二叉树][难]

    1064 Complete Binary Search Tree (30)(30 分) A Binary Search Tree (BST) is recursively defined as a b ...

  8. Ubuntu 14.04 安装 SteamOS 会话

    如何在Ubuntu 14.04上安装steamos会话,以使用户的SteamOS 大图片模式直接从lightdm GTK迎宾开始进入. SteamOS是一个开源的基于Debian Wheezy分支的. ...

  9. SpringMyBatisDay03

    1.Spring MVC 1)什么是Spring MVC Spring MVC是Spring框架中一个模块,实现MVC结构,便于简单,快速开发MVC结构的WEB应用,Spring MVC提供的API封 ...

  10. 实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)

    实现对多维数组按照某个键值排序的两种解决方法(array_multisort和array_sort): 第一种:array_multisort()函数对多个数组或多维数组进行排序.    //对数组$ ...