毕业论文终稿

更新时间:2024-05-03 06:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

泰山医学院

本科毕业论文(设计)

题 目: 新浪微博手机客户端

院 系 信息工程学院 专 业 电子信息科学与技术 年 级 2011级 班 级 本科一班 学 号 4111320048 姓 名 邢本胜 指导教师 尚宪刚

泰山医学院教务处制 二O一五 年 五 月

泰山医学院本科毕业设计(论文)

新浪微博手机客户端

摘 要

微博(microblogging或microblog)又称为微博客,是一种允许用户即时更新简短文本(一般少于140字)并可公开发布的微型博客形式。它允许任何用户阅读或者只能由用户选择的群组阅读。随着发展,这些信息可以被很多方式发送,包括短信、实时信息软件、电子邮件或网页等。某些微博客也可以发布多媒体,如图片或影音剪辑等。相比传统媒体,微博的传播速度要更快,关注的人要更多,时效性要更强。微博广泛分布在桌面、浏览器、移动终端等多个平台之上,各种商业模式并存,或形成多个垂直细分领域。微博手机客户端具有即拍即发,可实时更新信息,数据量小,节约流量等特色,具有重要的研究和实用价值。

本文介绍了微博及其国内外研究现状、系统的开发环境和相关技术,阐述了新浪微博手机客户端的研究意义,对系统需求分析、概要设计、详细设计和实现做了详细描述,最后给出了系统的测试结果。

本文论述的新浪微博手机客户端基于Android操作系统,参照新浪微博提供的API,以JAVA作为开发语言,以Eclipse作为开发平台,实现了微博首页获取数据、阅读微博、查看我的资料、发表微博和查看我发表的微博列表等功能,具备了一般微博所具有的功能,具备较强的实用性。

关键词: 新浪微博,客户端设计,Android

泰山医学院本科毕业设计(论文)

Mobile Phone Sina Micro-blog Client

Abstract

Micro-blog (English: microblogging or microblog) which allows a user to update short text (usually less than 140 words) micro blog form and can be released to the public is also called micro blog. It allows anyone or only selected person and group to read. With the development of internet, these information can be transferred by many ways, including SMS、real-time information system、e-mail or webpage. Some micro blog softwares can also publish multimedia, such as images or video clips.Compared with the traditional media, micro-blog spread faster, more concerned about the people and timeliness. Micro-blog are widely distributed on the desktop、web browser、mobile terminal and other platforms. There is coexistence of a variety of business models. Micro-blog mobile phone client with the film is made, can be updated in real time information, a small amount of data, save the flow characteristics, the study has important and practical value.

This paper introduces the micro-blog and domestic and international research present condition, system development environment and related technology, expounds the significance of mobile phone sina micro-blog client, the system demand analysis, the outline design, detailed design and implementation are described in detail, finally the system test results are given.

Mobile phone sina micro-blog client in this paper is based on the Android operating system, provide reference to Sina micro-blog API, using JAVA as development language, using Eclipse as a development platform, realize the micro-blog, micro-blog home access to data, reading my profile, and I published micro-blog published micro-blog list functions, with the micro-blog has the function, has a strong practical.

Keywords: Sina micro-blog client, design, Android

泰山医学院本科毕业设计(论文)

目 录

一、绪论 .............................................................................. 1 (一)课题背景及意义 .................................................................. 1 (二)国内外研究现状 .................................................................. 1 (三)系统的相关技术 .................................................................. 2

1. Android系统构架 ................................................................ 2 2.应用程序组件 ................................................................... 3 (四)本文的主要工作 .................................................................. 4 (五)本文的组织结构 .................................................................. 5 二、系统需求分析 ...................................................................... 5 (一)系统功能需求分析 ................................................................ 5 (二)系统性能需求分析 ................................................................ 5 (三)系统用例图 ...................................................................... 6 三、系统概要设计 ...................................................................... 7 (一)系统的设计目标 .................................................................. 7 (二)系统的总体结构设计 .............................................................. 7 (三)系统的总体结构 .................................................................. 7 四、系统详细设计与实现 ................................................................ 8 (一)登录授权模块 .................................................................... 8 (二)发表微博模块 ................................................................... 11 (三)查看博友微博(微博首页)模块 ................................................... 13 (四)查看我的微博列表 ............................................................... 15 (五)查看微博详细内容 ............................................................... 17 五、系统测试 ......................................................................... 19 (一)功能测试 ....................................................................... 19 (二)性能测试 ....................................................................... 19 六、总结与展望 ....................................................................... 21 参考文献 ............................................................................. 22 致 谢 ............................................................................... 23

