当前位置:首页 >> 工学 >>

基于Android的新闻客户端


毕业设计说明书
基于 Android 的新闻客户端

学生姓名: 学 专 院: 业:

学号: 计算机与软件学院 化学工程与工艺

指导教师:

2016 年 6 月

2016 届 毕 业 设 计 说 明 书

基于 Android 的新闻客户端
摘 要

移动互联网的飞速发展,Android 的使用用户数量逐渐庞大,基于 Android 的 新闻客户端获取新闻更加便携,内容更加丰富,用户根据分类查找新闻更加高效, 开发新闻客户端的需求日益增加。 本项目实现新闻的分类显示, 同时可以评论新闻, 提高了用户的参与度,同时可以收藏,使用户可以及时快速查看自己喜欢的新闻。 本文首先介绍了研究背景和研究目的与意义,然后进行需求分析,把项目分为分类 显示新闻模块,显示新闻详细信息模块,新闻评论模块,新闻收藏模块,用户登录 注册模块,显示用户个人信息模块以及显示个人收藏模块,接着介绍了项目的总体 架构和各模块的概要设计,然后详细说明了各模块的详细设计以及所用关键技术, 本项目的数据传输格式主要采用 JSON 格式,可以异步加载新闻,接着展示测试, 最后总结。 关键词:互联网,新闻客户端,便携,JSON

2016 届 毕 业 设 计 说 明 书

Based on the Android News to the Client
Abstract The rapid development of mobile Internet, the use of a large number of users Android gradually get news Android-based news client more portable, more substantial, more efficient for users to find news according to the classification developed news client demand is increasing. The classification of the project realization news show, and can comment on the news, improve user engagement, and can collection, so that users can view their favorite news in a timely manner, more efficient. This paper introduces the research background and purpose and meaning, and then introduce analysis needs analysis, the project is divided into category display news module, the module details show news, news commentary module, news collection module, the user login registration module displays the user's personal information module and displays the personal collection of modules, then introduces the outline design the overall structure and each module of the project, and a detailed description of the detailed design of each module as well as the use of key technologies, data transmission format of the project mainly uses JSON format that can be loaded asynchronously News and show test concluded.. Keywords: Internet, news client, portable, JSON

2016 届 毕 业 设 计 说 明 书

目 录
1 需求分析 ...................................................................................................................... 1 1.1 研究背景 ................................................................................................................... 1 1.2 项目目的及意义 ....................................................................................................... 1 1.3 Android 介绍 ............................................................................................................. 2 1.4 系统描述 ................................................................................................................... 4 1.5 功能性需求分析 ....................................................................................................... 4 1.5.1 新闻客户端的主要功能 ........................................................................................ 4 1.5.2 新闻客户端的功能模块 ........................................................................................ 5 1.5.3 后台管理功能模块 ................................................................................................ 5 1.6 非功能性需求分析 ................................................................................................... 5 1.6.1 响应时间需求 ........................................................................................................ 6

1.6.2 可扩展性需求 ........................................................................................................ 6 1.6.3 易用性需求 ............................................................................................................ 6 2 基于 Android 平台的新闻客户端的概要设计 .......................................................... 6 2.1 系统架构设计 ........................................................................................................... 7 2.2 系统客户端实现总体架构 ....................................................................................... 7 2.3 系统功能模块划分 ................................................................................................... 8 2.4 系统功能模块的分析及设计 ................................................................................... 9 2.5 数据库设计 ............................................................................................................. 10 3 详细设计 .................................................................................................................... 14 3.1 显示新闻模块 ......................................................................................................... 14 3.2 显示新闻详细信息模块 ......................................................................................... 15 3.3 新闻跟帖显示模块 ................................................................................................. 17 3.4 后台管理功能模块的详细设计 ............................................................................. 17 3.4.1 用户登录模块 ...................................................................................................... 17 3.4.2 新闻管理模块 ...................................................................................................... 17 3.4.3 评论信息管理 ...................................................................................................... 18

I

2016 届 毕 业 设 计 说 明 书 3.5 新闻客户端所用技术 ............................................................................................. 18 3.5.1 JSON 数据传输格式 ........................................................................................... 18 3.5.2 异步加载新闻信息 .............................................................................................. 18 3.5.3 数据交互方式 ....................................................................................................... 19 3.5.4 SharedPreferences 数据存储 ............................................................................... 20 4 测试 ............................................................................................................................ 21 4.1 分类显示信息模块 ................................................................................................. 21 4.2 新闻详细信息模块 ................................................................................................. 21 4.3 显示新闻评论模块 ................................................................................................. 22 4.4 个人信息模块 ......................................................................................................... 23 4.5 用户登录注册模块 ................................................................................................. 23 4.6 后台管理测试 ......................................................................................................... 25 4.6.1 管理登录模块 ...................................................................................................... 25 4.6.2 新闻信息管理模块 .............................................................................................. 25 4.6.3 评论信息管理模块 .............................................................................................. 28 5 结论 ............................................................................................................................ 30 参 考 文 献 .................................................................................................................... 31 致 谢 .............................................................................................................................. 32

II

2016 届 毕 业 设 计 说 明 书

