基于Android的新浪微博客户端设计实验指导书

基于Android的新浪微博客户端设计实验指导书
基于Android的新浪微博客户端设计实验指导书

基于Android的新浪微博客户端设计

目录

基于Android的新浪微博客户端设计 (1)

1 实验背景和意义 (2)

2 实验内容 (2)

3 实验原理 (2)

3.1 需求分析 (2)

3.2 用户界面模块 (4)

3.2.1 Android控件与布局 (4)

3.2.2 Android输入事件 (5)

3.2.3 程序用户界面的设计 (5)

3.3 服务请求模块 (10)

3.3.1 OAuth1.0协议 (10)

3.3.2 Base64编码 (11)

3.3.3 OAuth1.0签名生成 (13)

3.3.4 HttpClient使用 (14)

3.3.5 多线程处理 (14)

3.4 数据解析模块 (14)

3.4.1 SAX解析XML (15)

3.4.2 树形结构 (15)

4 实验步骤 (16)

1实验背景和意义

近年来,手机以及嵌入式掌上设备迅速发展,各种嵌入式操作系统迅速强大,目前比较流行的嵌入式操作系统有诺基亚的Symbian,微软的Windows Mobile,谷歌的Android,以及苹果的iOS等。

作为嵌入式操作系统,Android具有以下优势:

开放性:在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

挣脱运营商的束缚:在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。

丰富的硬件选择:这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。

不受任何限制的开发商:Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。

无缝结合的Google应用:如今叱咤互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

2实验内容

Android新浪微博客户端的开发。其中包括:

程序界面的设计;

后台各种模块的设计;

对微博开发平台的访问的OAuth协议的实现;

对XML文件格式的解析。

3实验原理

3.1需求分析

微博,即微博客(MicroBlog)的简称,是一个基于用户关系的信息分享、传播以及获取的平台,用户可以通过Web,Wap以及各种客户端组建个人社区,通常以140字左

右的文字更新信息,并实现及时分享。微博开通的多种API 使得大量的用户可以通过手机、网络等方式来即时更新自己的个人信息。所以,将微博应用于移动设备是一个很好的选择。

系统需要实现一个在Android 系统下的新浪微博客户端,使用新浪微博账号登录新浪微博服务器,发布新的微博信息,读取用户发布的微博信息,好友信息,好友的微博信息,公共的微博信息,微博的转发以及评论。

图1 软件总体模块 实现以上功能,首先将整个软件划分为三个模块:用户界面模块,服务请求模块,数据解析。如图1所示,用户界面模块用于展现数据以及响应用户请求至服务请求模块;服务模块向服务器发出请求并将服务器响应结果传递给数据解析模块;数据解析模块解析完成数据,将已解析数据提交给用户界面模块进行结果显示。

图2 用户界面操作流程 对于用户界面来说,为提高用户体验,程序需要有一个Logo 界面,然后是登录界面,在登录完成之后需要有一个主界面以及其他各种状态以及列表的显示界面。图2简单显示了各种界面之间的关系,界面包括Logo 界面,登录界面,主界面,状态发布界面,其中客户区是显示内容的区域,由数据内容动态决定。

作为新浪微博客户端与服务器之间的交互,需要使用HTTP 协议发出请求,每一个请求都对应了一个请求地址和请求参数。而对于这种第三方客户端使用服务,通常使用开放认证协议(Open Authorization Protocol ,简称OAuth ,以下使用OAuth ),对于每一次服务请求,都需要使用OAuth 认证,所以这部分要求需要实现OAuth 认证协议。图3为服务请求模块的简单流程。

用户界面 数据解析

服务请求

启动

Logo 界面

登录界面 主界面 顶部菜单 底部菜单

客户区

点击 状态发布界面

图3 服务请求模块简单流程

请求所返回的数据格式为xml 格式,要展示文件内容至用户界面,首先要对xml 文件进行解析,将xml 格式转换为一个树形数据结构,树形结构的节点数据应该该包括节点名称,节点文本,若干个节点属性,每一个属性应该包括属性名称,属性内容。将xml 文件解析为树形结构之后还需要将树形结构与用户界面的部件之间进行映射。

3.2 用户界面模块

对于Android 用户界面的设计来说,主要需要了解两点知识,Android 控件和布局文件,以及用户的输入事件。本节首先介绍Android 程序用户界面的设计的相关知识,之后是微博客户端程序用户界面的详细设计。

3.2.1 Android 控件与布局

在Android 应用程序里面,用户界面是使用View 以及ViewGroup 的对象建立起来的,有各种各样的由View 类及其子类组成的视图以及视图的组合。

View 对象是用户界面的基本单元,一个View 对象是一个存储其在屏幕里面的矩形区域的布局参数以及其他属性的数据结构,每一个View 对象都有自己的尺寸标准,布局,图形,焦点改变,滚动条,点击以及键盘事件等。

ViewGroup 则是View 的组合,如图4所示,一个ViewGroup 可以包括若干View 或者若干ViewGroup 。一个ViewGroup 本身就是一个View 。

图4 ViewGroup 树 一个Activity 代表一个屏幕,要在屏幕上显示一个View 对像,必须在Activity 里面调用setContentView 方法将View 对象绑定。在需要重绘的时候,系统服务调用View 根节点的重绘函数,而根节点调用其子节点的重绘函数让其自己重绘。

用户界面操作 生成OAuth 签名

提交HTTP 请求

服务器返回数据

调用数据解析模块

为使得开发人员可以专心致力于核心代码的编写,Android将繁琐的界面设计和Java代码分离开来。大多数情况下,可以使用一个XML布局文件来定义一个View界面。

一个XML布局文件就是一个ViewGroup对象,里面的每一个元素都是一个View对象或者是一个ViewGroup对象。在XML布局文件里面,每一种元素的名字都对应了Java代码里面的一个View类,例如在XML里面有一个

相关文档
最新文档