泰山医学院本科毕业设计(论文)

一、绪论

(一)课题背景及意义

21世纪是新经济时代,是一个互联网的时代,互联网和信息通信的迅猛发展创造了一个高科技的时代。随着互联网的迅速发展,新型网络媒体和网络营销工具也应运而生。新浪、腾讯、搜狐和网易并称为“四大门户”。针对目前互联网上如雨后春笋般冒出的各种网络营销工具,新浪结合中国特有的现象,仿照国外微博twitter,打造了一个适合中国的交流平台。新浪微博就进入了主流人群视野之中。

微博,英文为Microblogging,是微博客的简称,被网友昵称 “围脖”。它是一种基于用户关系信息分享、获取以及传播的平台。它允许用户即时更新简短文本并实现即时分享。它允许任何用户阅读或者只能由用户选择的群组阅读。随着发展,可以被传播的信息,已经不仅局限于文字,可以是图片、电子网页等。

相比传统媒体来说,微博的传播速度要更快,关注的人要更多,时效性要更强。微博广泛分布在桌面、移动终端、浏览器等多个平台之上,有多种商业模式并存,或形成多个垂直细分领域。微博即时通讯功能强大,可以通过MSN、QQ等直接书写,在没有网络的地方,也可以通过手机微博客户端实时更新自己的信息。

新浪是国内第一个推出微博的网站,同时在推广时期利用名人效应吸引了众多的用户,主要用户群体集中在企业高管、影视明星、经济学者、传媒专家、评论员、营销策划人、主持人(主播)、创业者、网络红人,这些人基本上代表着创新与时尚、颠覆与变革。

微博作为一种新的交流互动平台,正受到越来越多人的青睐。相比传统博客而言,微博使用更加简单,用户所付出的精力、成本投入都更少,写作门槛更低,用户扩展更加迅速,为媒体信息传播积累了庞大的通讯员队伍。同时,整合各类工具特别是手机短信的优势,微博具备了实时传播的特征,在面对突发事件时,微博的报道速度往往要领先于传统媒体。

企业微博的巨大价值在于构建与用户沟通的平台和渠道,高效传达及展现企业产品和服务,实现企业品牌的快速推广。微博可以用更低的成本维持顾客关系。企业管理者也可以借助微博平台发表观点,顾客可以发表评论,管理者通过回复读者的评论,与顾客进行很好的沟通。更好的维持同顾客的关系。此外,微博可以用较低的费用来推广自己,企业也可以通过链接,给自己的网站进行低成本的推广。

微博手机客户端具有即拍即发,可实时更新信息,数据量小,节约流量等特色,具有重要的研究和实用价值。

(二)国内外研究现状

目前国外微博客:Twitter网站、jaiku(美国)、印度微博客SMS GupShup、Meme(美国)plurk(加拿大)等。最早也是最著名的微博客是美国的Twitter,据相关公开数据,截至2010年1月,该产品在全球已经拥有7500万注册用户。在2006年3月,博客技术先驱blogger创始人埃文(Evan Williams)创建的新型公司Obvious推出了微博客服务,即为Twitter。用户能用像发手机短信的数百种工具更新信息。Twitter的出现,把人们带入了微博的世界。人们可以通过即时通信、SMS、网站以及Twitter客户端更新

1

泰山医学院本科毕业设计(论文)

文字信息。

Twitter的兴起,让国内一些人激动不已。腾讯、校内网??层出不穷。但事实表明,国内微博尚还处于一种慢热的状态, 国内微博不约而同的将目光放到了产品调整以及服务完善上,在尚无法吸引到风险投资的眼光之前,他们需要做的就是如何依靠自己的能力生存下去。

在2009年5月,新浪CEO曹国伟计划准备进军微博业务,处在紧锣密鼓的调研阶段。新浪微博于2009年8月14这天开始内测。9月25日,新浪微博正式增添了@功能以及私信功能,此外还提供“转发”和“评论”的功能,供用户交流。

用户可以通过网页、和手机短信、彩信等方式发布140字以内的消息或图片,此外还可以通过API用第三方软件发布信息。在2009年11月3日,Sina App Engine Alpha版上线,可通过API用第三方软件发布信息。截至2010年10月底,新浪微博用户数已达5000万,新浪微博用户平均每天发布超过2500万条内容, 是目前中国用户数最多的微博产品。公众名人用户数众多是新浪微博的一大特色,新浪微博基本已经覆盖大部分知名企业高管、文体明星、媒体人士。