1 需求分析
本章首先分析研究背景,介绍了研究目的与意义,接着分析并介绍了系统的功 能性需求与非功能性需求。 1.1 研究背景 现在智能手机已经成为人们必不可少的工具,网络也在飞速发展[1],用户从网 上获取数据的需求也越来越大,新闻作为人们了解生活变化的重要途径,因此,网 上获取新闻的用户数量飞速增加[2]。随着大数据的到来,用户获取资料的方法也随 之改变,新闻的发展与人们资料的获取不可分割。现在已出现许多大型的新闻客户 端,如:腾讯、新浪、搜狐等[3]。人们可以利用智能手机新闻客户端获取信息,新 闻客户端发生如此快速的发展,在于它有以下的特点: (1)便携性:智能手机客户端可以随时,随处的查看新闻,使用方便,可以更好 的满足用户需求,用户通过新闻客户端获取新闻逐渐成为趋势。 (2)数据广泛:随着大数据的到来,互联网的信息更加丰富,新闻客户端可以从 网上海量的数据中获取资料[4],使得内容更加广泛,远远多于传统的报纸,书籍等 获取新闻的方式。 (3)及时性:用户可以随时的登录客户端,通过网络获取数据,智能手机可以随 时携带,网络可以随时获取,使得新闻客户端更加的灵活,更好的满足用户的生活 需求。 (4)良好的用户体验:用户可以根据自己的爱好,有选择性的阅读新闻,同时可 以评论新闻,参与互动,并且可以查看其他用户的看法,参考别人意见,更好的了 解人们的生活动态。 1.2 项目目的及意义 在满足用户可以分类获取新闻的同时,增加跟帖,收藏新闻等功能,用户可以 查看跟帖与用户个人收藏,使用户更加具有参与性,成为有观点的阅读者[5],使新 闻更加具有可读性。用户可以根据跟帖数和跟帖内容,更加快速的获取热门新闻, 更快的选择新闻,节约用户的选择时间,更快的获取新闻,这样更具有用户体验,
第 1 页 共 35 页

2016 届 毕 业 设 计 说 明 书 更容易满足用户的需求。 Android 新闻客户端目标:在满足用户查看新闻的基础上,更重要的是给用户 更好的阅读体验[6],使用户可以在短的时间内获取多的自己感兴趣的新闻信息。为 了达到以上目的,从而实现以下功能: (1)对新闻进行分类显示,使用户可以分类选择自己喜欢的新闻,更加高效, 快速,分别设置了如下分类:国内、国际、军事、体育、科技、财经、游戏。 (2)用户可以注册,登录,同时可以评论新闻,查看评论,使用户可以根据 新闻的评论数与评论内容,更好、更快的选取新闻。 (3)用户可以收藏新闻,并且查看收藏的新闻,使用户可以及时的翻看已经 看过的感兴趣的新闻,加快用户的搜索效率。 (4)采用异步加载数据,给用户更好的体验,同时减少了用户的等待时间, 更好的满足用户需求。 (5)增加个人信息设置,实现用户登录,修改个人信息,查看自己的收藏。 (6)增加夜间模式的设置,满足用户夜间阅读新闻的需求,给用户带来更好 的体验。 后天管理目标:实现对新闻的增删改查,对用户评论的显示与删除,以及对用 户的增删改查。 1.3 Android 介绍 Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动 设备上[7]。Android 的创始人是 Andy Rubin,Android 一词出自于科幻小说《未来夏 娃》[8]。 Android 系统是一个四层的结构,依次是 Linux 内核层(Linux kernel)、系统 运行库层(Libraries 和 Android Runtime)、应用框架层(Application Framework)、 应用层(Applications)[9]。

第 2 页 共 35 页

2016 届 毕 业 设 计 说 明 书

图 1.1 Android 系统架构

应用层(Application):顾名思义,就是指 Android 的应用,也就是我们平时 所使用的手机软件。Android 的应用很多,常见的有拍照、摄像、聊天、视频等方 面的应用。Android 的开发一般在应用层上做开发,因此,开发人员只需要知道应 用框架层的使用就可以进行开发了,而不需要知道 Android 更底层的使用。 应用框架层(Application Framework):同样,顾名思义,这一层就是应用程 序所使用的框架。这一层的主要作用就是封装了更低层的使用方法,为底层的使用 提供 API,同时,这一层也用于简化开发时的组件重用。这一层为我们提供了大量 的组件:视图(Views)、内容提供器(Content Provider)、资源管理器(Resource Manager)、通知管理器(Notification Manager)、活动管理器(Activity Manager)、 窗口管理器(Windows Manager)、包管理器(Package Manager)、即时通讯协议 服务(XMPP)[10]。一般开发人员会根据自己的需求来使用这些组件,或者自定义 组件。 程序库和运行库(Libraries 和 Runtime):这一层主要提供了一些 Android 需 要的 C/C++库、SQLite、媒体库等;运行库中包括了一个核心库(Core Libraries), 提供了 JAVA 编程语言核心库的大多数功能, 以及一个虚拟机 (DVM, Dalvik Virtual
第 3 页 共 35 页

2016 届 毕 业 设 计 说 明 书 Machine)。对于这一层,主要是为了能够将一些非 Android 语言的代码调用包含 到 Android 中,使得 Android 能够调用 C/C++的代码。开发人员如果要对库进行开 发,不仅需要有深厚的 Android 知识,还必须会 C/C++语言开发,同时,还需要会 JNI 开发[11]。 Android 内核:Android 的核心是由 Linux 来提供服务的。Android 是建立在 Linux2.6 上的,因此需要 Linux 内核来为 Android 的运行做出保障。在 Android 内 核之上的是系统软件,而在 Android 内核之下的是 Android 的硬件平台,所以 Android 内核充当了两者之间的媒介。 1.4 系统描述 本新闻客户端分为客户端和服务器两部分,以及后台管理。服务器主要用于对 文字,图片等数据的存储。客户端是展示给用户的部分,用户可以做相应的操作。 后台管理主要是对新闻信息的增删改查管理。 1.5 功能性需求分析 新闻客户端通过功能性需求分析可以将本项目按功能划分为以下功能模块: 显 示新闻、用户评论、查看跟帖、用户收藏新闻、显示个人收藏,显示个人信息和夜 间模式设置。后台管理系统实现对新闻信息的管理,下面针对各功能模块分别进行 功能描述。 1.5.1 新闻客户端的主要功能