2010年初,新浪微博正式推出API开放平台。同时,百度百科也推出了“分享到新浪微博”的功能。细心的网友可以发现,在百度百科词条页的下方,增加了“分享到新浪微博”的按钮。

根据2010年官方公布数据显示,新浪微博每天发布的微博数超过2500万条,其中38%来自移动终端。每天发布的微博数量超过两千五百万条,微博总数累计超过20亿条,新浪目前是国内最有影响力、最受瞩目的微博运营商。

但是现阶段微博客的发展也存在一些问题,用户数量的增长,对于原门户网站来说,用户积累依托于原网站用户,可以实现快速发展,而对于刚刚起步的独立的微博网站来说,如何吸引用户仍是最困难的问题。并且现阶段微博盈利模式尚不清晰,目前国内只有i贴吧利用百度固有的广告资源,实现盈利,其他微博仍处于投入阶段,对营利模式还在探索中。

目前,越来越多的网民加入到“微客”这一群体中,微博在交流、新闻等方面起到的影响也越来越大,很多人在逐渐增加对这一信息渠道的依赖。

总之,这个形成时间虽短但却迅猛发展起来的新时代科技产物,已经也将为网民带来更多的便捷,随着微博在中国的发展和推进,微博也必将成为一个大家依赖且不可或缺的新信息平台。

(三)系统的相关技术

1. Android系统构架

Android系统构架,按照从高到低分为四层:应用层、应用框架层、系统运行库层和Linux内核层。

应用层:Google最开始在Android系统中绑定了一些核心应用,比如SMS短消息程序、E-mail客户端、日历、浏览器等。

应用框架层:这层是编写Google发布的核心应用时所使用的API框架,开发人员可以使用这些框架来开发自己的应用程序。Android提供了一些组件:内容提供器(content providers)、视图(view)、资源管理器(resource manager)等

系统运行库(C/C++库以及Android运行库)层:在使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用组件。比如:SQLite、SGL、SSL等。

2

泰山医学院本科毕业设计(论文)

Linux内核层主要涉及一些驱动等。 2.应用程序组件

Android应用程序主要由四个单元组成:服务程序(service)、活动程序(activity)、内容提供器(content provider)、广播接收器(broadcast receiver)

Activity

Android操作系统的活动程序(activity)是基本的处理单元,大部分的活动程序都会有一个与之相对应的显示窗体,就好比HTML程序都会针对某一个网页。Android应用程序的窗体就好比配置了按钮、文本框和编辑框的窗体,一个可以用浏览器显示的web网页或一个播放3D影像的窗体。

在 android 中,Activity 拥有四种基本状态:

Active/Running一个新 Activity 启动并入栈后,它在屏幕最前面,处于栈的最顶端,此时它处于可见并可与用户交互的激活状态。

Paused当 Activity 被另一个透明的Activity或者 Dialog窗口覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护它的内部状态,所以它仍然可见,但它已经失去焦点,故不可与用户交互。

Stopped 当一个Activity 被另一个 Activity 覆盖、失去焦点并不可见时处于 Stopped状态。

Killed 当Activity 被系统杀死回收或者没有被启动时会处于 Killed状态。

一般一个Android 应用是由多个Activity 组成的。这些Activity 之间可以进行相互跳转。例如,按下一个按钮后,可能会跳转到其他的Activity。和网页跳转稍有些不一样的是,Activity 之间的跳转有可能会有返回值,例如,从Activity A 跳转到Activity B,那么在Activity B 运行结束的时候,有可能会给Activity A 一个返回值,这样在很多时候是相当方便的。

Service

Service并没有实际的运行界面, 而是一直在Android系统的后台运行。一般使用Service为应用程序提供一些服务或不需要界面的功能。比如,从Internet上下载文件、控制Video播放器等。Service与Activity一样,也有从启动到销毁的过程,但Service的这个过程比Activity简单的多。Service从启动到销毁这个过程只会经历如下3个阶段:创建服务、开始服务、销毁服务。

一个service本质上可有两种表现形式: (1)Started

一个service在某个应用组件(比如activity)内调用start Service()时就处于\状态。一旦运行后,service可以在后台无限期的运行,即使启动它的组件被销毁了。通常地,一个started service执行一个单一操作并且不会返回给调用者结果。例如,它可能通过网络上传或下载一个文件。当操作完成后,service自动就停止了。

(2)Bound