新闻客户端主要实现对新闻的分类显示功能,类别包括焦点、国内、国际、军 事、体育、财经、科技、汽车等。用户可以按以上类别查看任意栏目下新闻内容, 并可以点击进入相应新闻的详细介绍界面查看具体内容和图片; 同时用户可以对感 兴趣的新闻进行相应的评论(即评论功能,用户评论新闻之前需要注册登录)。用 户还可以收藏部分新闻,并随时可以查看个人收藏,从而为用户提供更好的体验。 查看跟帖功能有助于提高用户的参与度,同时使用户更有效的选取新闻。用户在夜 间阅读新闻,可以切换到夜间模式,从而更好的满足用户的需求,更好的为用户提 供体验。
第 4 页 共 35 页

2016 届 毕 业 设 计 说 明 书 1.5.2 新闻客户端的功能模块 新闻客户端从整体上可以细分为七个功能模块:显示新闻、用户评论、查看跟 帖、用户收藏新闻、显示个人收藏,显示个人信息和夜间模式设置。 (1)显示新闻:用户进入的主界面即为显示新闻模块,用户按类别查看不同 类别的新闻。用户在该模块可以按分类查看自己喜欢类别的新闻,对选定的新闻可 以进入其显示新闻的详细界面, 其中新闻详细界面可以显示相关新闻的具体内容及 相关图片,可以左右滑动来切换相同类别下的新闻,具有良好的用户体验。新闻主 界面的栏目列表由多个列表项组成, 每个列表项包括新闻的标题, 概要, 发布时间, 进入新闻详细界面显示, 方可看到新闻的具体内容, 同时右上部显示新闻的跟帖数, 下方是新闻的评论部分。 (2)新闻跟帖:用户在阅读新闻的同时,让用户及时的评论新闻,表达个人 观点,使用户成为有观点的新闻阅读者[12],阅读者彼此之间可以互相查看跟帖,提 高阅读新闻的互动性。用户可以点击跟帖,查看跟帖内容,从而更好的了解不同用 户的观点,同时可以根据跟帖数更快的选取热门新闻,提高用户查新闻的效率。 (3)收藏新闻:用户在阅读新闻后对感兴趣的新闻收藏,收藏前先注册登录, 收藏后可以随时的登录查看自己的收藏, 这样用户可以多次快速的阅读感兴趣的新 闻,无需再去查找,阅读效率提升,更好的满足用户体验。 (4)个人中心:用户可以注册,登录,这样可以及时的查看自己的收藏,可以 更快的获取自己感兴趣的新闻。 (5)设置:主要实现夜间模式与白天模式的切换,这样可以使用户更好的适 应本客户端,更好的满足用户的需求。 1.5.3 后台管理功能模块 本模块主要实现对新闻的增删改查,以及评论的查看,删除,还可以对用户信 息进行增删改查。 1.6 非功能性需求分析 本项目首先完成新闻客户端对用户的基本需求, 同时还应满足一些非功能性的
第 5 页 共 35 页

2016 届 毕 业 设 计 说 明 书 要求,如:响应时间,可扩展性,以及易用性。 1.6.1 响应时间需求 本项目是基于 Android 平台的,需要从数据库中获取大量数据,这就要求获取 数据的时间尽可能的短,减少用户的等待时间,这样才能更好的满足用户的需求, 给用户更好的体验[13]。 同时用户在获取数据的时候还可以阅读以显示新闻, 无需死 死的等待数据的加载[14],即异步获取数据。 1.6.2 可扩展性需求 本项目在完成以后,如对项目有新功能的添加,添加尽量的简单,无需修改大 量的代码,代码的编写要规范同时尽量的做到高内聚,低耦合[15],这样可以更好应 对以后的功能的添加,提高项目的可扩展性。 1.6.3 易用性需求 本项目的开发主要给用户使用,现在的新闻客户端越来越多,必须满足用户使 用时简单,易查找相关信息,同时满足大部分用户的逻辑,实现功能的同时,用户 可以快速的了解软件的使用。

第 6 页 共 35 页

2016 届 毕 业 设 计 说 明 书

2 基于 Android 平台的新闻客户端的概要设计
本模块从整体框架对本项目说明,首先介绍了系统的应用架构与总体架构,接 着从新闻客户端与后台管理两部分对本项目进行了简单,概述性的介绍,介绍了本 项目的模块划分与每个模块整体上的实现。 2.1 系统架构设计 新闻客户端用户发出获取新闻,评论新闻,收藏新闻等请求时,服务器向数据 库作出相应的 Url 请求,数据库根据相应的请求操作数据库,并以 JSON 数据格式 传输,最后对这些数据进行解析,最后反馈给用户。

图 2.1 应用架构

2.2 系统客户端实现总体架构 用户看到的是采用 XML 布局文件描述的界面(视图层),用户可以进行评论, 收藏等操作,由 Activity 来根据视图层获取的数据进行处理(控制层)并向服务器 发出 Url 请求[16]。其中服务器从数据库获取数据的过程,把数据库的每张表封装成 一个 model 类 (模型层) , 通过 servlet 来控制对数据库中的表进行操作并获取数据, 总体上采用 MVC 设计模式。 (1)模型层:对数据库中的表进行封装,每个表封装成一个 model 类,每个 表中的一个字段对类中的一个属性,可以通过 get 和 set 方法对其设置,该模型主 要负责对数据库的存取数据。 (2)视图层:是应用程序中用于展示给用户的部分,本项目主要通过 XML
第 7 页 共 35 页

2016 届 毕 业 设 计 说 明 书 布局显示。 (3)控制层:负责从视图获取数据,并向数据库发出请求,控制数据之间的 传输。 通过 MVC 模式可以使项目的设计更加有层次,有助于管理复杂的程序。

图 2.2 总体架构

2.3 系统功能模块划分 根据新闻客户端的需求,本项目划分为以下模块,分别为分类显示新闻模块, 新闻详细信息模块,用户信息模块,用户登录模块,用户评论模块。

第 8 页 共 35 页

2016 届 毕 业 设 计 说 明 书
图 2.3 客户端功能模块组织结构

后台管理用于对新闻信息的增删改查,以及新闻评论信息的查看和删除,还可 以对用户信息增删改查。

图 2.4 后台模块组织结构

2.4 系统功能模块的分析及设计 本项目分为新闻客户端和后台新闻管理, 接下来从这两部分进行分析及相关设 计的介绍。 新闻客户端的设计是本项目的主要部分,先介绍本模块的设计。本模块根据功 能可以分为分类显示新闻信息,显示新闻详细信息,评论新闻,收藏新闻,显示个 人信息,跟换夜间模式等模块。具体功能的概要设计如下: (1)分类显示新闻:客户端通过 url 传去新闻的分类编号 cid,获取新闻的条 数 count 以及开始新闻编号 startnid 来获取数据库中数据, 通过 JSON 格式传到客户 端,然后进行解析,在分类显示新闻界面显示给用户。 (2)新闻详细信息:通过点击分类新闻界面,新启动一个 Activity,并将对应 nid 传过去,然后通过 nid 从数据库获取新闻的详细信息,显示在新闻详细信息界 面,供用户阅读。 (3) 评论新闻:通过 post 请求将用户输入的评论信息以 JSON 格式传输到服 务器,并将数据插入到数据库。当用户查看新闻的评论时,通过 get 请求从服务器
第 9 页 共 35 页

2016 届 毕 业 设 计 说 明 书 获取相应的评论,对获取的 JSON 数据格式解析,并显示在对应的显示新闻评论的 界面。 (4)收藏新闻:用户在新闻详细信息界面可以对自己感兴趣的新闻收藏,点 击收藏按钮,将点击对应的新闻编号 nid 和登录的用户编号 uid 通过 post 请求传到 服务器,并保存到 mysql 数据库。当用户查看自己的收藏是,根据自己的用户编号 查到新闻编号,然后将对应新闻编号的新闻信息通过 get 请求获取到,解析并显示 供用户阅读。 (5)用户登录注册:用户可以输入自己的信息,点击注册,提交给服务器并 保存到数据库。登录时,根据用户输入的信息与数据库的数据对比,判断是否登录 成功。 2.5 数据库设计 本项目数据库用五张表存储,分别为新闻内容表、新闻分类表、新闻收藏表、 新闻评论表、用户信息表。 (1)新闻内容表:用于存放新闻内容,其中 nid 唯一标识新闻,cid 标识其所 属分类,与新闻分类表相关联,deleted 字段用于标识新闻是否存在,imgsrc 用于标 识该新闻对应的图片。
表 2.1 新闻内容表

属性名

数据类型

是否为空

含义

nid

int



新闻编号

cid

int



分类编号

title

varchar



新闻标题

digest

varchar



新闻摘要

第 10 页 共 35 页

2016 届 毕 业 设 计 说 明 书
续表 2.1 新闻内容表

属性名

数据类型

是否为空

含义

body

text



新闻内容

source

varchar



新闻来源

ptime

varchar



新闻时间

imgsrc

varchar



新闻图片

deleted

int



新闻是否被删

(2)新闻分类表:用于显示新闻的所属类别,主要分为焦点,国内,国际, 军事,财经等类别。
表 2.2 新闻分类表

属性名

数据类型

是否为空

含义

属性名

数据类型

是否为空

含义

cid

int



分类编号

title

varchar



分类名称

deleted

int



是否被删

(3)新闻收藏表:nid 表示标识对应新闻,uid 用于标识收藏新闻的用户,可 以查看某个用户所收藏的新闻信息。

第 11 页 共 35 页

2016 届 毕 业 设 计 说 明 书
表 2.3 新闻收藏表

属性名

数据类型

是否为空

含义

sid

int



收藏编号

username

varchar



用户名

nid

int



新闻编号

uid

int



用户编号

(4)新闻评论表:nid 表示新闻编号,用来标识评论对应的新闻。
表 2.4 新闻评论表

属性名

数据类型

是否为空

含义

cid

int



评论编号

nid

int



新闻编号

ptime

varchar



评论时间

region

varchar



地区

content

varchar



评论内容

deleted

int



是否被删

(5)用户信息表:username 和 password 分别表示用户名和密码,用于用户的 登录验证。

第 12 页 共 35 页

2016 届 毕 业 设 计 说 明 书
表 2.5 用户信息表

属性名

数据类型

是否为空

含义

uid

int



用户编号

username

varchar



用户名

password

varchar



用户密码

图 2.5 数据库表结构

第 13 页 共 35 页

2016 届 毕 业 设 计 说 明 书