一个service在某个应用组件内调用bind Service()时就处于\状态。一个bound service提供一个client-server接口使组件可以与service交互,发送请求或获取结果,甚至通过进程间通讯进行交叉进行这些交互。一个bound service仅在有其它应用的组件绑定它时才运行。多个应用组件可以同时绑定到一个service,但是当所有的自由竞争组件不再绑定时,service就会被销毁。

一个service运行在它所在进程的主线程中,service不会创建它自己的thread也

3

泰山医学院本科毕业设计(论文)

不会运行于单独的进程中(除非你另外指定)。这表明,如果你的service想做一些狂耗CPU的工作或阻塞型的操作(比如网络通讯或MP3播放),你必须在service中创建一个新的线程来做那些工作。通过使用一个单独的线程,将减少"应用没有反应"(ANR)错误并且应用的主线程可以保持activity对用户操作的快速反应。

Broadcast Receiver

在Android中,Broadcast是一种被广泛运用的在应用程序之间传输信息的机制,而Broadcast Receiver则是对发送出来的 Broadcast进行过滤、接受并响应的一类组件。Broadcast Receiver是Android系统的四大组件之一,使用频率也很高。广播接收者(Broadcast Receiver)用于异步接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast()、Context.sendOrderedBroadcast()或者Context.sendStickyBroadcast()实现的。通常一个广播Intent可以被订阅了此Intent的多个广播接收者所接收,广播接收者和JMS中的Topic消息接收者比较相似。

Broadcast Receiver不能生成UI,也就是说对于用户来说它不是透明的,用户是看不到的。Broadcast Receiver通过Notification Manager 来通知用户这些事情的发生。Broadcast Receiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要注册了,当事件来临的时候,即使程序没有启动,系统也会在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcasts广播给其他的应用程序。

Content provider

Content Provider是所有应用程序之间数据存储和检索的桥梁,它的作用是使得各个应用程序之间实现数据共享。为存储数据和获取数据提供统一的接口。在android中,content provider是一个特殊的存储数据类型。它提供了一套标准的接口用来获取和操作数据。系统也提供了图像、音频、视频、个人联系信息等几个常见的content provider。如果你想公开自己的数据,可以通过建立自己的content provider类,或者当你对这些数据拥有写入、控制权限时将这些数据添加到content provider类中来实现共享。

所有的content provider都会实现一些共同的接口,包括数据的查询、更改、添加和删除。应用可以通过一个唯一的content resolver接口来使用某个具体的content provider。每个content provider都会对外提供一个公有的URI(包装成Uri对象),如果应用程序有数据需要共享,就需要使用content provider为这些数据定义一个URI,其他应用程序就可以通过content provider传入这个URI来对操作数据。

Content Provider屏蔽了内部数据的存储细节,对外提供了上述统一的接口模型,这样的抽象层次,很大简化了上层应用的书写,也对数据的整合提供了更方便的途径。Content Provider内部,常用数据库来实现,Android提供了强大的Sqlite支持,但在很多时候,你也可以封装文件或其他混合的数据。

(四)本文的主要工作

本文所做的主要工作如下所述:

(1)在对微博手机用户端需求进行详细分析的基础上,设计、实现了一个具有首页获取数据、阅读微博、查看我的资料、发表微博和查看我发表的微博列表等功能的,具有较强的实用性的新浪微博手机客户端。

(2)采用图形用户界面技术,实现了多重图形窗口和丰富便利的操作界面,为用户

4

泰山医学院本科毕业设计(论文)

提供了最简洁的使用方法。

(3)基于优秀的开发平台,按照软件工程开发规范实现系统的开放性,便于内容的扩充和技术的升级。

(4)本系统采用OAuth认证方式,位系统和数据的安全性提供了保证。

(五)本文的组织结构

第一章绪论部分主要介绍了微博的国内外现状和本系统的研究意义以及开发手机新浪微博的平台——android,包括android的系统构架和应用程序组件。

第二章介绍新浪微博的系统分析,主要从功能和性能方面来进行分析。

第三章是系统概要设计,对系统的设计思想、设计目标、总体结构设计做了说明。 第四章是系统详细设计与实现,包括各个功能模块的UI和业务逻辑的设计与实现。 第五章是系统的测试,描述本系统主要使用的测试方法、测试用例及测试结果。

二、系统需求分析

(一)系统功能需求分析

本新浪微博客户端需要实现以下功能:

(1)用户登录授权:当用户使用该软件时,会打开新浪微博的授权页面,用户对该客户端进行授权,然后跳转到微博首页。

(2)发布微博:发布微博是微博的基本功能,用户将自己想要向外界传达的信息进行发布,这是用户向外传播信息的最主要的途径与方法。

(3)查看用户个人信息:用户可以查看自己的信息,包括用户名、我的关注数、我的粉丝数、我发表的微博数等。

(4)查看微博更新:在微博的首页要显示用户关注的博友的最近微博更新。 (5)查看我发布的微博:用户可以查看自己发布过的微博信息。 (6)查看微博详细内容:用户可以查看自己以及博友的微博详情。

(二)系统性能需求分析

为了保证能够长期、安全、稳定、可靠、高效的运行,系统需满足以下的性能需求: (1)系统处理的准确性和及时性

系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息处理的需求。

(2)系统的易用性和易维护性

系统应该能够提供良好的用户接口,易用的人机交互界面。要实现这一点就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,针对用户可能出现的使用问题要提供足够的在线帮助,缩短用户对系统熟悉的过程。

(3)系统的响应速度

新浪微博在用户操作中的响应速度为秒级,达到实时要求。保证用户不会因为速度

5

泰山医学院本科毕业设计(论文)

问题而影响工作、学习效率。

(三)系统用例图

新浪微博手机客户端系统用例图如图2-1所示:

图2-1新浪微博手机客户端系统用例图

6

泰山医学院本科毕业设计(论文)

三、系统概要设计

(一)系统的设计目标

本系统的目标旨在实现新浪微博手机客户端,以实现信息即时分享,表达出用户每时每刻的思想和最新动态,方便用户更好的实现信息的传播和获取。

(二)系统的总体结构设计

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

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

(3)在系统和数据安全性方面,本系统采用OAuth认证方式,OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同的地方是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方软件无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。

(三)系统的总体结构

微博客户端不是一个简单的概念,它包含了许多个内容,是由多个页面组成的一个整体的系统。

新浪微博手机客户端总体结构图如图3-1所示:

7

泰山医学院本科毕业设计(论文)

图3-1 手机新浪微博结构图

四、系统详细设计与实现

(一)登录授权模块

本新浪微博手机客户端软件载入过程通过播放动画实现,加载启动界面时自动运行log类onCreate方法,该类继承Activity类,在log类中重写onCreate方法,在该方法中进行动画属性的设置,并启动动画。

软件启动界面如图4-1所示:

8

泰山医学院本科毕业设计(论文)

图4-1手机微博登陆界面

设置动画播放完成后启动的页面,通过Intent对象实现新页面的启动,启动授权页面。

Intent it = new Intent(log.this, AuthorizeActivity.class); startActivity(it);

新浪授权页面如图4-2所示:

9

泰山医学院本科毕业设计(论文)

图4-2新浪微博授权页面

微博用户输入用户名和密码后点击登录,会对该微博客户端进行授权,调用weibo对象的authorize接口实现认证授权。认证结束后将启动微博用户首页,通过Intent对象实现启动微博首页。

intent.setClass(AuthorizeActivity.this, MainActivity.class); startActivity(intent); 主要实现代码如下:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

imgv2 = (ImageView)this.findViewById(R.id.man3);

AlphaAnimation aas = new AlphaAnimation(0.1f, 1.0f);

TranslateAnimation tas = new TranslateAnimation(0, 58, 0, 0); tas.setDuration(5000); imgv1.startAnimation(tas);

tas.setAnimationListener(new AnimationListener() { public void onAnimationEnd(Animation arg0) { Intent it = new Intent(log.this, AuthorizeActivity.class); startActivity(it); finish(); } });

TranslateAnimation tas1=new TranslateAnimation(0,-58,0,0); imgv2.startAnimation(tas1); }

weibo.authorize(AuthorizeActivity.this, new AuthDialogListener());

10

泰山医学院本科毕业设计(论文)