3 详细设计
本章对本项目各个功能模块的具体实现进行了详细的介绍说明,接着介绍了 本项目中技术。主要对本项目的模块实现细节的分析与说明。 3.1 显示新闻模块 本模块最上端由一个 RelativeLayout 实现,里面有两个按钮,一个点击进入个 人信息界面,一个点击进行新闻信息的刷新,还有一个文本用于显示新闻名字。接 着又是一个 RelativeLayout 用于显示新闻分类,其中由 HorizontalScrollView 实现, 可以左右滚动来显示分类。中间由 ListView 实现,每个 ListView 中的 item 包含一 个 XML 文件用于显示新闻的标题,摘要,来源于时间,这些信息都由 TextView 实 现。

图 3.1 分类显示新闻时序图

在 MainActivity 通过 id 找到个人信息按钮,并通过 setOnClickListener 方法设 置点击要处理的事情,在匿名内部类 OnClickListener 的 onClick 方法中通过 intent 启动一个 Activity 从而跳到个人信息界面。点击刷新按钮,调用继承了 AsyncTask 的 LoadNewsAsyncTask 中的 execute 方法来实现信息的刷新。Excute 方法中通过调
第 14 页 共 35 页

2016 届 毕 业 设 计 说 明 书 用获取新闻信息的类来再次获取数据并显示到新闻客户端,从而实现新闻的刷新。 接下来是显示新闻分类部分,新闻分类保存到了一个 array.XMl 文件中,在 MainActivity 中 通 过 id 获 取 该 数 组 , 创 建 GridView 并 设 计 其 属 性 , 创 建 CustomSimpleAdapter 通过其参数将 GridView, 以及需要放置的 XMl 位置对应在一 起,最后放到本模块的 LinearLayout 中显示出来。其最外层是 LinearLayout,里面 由 orizontalScrollView 实现,再里面放的是 GridView,每个 GridView 元素是一个 TextView。 最后就是新闻标题, 摘要, 时间, 出处等的显示。 整体是由一个 ListView , 同样使用适配器模式设计,通过 SimpleAdapter 对象将获取的新闻标题,摘要,时 间,出处与相应的 XML 对应上,然后通过 setAdapter 方法将适配器加到 ListView 上,使 ListView 显示新闻的摘要信息。 3.2 显示新闻详细信息模块 最上面是一个 RelativeLayout, RelativeLayout 中最左端是一个 Button 用来切换 到上一条,然后是一个 TextView 用来显示新闻的分类,接着又是一个 Button 用来 显示新闻的跟帖数,最后是一个 Button 用来切换到下一条新闻。中间用的是一个 ViewFlipper 用来显示新闻的详细信息。 最下面用 include 包含一个 newslist_item.xml 用来显示新闻的跟帖部分。其中 newslist_item.xml 中包含两个 LinearLayout,第一 个 LinearLayout 用来显示写跟帖前的部分, 第二个 LinearLayout 用来显示发表的时 候的信息。

第 15 页 共 35 页

2016 届 毕 业 设 计 说 明 书

图 3.2 显示新闻详细信息时序图

上面切换新闻上一条和下一条的两个按钮,在 NewsDetailsActivity 中通过 id 获取并设置 OnClickListener 点击响应事件,通过 ViewFlipper 的 showPrevious()和 showNext()方法来切换新闻的上一条和下一条。显示新闻分类的 TextView,通过 setText()来设置它的文本信息,其中信息通过新建 Intent 和 Bundle 对象,然后通过 bundle.getString()方法来获取前面传过来的新闻分类,并显示在 TextView 中。接着 是显示新闻跟帖数的按钮在 NewsDetailsActivity 中通过 id 获取,并通过 setText() 方法来设置跟帖数,在 setOnClickListener()方法中通过 Intent 来跳转到显示新闻评 论信息的界面 comments.xml。 中间部分的 ViewFlipper 通过 addView()方法将用来显 示新闻详细信息的 news_body.xml 显示在 ViewFlipper 中, 其中 news_body.xml 中最 外层是一个 ScrollView 用来实现新闻信息的上下滑动,接下来是 TextView 用来显 示新闻的标题,内容和来源。通过实现 OnTouchListener 接口来实现新闻的左右滑 动,通过 event.getX()来获取当前 X 值,通过按下时的 X 值和离开时的 X 值来判断 是向左还是向右滑动,从而判断显示新闻的上一条还是下一条。接着是最下面的新 闻跟帖部分,点击前的 LinearLayout 中包含一个 ImageButton 和一个 ImageView 用 来显示评论,跟帖部分还有一个 ImageButton 用来实现新闻的收藏,点击后的
第 16 页 共 35 页

2016 届 毕 业 设 计 说 明 书 LinearLayout 中包含 EditText 用于用户的信息的输入。 通过定义 InputMethodManager 对象 并通过调用 toggleSoftInput()方法来实现虚拟键盘的显示。 3.3 新闻跟帖显示模块 最上面是一个 RelativeLayout,里面是一个 TextView 用来显示跟帖,还有一个 Button 按钮用于返回到新闻详细界面。中由一个 ListView 实现新闻评论信息的显 示。 最上面的 TextView 通过 android:text 显示跟帖, Button 按钮通 setOnClickListener 方法,并重写 onClick()方法,在方法中 finish()方法关闭当前 Activity,返回到新闻 详细界面。中间的 ListView 使用适配器模式,创建 SimpleAdapter 对象,并通过 setAdapter()方法添加到 ListView 上。 3.4 后台管理功能模块的详细设计 3.4.1 用户登录模块 将用户信息封装到一个 model 文件夹下的 user 类, 里面有用户名, 密码等属性, 用户进入登录界面 login.jsp,通过输入用户名和密码,然后点击登录按钮,提交给 loginservlet,然后通过 request.getParameter()方法获取用户名和密码,通过调用 userdao 类下的 userLogin()方法,然后在该方法中连接数据库,与数据库中的用户 名匹配,如果匹配成功,则跳转到显示新闻信息的主界面。 3.4.2 新闻管理模块 将新闻信息封装到 model 文件夹下的 new 类, 在项目主界面 main.jsp 中可以对 新闻进行增删改查,四个方法都封装到 newsDAO 类中。当管理员查看新闻是,通 过调用 getSpecifyCategoryNews()方法,将从数据库获取的新闻信息保存到 list 中, 然后遍历 list 对象,逐个把新闻信息显示到显示新闻信息 default.jsp 中的表格中。 当用户删除新闻时,传过要删除的新闻编号 nid,通过调用 delete()方法,传入参数 nid,操作数据库删除对应新闻,然后刷新页面。当管理员增加新闻按钮时,跳到 添加新闻的界面 add.jsp,输入需要的信息, 点击添加按钮, 提交给 addServlet 进行处 理,调用 newsDAO 类中 add()方法,操作数据库。管理员可以修改相应的新闻,进
第 17 页 共 35 页

2016 届 毕 业 设 计 说 明 书 入显示新闻详细界面 newsshow.jsp,将需要修改的内容填好,点击修改按钮,提交给 updateServlet 处理,并完成对数据库的修改。 3.4.3 评论信息管理 由于评论是用户的想法,后台管理知对其进行查看和删除,本模块同样使用 MVC 模式,model 中封装新闻评论,对新闻的操作封装到 dao 包中,jsp 页面提交 的信息由 servlet 处理,处理后跳转到相应的界面。 3.5 新闻客户端所用技术 3.5.1 JSON 数据传输格式 JSON 在本项目中用于与服务器进行数据之间传输的一种文本格式,由于它跨 平台的特点,以及它的数据简单,通过名称与值来表示,其解析简单并且保存的数 据类型广泛,可以是字符串,数值,对象等,同时是一种轻量级数据交换格式,因 此多数数据传输都用 JSON 格式。 它以名称与值的结构表示,中间使用冒号分开,即 key:value,key 值用一个 字符串,而 value 则可以是不同类型,例如:字符串,对象,布尔值等。其中的对 象以{}来括起,每一个键值之间用逗号隔开。以下为获取新闻信息后的 JSON 数据 格式:

3.5.2 异步加载新闻信息

第 18 页 共 35 页

2016 届 毕 业 设 计 说 明 书 通过异步加载数据可以使用户在加载更多新闻的同时阅读别的新闻, 无需等待 新闻的加载,给用户更好的体验,本项目中异步跟新通过继承 AsyncTask,通过重 写 onPreExecute(),doInBackground(),onPostExecute()这三个方法。 其中 onPreExecute() 方法中做一些准备事情,在异步加载真正执行前做一些工作,本项目主要执行隐藏 刷新按钮,显示进度条,设置加载更多的文本信息。在 doInBackground()中实现真 正执行获取新闻信息的代码来获取新闻信息,本项目主要调用 getSpeCateNews()方 法来获取新闻信息。onPostExecute()中是完成 doInBackground()后执行的,本项目 主要根据是否加载成功显示相关的提示,显示刷新按钮,隐藏进度条,设置文本信 息。 3.5.3 数据交互方式 用户登录,显示新闻信息,查看评论等都要与服务器进行数据的交互,本项目 中通过 get 与 post 两种方式进行交互。get 主要用于从数据库获取数据,返回对应 的数据, post 主要是进行用户登录的验证以及收藏新闻, 返回相应的操作是否成功, 只是简单的返回一种状态标识,本项目中主要用 get 方式。 get 交互方式,通过传入 url 与对应的参数,创建 HttpGet 对象和 httpClient 对 象,然后通过 httpClient.execute()方法获取数据,定义 HttpResponse 对象用于保存 结果。通过 httpResponse.getEntity()来获取返回数据,并用 EntityUtils.toString()方 法将获取的数据转换成字符串返回。Post 交互方式,与 get 交互方式类似,对应创 建 httpPost 对象。以下为 get 交互方式的主要实现代码:

第 19 页 共 35 页

2016 届 毕 业 设 计 说 明 书

3.5.4

SharedPreferences 数据存储

SharedPreferences 存储的数据可以共享,保存的数据也是通过键值的方式,其 获取简单,直接通过键获取相应的值。在本项目中用于保存登录用户的名字,从而 在用户查看收藏找到对应的用户,在收藏时判断用户是否登录。具体实现:通过 this.getSharedPreferences("MySharedPreferences",MODE_PRIVATE) 创 建

sharedPreferences 对 象 , 通 过 sharedPreferences.edit() 创 建 editor 对 象 , 通 过 editor.putString()方法以键值的方式保存数据,通过 sharedPreferences.getString()方 法来获取保存的数据。 当用户点击退出登录通过 editor.clear()方法清空保存的数据。

第 20 页 共 35 页

2016 届 毕 业 设 计 说 明 书

4 测试
本章主要是对实现的功能进行展示。 4.1 分类显示信息模块 本模块实现新闻分类显示,类别分别为焦点,国内,国际,军事,体育等,如 图 4.1 是焦点分类下的新闻显示界面。 点击国内, 显示国内类别下的新闻, 如图 4.2。 分类可以左右滑动,新闻可以上下滑动,同时可以点击加载更多异步加载新闻,点 击后如图 4.3。

图 4.1 焦点分类显示新闻界面

图 4.2 国内分类显示新闻界面

图 4.3 国内分类显示新闻界面