class AuthDialogListener implements WeiboDialogListener { public void onComplete(Bundle values) { String expires_in = values.getString(\ AccessToken accessToken = new AccessToken(token, CONSUMER_SECRET); accessToken.setExpiresIn(expires_in); Weibo.getInstance().setAccessToken(accessToken); Intent intent = new Intent(); intent.setClass(AuthorizeActivity.this, MainActivity.class); startActivity(intent); finish(); } }

(二)发表微博模块

UI设计,在这个界面中,使用LinearLayout将页面分为三个部分,属性设置为垂直分布android:orientation=\,顶部使用include导入布局文件,实现添加顶部布局。

layout=\

中间使用RelativeLayout控制布局,底部使用include导入布局文件,实现添加底部布局。

android:layout_alignParentLeft=\ android:layout_below=\ layout=\效果图如图4-3所示:

图4-3新浪微博发表新微博界面

进入该界面,后台首先运行onCreate方法,在这个方法中首先获取界面中的各个控件对象,然后设置界面中Button的事件监听者,当鼠标点击按钮时会产生相应的事件。

点击发送按钮时,执行update方法,在这个方法中使用bundle对象保存微博信息,

11

泰山医学院本科毕业设计(论文)

然后调用weibo接口request实现发布微博。

主要实现代码如下:

protected void onCreate(Bundle savedInstanceState) {

Intent ita = this.getIntent(); //获取已有的intent对象

Bundle bundle = ita.getExtras(); //获取intent里面的bundle对象 try { String tt = bundle.getString(\获取Bundle里面的字符串

lo.setText(tt); }

catch(Exception e){ } Timer timer = new Timer();

timer.schedule(new TimerTask(){ public void run() { InputMethodManager m = (InputMethodManager)sendcontent.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); } }, 1000);

int total = 140; num.setText(s);

info.setText(\发表新微博\

send.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Weibo weibo = Weibo.getInstance(); String str = sendcontent.getText().toString(); update(weibo, str+\我在\ Toast.makeText(NewblogActivity.this, \发送成功!\

}

}); }

private String update(Weibo weibo, String status, String lon, String lat) throws WeiboException {

WeiboParameters bundle = new WeiboParameters(); bundle.add(\ if (!TextUtils.isEmpty(lon)) { bundle.add(\ }

if (!TextUtils.isEmpty(lat)) { bundle.add(\ }

12

泰山医学院本科毕业设计(论文)

String rlt = \

String url = Weibo.SERVER + \

rlt = weibo.request(this, url, bundle, Utility.HTTPMETHOD_POST, weibo.getAccessToken());

return rlt;

}

(三)查看博友微博(微博首页)模块

UI设计,在这个界面中,主要是一个ListView,在ListView中的每一个item中展示每一条微博。查看博友微博如图4-4所示:

图4-4手机新浪微博查看博友微博

这是在微博首页模块中的每一个微博的样式,最外面是一个水平方向的Linerlayout,用户头像右边是一个竖直方向的的Linerlayout, 然后依次是用户昵称,微博发布的时间,微博内容,微博发布方式,转发和评论数量。

在Android中,用列表控件来显示一组数据,比如显示从数据库查询出来的结果列表。Android将显示和数据分开来处理,在这二者中起到桥梁作用的就是adapter,示意图如图4-5所示:

13

泰山医学院本科毕业设计(论文)

图4-5adapter图

下面我们来详细描述一下我们自定义的adapter。

自己的adapter继承自BaseAdapter,需要实现其中几个方法: int getCount()

返回数据的数量,这里我们返回从新浪微博一次取回的用户自己和用户所关注的博友所发微博的数量。

Object getItem(int position)

从数据集合中返回参数position 指定的数据,我们这里返回第position 条微博。 String getId(int position)

返回指定位置的数据的ID,我们这里返回的是新浪提供的微博ID。 String getName(int position)

返回指定位置的数据的name,我们这里返回的是新浪提供的微博昵称。 View getView(int position, View convert, ViewGroup parent)

它的功能是将相应的数据放到一个子控件中,然后返回子控件,供父控件(列表控件)使用。第一个参数指定出数据的位置,第二个参数是要传给父控件的子控件,第三个参数是父控件。

首先,获得子控件:

private LayoutInflater inflater = null; inflater = LayoutInflater.from(context);

convert = inflater.inflate(R.layout.list_row, null); 然后设置需要显示的数据,具体实现代码如下:

holder.sources = (TextView)convert.findViewById(R.id.tvItemResource); holder.tvItemDate.setText(publishtime+\分钟前\holder.sources.setText(\来自:\items.get(position).get(\

holder.comme.setText(\评论 \items.get(position).get(\

holder.trans.setText(\转发 \items.get(position).get(\

convert.setTag(holder); 这样即可实现微博数据绑定。 效果图如图4-6所示:

14

泰山医学院本科毕业设计(论文)

图4-6微博展现

(四)查看我的微博列表

首先在个人资料页面中点击“微博”文字,通过添加点击事件将启动我的微博列表页面。

用户资料效果图如图4-7所示:

15

泰山医学院本科毕业设计(论文)

图4-7新浪微博查看我的微博列表

首先获取界面的控件对象并设置按钮的事件监听器,再通过getJSONObject方法获取用户的微博对象,在该方法中,通过该对象获取微博正文、用户昵称等信息,并以键值对的形式存放到map对象中,将该map对象添加到list列表中,实现微博列表的存储,获取到用户的微博列表后,设置界面ListView对象的adapter。

retu = (ImageButton)findViewById(R.id.re); lv = (ListView)findViewById(R.id.myweibqq); String s = getusertimeline(); List> list = this.getJSONObject(s);

listAdapter = new listviewAdapter3(this, list); lv.setAdapter(listAdapter);

public static List> getJSONObject(String json) throws Exception {

List> list = new ArrayList>(); Map map = null; JSONArray jsonArray = jsonObject.getJSONArray(\ for (int i = 0; i < jsonArray.length(); i++) {

JSONObject item = jsonArray.getJSONObject(i); // 得到每个对象 String text = item.getString(\获取对象对应的值

JSONObject userObj = new JSONObject(user); // 将其转化为JSONObject String name = userObj.getString(\ map.put(\

16

泰山医学院本科毕业设计(论文)

list.add(map); }

return list; }

我的微博列表效果图如图4-8所示:

图4-8我的新浪微博列表

(五)查看微博详细内容

UI设计,使用LinearLayout的垂直布局将界面分为三个部分,顶部使用RelativeLayout布局,左边和右边为两个ImageButton,中间为TextView。微博正文部分使用上下两个RelativeLayout实现布局,底部使用ListView控件来显示数据。

微博正文效果图如图4-9所示:

17

泰山医学院本科毕业设计(论文)

图4-9查看微博

加载该页面时首先获取界面的控件,将其转换为对象,并设置按钮的事件监听器。然后通过weibodetail对象获取微博详细信息并绑定到相应的对象中,对于评论部分,通过getJSONObject方法获得。

主要实现代码如下:

sour.setText(\来自\trans.setText(\转发 \String iid = wdetail.getId();

List> list = this.getJSONObject(s);

listAdapter = new listviewAdapter2(this, list); lv.setAdapter(listAdapter);

List> list = new ArrayList>(); Map map = null; JSONObject jsonObject=new JSONObject(json);

JSONArray jsonArray = jsonObject.getJSONArray(\for (int i = 0; i < jsonArray.length(); i++) { JSONObject item = jsonArray.getJSONObject(i);

18

泰山医学院本科毕业设计(论文)

JSONObject userObj = new JSONObject(user); String name = userObj.getString(\

String iconurl = userObj.getString(\map = new HashMap(); list.add(map); }

五、系统测试

(一)功能测试

(1)用户登录授权

测试用例:帐号pure_code(已有账号),密码woshishui(正确密码)。 测试结果:界面正确跳转到微博首页。 测试用例:帐号pure_code(已有账号),密码aaa(错误密码)。 测试结果:提示:用户名或密码错误。 测试用例:帐号pure_code1(无此账号),密码woshishui 微博首页点击一条微博提示:用户名或密码错误。 (2)查看微博详细内容

测试用例:点击微博首页第一条微博。

测试结果:在阅读微博界面中显示出微博首页第一条微博的详细信息。 (3)发布新的微博

测试用例:点击写微博按钮,输入“这是一条微博”字样,点击发送按钮

测试结果:进入写微博界面,书写完微博内容点击发送按钮出现“发布成功”字样的toast提示框。

(4)查看个人信息

测试用例:点击工具条中的查看个人信息按钮

测试结果:界面正确显示用户pure_code的基本信息,包括用户昵称、性别、地址、登陆账号、关注数、微博数、粉丝数。

(5)查看已发微博列表 测试用例:点击微博按钮

测试结果:界面正确显示用户pure_code最新发表的微博列表。

(二)性能测试

我们对本系统做了一下性能测试,包括测试显示用户首页、查看个人信息、查看微博详细内容、发表新微博、查看我的微博列表等功能的响应时间,经过性能测试发现,在网络的状态良好的情况下,响应时间是5秒以内,经过性能测试,本系统基本达到了前面所提出的性能需求。

(1)用户登录授权

测试用例:帐号pure_code(已有账号),密码woshishui(正确密码)。 测试结果:3.5秒界面跳转到微博首页。 (2)查看微博详细内容

测试用例:点击微博首页第一条微博。

19

泰山医学院本科毕业设计(论文)

测试结果:3秒界面跳转到第一条微博详细内容界面。 (3)发布新的微博

测试用例:点击写微博按钮,书写完微博信息“这是一条微博”点击发送按钮。 测试结果:4秒界面显示“发布成功”toast提示框。 (4)查看个人信息

测试用例:点击工具条中的查看个人信息按钮。

测试结果:3秒界面跳转到显示微博用户pure_code基本信息的界面。 (5)查看已发微博列表 测试用例:点击微博按钮。

测试结果:3.5秒界面跳转到显示用户pure_code最新发表的微博列表的界面。

20

泰山医学院本科毕业设计(论文)

六、总结与展望

在一个信息技术快速发展的时代,我们都无法置身事外,我们不能仅仅局限在享受这个时代带给我们的便利的狭小空间里,我们要积极寻找更加便捷快速的获取信息的方式。在这个知识创新就是财富的时代,我们要勇于创新。

微博是一个很大的平台,本身就具有很多功能,包含了很多个性化的设计。与手机的无缝结合是微博客带来的革命性的意义,利用手机上网发布讯息和接受信息,与用户手机进行互动对推动微博客的未来发展具有重要意义。而未来3G网络随着国内二代网络手机在未来3-5年内进入更换的高峰期,3G手机应用会普遍应用,3G技术更趋完善,电信运营商对3G的运营也更细致入微。同时3G资费下调,移动互联网的快速发展,都将更有利于微博客的发展。

通过毕业设计,首先,我们深刻领会到基础的重要性,毕业设计不仅仅能帮助我们检验大学四年的学习成果,更多的是毕业设计可以帮助我们更加清楚的认识自我,磨练我们的意志与耐性,这会给我们日后的工作和生活带来很大的帮助。其次,我们的专业知识有了非常大的积累,包括Java、Android、xml等相关方面,对我们来说,我们将积累一定的工程开发经验,对我们的工作很有帮助。再次,我们学习了如何和团队成员进行有效的沟通,通过有效的沟通,我们这次毕业设计进程进展的比较顺利,以后我们在工作、学习中将更加注重团队之间的沟通与合作。

同样,通过毕业设计,我们也对微博的发展历程以及微博的主要功能有了进一步的了解和认识。我们设计的新浪微博手机客户端实现了微博的登录,微博的发表,查看微博详细内容,查看个人信息以及查看已经发表的微博等基本功能。相对现在已经比较流行的微博,主要功能都已经实现。因为时间和个人能力有限,我们在手机新浪微博的其他功能实现以及个性化设计方面还有所欠缺。在今后的学习中,我们要不断总结和创新。

21

泰山医学院本科毕业设计(论文)

参考文献

[1]林城. Android 2.3应用开发实战[M] .机械工业出版社, 2011:22-28. [2]杨丰盛. Android应用开发揭秘[M] .机械工业出版社, 2012:38-40. [3]刘中兵.Java编程思想(第四版)[M] .电子工业出版社,2011:55-59. [4] 郭宏志.Android 应用开发详解[M] .电子工业出版社,2010:27-40. [5]李宁.Android应用开发实战[M] .机械工业出版社,2011:39-42. [6]明日科技.Android 从入门到精通[M] .清华大学出版社,2012:50-55. [7]邓凡平.深入理解Android[M] .机械工业出版社,2011:60-66. [8]李刚.疯狂Android 讲义[M] .电子工业出版社,2011:48-55.

[9]罗升阳.Android 系统源代码情景分析[M] .电子工业出版社,2012:39-44.

[10]吴亚峰,苏亚光,百纳科技.Android 应用案例开发大全[M] .人民邮电出版社,2011:29-40.

[11]雍俊海. Java程序设计教程[M] .北京:清华大学出版社,2007:61-121. [12] 李兴华.名师讲坛:Android 开发实战经典[M] .清华大学出版社,2012:27-29.

22

泰山医学院本科毕业设计(论文)

致 谢

经过几个月的忙碌和学习,毕业设计已接近尾声,在毕业设计和论文撰写过程中,我们遇到了许许多多的困难,在徐振中老师的悉心帮助和耐心而细致地指导下,我们解决了遇到的种种问题,顺利完成了任务。徐老师的治学严谨和科学研究的精神也是我们永远学习的榜样,并将影响我们今后的学习和工作。同时感谢院领导对我们的教导和关注,感谢大学四年来给我们传授专业知识的所有老师,谢谢我们周围的同窗朋友,在我们的设计中给了我们许多宝贵的意见和建议,给了我们无数的关心和鼓励,也让我们的大学生活充满了温暖和欢乐。同时也要感谢自己遇到困难的时候没有一蹶不振,取而代之的是找到了最好的方法来解决问题。

23

本文来源:https://www.bwwdw.com/article/lpmg.html

Top