结论:本模块可以显示不同分类下的新闻,用户可以点击不同类别查看自己喜 欢类别下的新闻,同时实现新闻类别的左右滑动,用户可以点击加载更多新闻,显 示该类别下的更多新闻,异步加载新闻的实现,给用户更好的体验。 4.2 新闻详细信息模块 本模块可以显示用户感兴趣的类别下的新闻的具体内容,如图 4.4 为焦点类别 下具体新闻信息。同时可以看到新闻的跟帖数,下面可以评论新闻。点击下面的写 跟帖,进入如图 4.5 的界面,进行新闻跟帖。点击图 4.4 界面上面的两个按钮可以 进行切换相同类别下的不同新闻,点击后如图 4.6。用户可以左右滑动,切换到不 同的新闻。

图 4.4 显示新闻详细界面
第 21 页 共 35 页

2016 届 毕 业 设 计 说 明 书

图 4.5 发表评论界面

图 4.6 显示新闻详细信息界面

结论:本模块用户可以查看某个新闻详细的信息,同时可以显示对应新闻的跟 帖数,用户可以点击下面的跟帖按钮,进行新闻跟帖,同时可以点击收藏按钮收藏 新闻,满足了用户的基本需求。 4.3 显示新闻评论模块 本模块可以显示某个新闻的评论信息,还可以点击原文按钮返回原文信息,具 有良好的用户体验。

图 4.7 显示新闻评论界面

结论:本模块实现了显示具体某个新闻的用户评论信息,显示其评论对应的时 间,内容,评论地点,满足了用户查看新闻跟帖的需求。
第 22 页 共 35 页

2016 届 毕 业 设 计 说 明 书 4.4 个人信息模块 本模块主要是用户查看个人收藏,设置夜间模式,以及退出登录,如图 4.8。 点击我的收藏进入个人收藏界面,如图 4.9。

图 4.8 个人信息界面

图 4.9 显示个人收藏界面

结论:本模块实现了显示个人收藏的功能,用户可以及时查看收藏,同时可以 退出登录,切换用户,满足了用户的查看个人信息的基本需求。 4.5 用户登录注册模块 本模块主要用于用户登录,登录后可以收藏新闻,并查看收藏,收藏前判断是 否登录,同时用户可以注册。其中登录界面如图 4.10,注册界面如图 4.11。用户在 查看收藏是判断用户是否登录,如登录即可获取收藏的新闻,否则先登录。如未注 册用户,用户可以点击注册按钮进行注册,实现用户的注册登录功能。同时用户在 收藏时,必须进行登录,从而数据库中用户可以存储对应的收藏信息。
第 23 页 共 35 页

2016 届 毕 业 设 计 说 明 书

图 4.10 用户登录界面

图 4.11 用户注册界面

第 24 页 共 35 页

2016 届 毕 业 设 计 说 明 书 结论:本模块实现了用户的登录注册功能,从而使用户在作相应的操作时明确 是哪个用户的操作,便于管理。 4.6 后台管理测试 4.6.1 管理登录模块 本模块主要管理员的登录,如图 4.12。

图 4.12 管理登录界面

结论:本模块实现管理员的简单登录,登录后可以对数据库中的数据进行相应 的操作。 4.6.2 新闻信息管理模块 本模块主要是管理员对新闻信息的增删改查。管理可以查看新闻如图 4.13,同 时在本界面可以进行删除新闻。本界面对新闻新闻进行了分页,点击下一页后的界 面如图 4.14。同时可以分类查找新闻进行管理,如图 4.15 查找国内新闻信息。同 时可以查看对应新闻的详细信息,如图 4.16,并可以点击修改进行相应的修改,实 现新闻的修改功能。还可以添加新闻,如图 4.17。

第 25 页 共 35 页

2016 届 毕 业 设 计 说 明 书

图 4.13 显示新闻信息界面

图 4.14 显示不同页的新闻信息界面

第 26 页 共 35 页

2016 届 毕 业 设 计 说 明 书

图 4.15 显示不同分类的新闻信息界面

图 4.16 查看新闻详细信息界面

第 27 页 共 35 页

2016 届 毕 业 设 计 说 明 书

图 4.17 添加新闻信息界面

结论:本模块实现了管理员对新闻的增删改查,从而可以在后天对数据库进行 操作,对数据的操作更灵活。 4.6.3 评论信息管理模块 本模块主要管理员对用户评论信息的查看与删除。如图 4.18 是对新闻评论的 显示,同时可以删除。

图 4.18 查看评论信息界面

第 28 页 共 35 页

2016 届 毕 业 设 计 说 明 书 结论:本模块实现了对新闻评论信息的查看,同时可以对一些不合理的评论进 行删除,满足了对新闻评论信息的基本要求。

第 29 页 共 35 页

2016 届 毕 业 设 计 说 明 书

5 结论
本文首先分析了基于 Android 新闻客户端的研究背景,研究目的。互联网的飞 速发展为新闻客户端提供了良好的环境,以及新闻客户端的一些独特的优点,新闻 客户端的开发与完善必不可少,可以为用户提供更好,更多的资料。接着介绍了本 项目的总体架构,以及概要设计,详细设计。新闻客户端分为分类显示新闻信息界 面,显示新闻详细界面,用户评论,用户收藏,以及用户个人信息模块。后台管理 可以对新闻信息增删改查,对新闻评论的查看和删除以及对用户信息的增删改查。 运用异步跟新新闻信息来减少用户的等待时间,给用户更好的体验,同时项目开发 使用 MVC 模式,易于以后项目添加新的功能。本项目完成了新闻客户端的功能性 需求,同时满足可扩展性,易用性等非功能性需求。

第 30 页 共 35 页

2016 届 毕 业 设 计 说 明 书

参 考 文 献
[1] [2] [3] [4] 李兴华. Android 开发实战经典[M]. 清华大学出版社, 2011 杨丰盛. Android 技术内幕. 机械工业出版社. 2011 Dave Maclean, 杨越. 精通 Android 3[M]. 北京:人民邮电出版社, 2011 余志龙, 陈小风. Android SDK 开发范例[M]. 北京:清华大学出版社, 2010

[5] Reto Meier. Professional Android 4 application development[M]. Wiley, 2011:1517 [6] [7] 杨杰. 基于 Android 的多线程处理技术[J]. 电脑知识与技术, 2013(18):20-24 韩 芝 萍 . 浅 谈 JAVA 中 单 例 设 计 模 式 之 构 造 方 法 私 有 化 [[J]. 科 技 信

息,2011(35):115-120 [8] [9] 2014 [10] 2011 [11] Missing.Android:Changing the Mobile Landscape[J]. IEEE pervasive computing, 徐敏. Android 平台多媒体通信客户端研究与实现 [D]. 西安电子科技大学 , 余志龙, 陈小风. Android SDK 开发范例[M]. 北京:清华大学出版社, 2010 路超. 智能手机用户使用行为对推荐新闻 App 的影响研究[D]. 上海交通大学,

2011,1(1) [12] 2012 [13] Lv Y, Moon T, Kolari P. Leaning to model related-news for news remommendation[A]. ACM, 2010 [14] [15] 陈泽恩. Android 校园网移动客户端的设计及实现探索[J]. 中国新通信, 2013 胡明. 基于 Android 的信息交流平台主要技术的研究[J]. 计算机光盘软件与 彭菲菲, 钱旭. 基于用户关注度的个性化新闻推荐系统[J]. 计算机应用研究,

应用, 2014 [16] 李青, 王俞. Android 开发秘籍[M]. 北京:人们邮电出版社, 2011

第 31 页 共 35 页

2016 届 毕 业 设 计 说 明 书





不知不觉大学已接近尾声,毕设也接近完成,在大学四年里,毕设这段时间, 每个人都经历了许多,也成长了不少,无论是学习知识,还是思想上都有不断的提 升。在这段毕设期间,得到了许多人的帮助,在此要感谢这些人。 首先,在此期间帮助最大的是 XXX 导师。从开始毕设起,老师详细的介绍了 项目的要求,并每周见一次,对做的过程中的问题细心的解答。同时对生活中事情 也提出了宝贵的建议。 无论是本项目中知识的学习还是生活中事情的处理以及思想 上改变都有极大的提升。正是老师耐心的监督,细心的指导,才使我在这段时间学 到不少知识,并且按时的完成设计。 其次,最感谢是身边的朋友。平时完成项目期间出现的程序问题,在身边朋友 的耐心帮助下快速解决,并细致的讲解,学到了不少知识。平时一起学习,一起交 流,在欢乐中学到了许多,同时高效快速的完成设计。

第 32 页 共 35 页


赞助商链接
相关文章:
基于Android的新闻客户端毕业设计
基于Android的新闻客户端毕业设计 - 基于 Android 的新闻客户端毕业设计 目录 1 需求分析 ...
基于Android平台新闻客户端设计与实现
基于Android平台新闻客户端设计与实现 - 分类号 UDC 密级 编号 本科毕业论文(设计) 题目 基于 Android 平台新闻客户端设计与实现 所在院系专业名称年 ...
基于Android平台的新闻客户端的设计与实现
基于Android平台的新闻客户端的设计与实现_计算机软件及应用_IT/计算机_专业资料。基于Android平台的新闻客户端项目所用数据库为MySQL,服务器为Apache,主要开发工具为...
基于Android的新闻客户端毕业设计
基于Android的新闻客户端毕业设计 - 基于 Android 的新闻客户端毕业设计 1 需求分析 本章首先分析研究背景,介绍了研究目的与意义,接着分析并介绍了系统的功 能性...
基于Android的新闻客户端设计与实现
基于Android的新闻客户端设计与实现_计算机软件及应用_IT/计算机_专业资料。基于Android的新闻客户端设计与实现毕业论文 绪论 基于 Android 的新闻客户端设计与实现 1...
基于Android平台的校园新闻客户端的设计与研发
龙源期刊网 http://www.qikan.com.cn 基于 Android 平台的校园新闻客户端的设计 与研发 作者:杨杰 来源:《电脑知识与技术》2013 年第 16 期 摘要:介绍基于 ...
基于Android平台的新闻客户端的设计与实现毕业设计_图文
基于 Android 平台的新闻客户端的设计与实现 摘要 随着智能手机世界范围内的迅速发展,智能手机的操作系统之间的竞争也 是越来越激烈。...
基于android平台的新闻阅读软件的设计与实现开题报告
基于 Android 的新闻采集应用平台的设计与开发一、课题的研究目的和意义经过多年的发展,第三代数字通信(3G)技术获得了广泛的接受,它为移动终 端用户带来了更快的...
基于android手机商城客户端的开发与实现
33 II 基于 Android 手机商城客户端的开发与实现 1引 言随着社会科技的进步, 人类知识总量的增长不断加快, 以及市场竞争的日益激 烈,人们对信息的认识产生了根本...
安卓课程设计——新闻客户端(基于网页抓取)
安卓课程设计——新闻客户端(基于网页抓取) - 题目 android 课程设计——新闻客户端 姓名: 学号: 专业: 学院: 指导教师: 二零一八年十一月 一、...
更多相关标签: