基于Android平台的新闻客户端的设计与实现

摘 要

随着智能手机世界范围内的迅速发展,智能手机的操作系统之间的竞争也是越来越激烈。为了让智能手机用户能够十分便利地了解当前世界的实时资讯,一种高效的办法就是将查看新闻的功能拓展到手机终端上。因此,开发出一款智能手机的新闻客户端将有广阔的前景。

本文是基于android 操作系统,开发出一款android 手机新闻客户端应用程序,通过工具Eclipse 编写逻辑代码,Apache Tomcat6.0作为应用程序的服务器,根据数据量的要求,采用Mysql 数据库处理数据,三者共同作用开发出的android 新闻客户端手机软件。

本文在分析Android 系统软件开发原理的技术层面上,开发出能为用户提供更人性化、更方便的基于Android 手机新闻客户端软件。通过实践与测试,本文所述的原理和方法能够完成设计所需要的功能。

【关键词】 Android ;新闻客户端软件;智能手机操作系统

Design and Realization of Android Client Based on The

News

Abstract

With the rapid development of smart phones worldwide, competition between smartphone operating system is also more intense. To allow smartphone users to real-time information is very convenient to understand the current world, an efficient approach is to view the news feature to expand to the mobile terminals. Therefore, the development of a smart phone news client will have broad prospects.

This article is based on android operating system, developed an android phone news client application logic code by writing tools Eclipse, Apache Tomcat6.0 as a server application, according to the amount of data required to process data using Mysql database , combined action developed a android phone news client software. This paper analyzes the Android system in principle the technical aspects of software development, the development could provide a more humane, more convenient mobile operating system based on Android news client software for users. Through practice and testing, principles and methods described herein can achieve the required functional design.

【Key words】 Android ;News Client Software;Smartphone operating systems

目 录

1 绪 论 . ....................................................................................................................... 1

1.1 研究内容 . ......................................................................................................... I 1.2 研究意义 . ......................................................................................................... 1 1.3 研究现状和发展趋势 . ..................................................................................... 1 2 系统分析与环境搭建 . ............................................................................................... 2

2.1 研究目标 . ......................................................................................................... 2 2.2 . ..................................................................................................... 2 2.3 需求分析 . ......................................................................................................... 3 2.4 性能分析 . ......................................................................................................... 3 2.5 开发环境的搭建 . ............................................................................................. 3 2.5.1 Java环境配置 . ......................................................................................... 3 2.5.2 Eclipse的安装 ......................................................................................... 3 2.5.3 Eclipse Standard的安装 .......................................................................... 3 2.5.4 Tomcat服务器的安装 ............................................................................. 3 2.5.5 Mysql数据库的安装 . .............................................................................. 3 3 系统设计与实现 . ....................................................................................................... 4

3.1 软件流程 . ......................................................................................................... 4 3.1.1 模块设计 . ................................................................................................ 4 3.1.2 功能设计 . ................................................................................................ 5 3.3 用户界面设计 . ................................................................................................. 5 3.4 数据库设计 . ..................................................................................................... 6 3.5 软件的实现 . ..................................................................................................... 8 3.5.1 文件结构与说明 . .................................................................................... 8 3.5.2 具体实现 . .............................................................................................. 11 4 系统测试 . ................................................................................................................. 17

4.1 软件的测试 . ............................................................................................ 17 4.2 测试结果及说明 . .................................................................................... 17

5 总结与展望 . ............................................................................................................. 21 5.1 总结 . ........................................................................................................ 21 5.2 展望 . ........................................................................................................ 21

参考文献 . ..................................................................................................................... 22 致 谢 . ......................................................................................................................... 23 附 录A . ..................................................................................................................... 24

1 绪论

1.1 研究内容

Android 应用平台新闻客户端软件是基于Android 手机平台,采用Java 语言,从网络上的开放的新闻接口获取数据,设计出针对使用Android 平台的手机新闻客户端资讯实时掌控的手机应用程序。

1.2 研究意义

Android 平台新闻客户端软件的开发可以进一步扩大时事新闻的覆盖面,让广大公众能够随时随地方便且快捷地获取最新的新闻资讯信息,了解新闻时事,本软件的广泛使用,尤其是在传授知识、普及教育方面起着非常重要的作用。

1.3 研究现状和发展趋势

目前市场研究机构Worldpanel 发布了全球主要的国家智能手机操作系统在去年Q4内的分布报告,报告指出了谷歌的Android 继续保持着增长的势态,但是增幅已经明显放缓了。而在另一个方面,苹果iOS 操作系统在全球只能手机市场上均有下滑,个别国家的降幅甚至高达10.3%。最新统计数据中显示,Android 操作系统将继续领跑全球市场,包括美国、澳大利亚、中国、意大利、英国、德国、西班牙等所占的市场比例都已经超出50%,并且还将继续呈现上涨的趋势。而在苹果iOS 操作系统方面,最大的市场份额所占比的国家依旧是美国,数值为43.9%;紧随美国的则是澳大利亚,数值为35.2%;而在中国方面,市场份额也从21.2%下降到了19%;在意大利,iOS 所占的市场份额更是从23.1%猛降至12.8%[1]。

从上面的数据可以看出,Android 手机软件的开发具有巨大的发展前景,在Android 系统上开发出一款手机新闻客户端软件所支持的用户量也是相比较于其他系统多出很多的。

谷歌的移动平台主管安迪·鲁宾(Andy Rubin)表示,跟软件开发合作对象的密切接触正在进行中。Google 与开放手机联盟联合开发了 Android 操作系统,这个联盟由摩托罗拉、高通、宏达电、中国移动和 T-Mobile 等在内的多家无线应用和技术的领军企业组成。Google 通过与设备制造商、开发商、运营商和其他有关各方结成深层次的合作关系,希望借助建立开放式、标准化的移动移动电话软件平台,在移动产业内形成一个开放性的生态系统,这将是开发Android 软件的一个契机,Android 平台的开发在将来必定大放异彩[2]。

2 系统分析与环境搭建

2.1 研究目标

1) 了解Android 应用的设计和开发过程;

2) 使用多种组件进行Android 平台新闻软件的开发。

本款手机新闻客户端软件是采用java 语言编写,基于Eclipse 的开发平台,连接网络新闻数据接口,开发出了针对Android 平台的新闻客户端手机软件。

2.2 可行性分析

开发任何一个基于手机的应用程序,都会受到资源和时间上的限制。因此,在接收任何一个应用程序发任务之前,必须根据用户可能提供的资源和时间条件进行可行性分析,旨在减少项目开发风险,避免人力、财力和物力的浪费。风险分析与可行性分析在很多方面是相互关联的,项目的风险越大,开发质量高的软件的可行性的几率就越小。 1) 经济可行性

采用的手机数据流量作为通信手段,当今通信技术的迅速发展,2G 的运营商的GSM 网络已经逐渐被当今的3G 、甚至是4G 所取代,数据流量的资费也越来越低,而且现在很多手机都可连接无线wifi , 实现数据流量0资费,大大加强了本新闻阅读软件的经济可行性。 2) 技术可行性

开发一个新闻客户端软件,用到的技术不会十分复杂,用到最多的就是客户端与服务端的数据交换时所用到的servlet 及常见的数据库技术,android 系统下的解析json 数据以及UI 的设计,经查阅相关资料是可以实现的。

2.3 需求分析

启动程序后可以进行新闻资讯的实时更新,可分不同的栏目让使用者了解任意感兴趣的资讯进行阅读,同时,能对感兴趣的新闻资讯发表自己的意见,进行评论,其他用户也能看见别人发表的评论,从而进行互动交流,增强用户的体验感,用户能通过下拉新闻列表,方便于操作。从上面的描述中可以基本了解软件的功能需求: 1) 启动应用程序;

2) 设置界面:采用多种布局嵌套,美化控件。 3) 显示界面:模仿网易新闻客户端进行UI 编写。

4) 详细界面:分为头条、推荐、娱乐、体育、财经、科技、游戏等板块。

2.4 性能分析

从用户的角度出发,针对用户的需求,所涉及的程序响应速度快、信息处理速度快、安全性高是用户所需要的三大主要性能[2],另外为了受众面更广,根据目前的android 设备系统版本的分布情况,android2.3以上的版本占到设备总量的80%以上,所以做开发的时候选择的android 系统最低版本也必须是android2.3以上来保证用户量。

2.5 开发环境的搭建

2.5.1 Java环境配置

采用jdk 的版本是jdk1.6,目前jdk 版本最高的是jdk1.7,但是为了程序的稳定性,还是采用已经稳定成熟的版本作为开发工具。

从Oracle 公司下载 jdk1.6之后安装,由于本机的开发系统是win8的64位操作系统,选择下载64为jdk, 然后按照安装步骤一步一步next ,jdk 就安装完成了,然后配置环境java 的环境变量,整个jdk 的过程就完成了。 2.5.2 Eclipse的安装

从Eclipse 官网http://www.eclipse.org/downloads/下载Eclipse3.2,根据系统下载相应的Eclipse 版本,点击解压缩就行了,然后启动eclipse.exe 就行了。值得注意的是Eclipse 的bit 数要与jdk 的一致,就是说jdk 如果是32位的,Eclipse 也要是32位的。

2.5.3Eclipse Standard 4.3.2的安装

Eclipse Standard 4.3.2版本用来做服务器端程序,方法与Eclipse 的方法类似。 2.5.4 Tomcat服务器的安装

从http:/tomcat.apache.org下载tomcat6.0作为的服务器,下载好文件后开始安装,点击下一步,在安装过程中会提示设置默认的服务器端口号,若是不做修改默认为8080,建议不要修改,安装完成。

在Eclipse for JavaEE 建立服务器工程的时候选择刚刚安装的tomcat 作为服务器就行了。

2.5.5 安装Mysql 数据库

现如今有很多种类的数据库,如oracle 、sqlserver 、mysql 、access 等等很多种,但是在选择的时候也有考究,本设计的开发涉及到的数据并不是很多所以选择一种轻量级的数据mysql [3]。

3 系统设计

3.1 系统流程

3.1.1 模块设计

软件分为了两大模块,分别是新闻客户端模块和服务器模块。

图形解析能够清楚的看出程序的功能与流程,下图3-1是手机客户端流程图:

图3-1 手机客户端流程图

如下图图3-2所示的是服务器端的流程图:

图3-2 服务器流程图

3.1.2 功能设计

手机客户端模块功能结构如下图所示3-3:

图3-3 客户端功能结构图

服务器端模块功能结构如下图3-4所示:

图3-4 服务器端功能结构图

3.3 用户界面设计

根据需求分析可知, 应用程序应包含三个主要的用户界面,这里要进一步分析每个用户界面中应该包括哪些显示内容。

1) 在“新闻概况页面”中,需要显示得是各类新闻的的栏目头,然后在选择栏目头时选择相应的新闻资讯信息显示在当前的栏目头下,资讯信息以一个ListView 的形式展示在界面上,用户可拖动获得内容,并在滑到最后一个内容时有一个加载更多的按钮,用户点击之后可以获得更多内容。

2) 在“详细新闻页面”中,用户在点击了一条新闻之后,可以进入详细新闻界面,在界面中会展示当前所点击新闻的标题、发表时间、作者以及评论条数,在点击新闻详细内容的区域向两边滑动的时候还能显示上一条新闻和下一条新闻,方便操作,不需要返回上一个界面之后才能阅读上一条或者下一条。

3) 在“新闻评论页面”中,此页面展示的信息就比较简单了,根据时间的排列显示相应新闻的评论内容,一条内容包含的信息有,用户所在的省份,发表的时间以及评论的内容,在发表评论的编辑框会默认提示用户“请文明发表言论”。 下图就是根据对新闻界面显示内容的分析,绘制出用户界面的草图。

图3-5用户界面草图

3.4 数据库设计

本软件是一个需要存储很多新闻资讯信息的程序,其中包括新闻的阅读和用户的评论信息,这些数据都是要从数据库中查询而来的并不是缓存的数据,所以少不了使用数据库,其中数据库为我们管理数据提供方便,Mysql 数据库使用方便、易懂。如下图3-6所示的是新闻栏目的E-R 图:

图3-6 新闻栏目E-R 图

如下图3-7所示的是新闻详细内容的E-R 图:

图3-7 新闻详细内容E-R 图

如下图3-8所示的是新闻评论的E-R 图:

图3-8 新闻评论内容E-R 图

本软件中有三张表的数据需要存储,因此在MySql 中分别建立三张表。新

闻类别分类表

t_category,新闻评论表t_comment,新闻内容表t_news。三张表分别如下表所示:

表3.1 新闻类别分类表t_category的结构

属性 cid title sequnce

表3.2 显示新闻评论表t_comment的结构

属性 cid nid ptime region content

数据类型 integer integer String String String

数据类型 integer String text

说明

分类编号,自动增加的主键

分类名称 序列

说明

评论编号,自动增长

新闻编号 评论的日期

发布人地区(默认为未知地区)

评论内容

续表3.2 显示新闻评论表t_comment的结构

supportcount opposecount

String text

支持数 反对数

表3.3 显示新闻内容表t_news的结构

属性 nid cid title body source ptime imgsrc summary sequence

数据类型 integer integer String String String String text String int

说明

新闻编号编号,自动增长

新闻分类号 新闻标题 新闻正文 新闻来源 发表时间 图片来源 摘要 序列

仔细分析不难得出,后台服务是整个应用程序的核心,主要是“数据获取”,用户进行点击操作,后台服务接收用户的指令,向服务器接口调用收据,服务端接收指令,从服务器进行相应的增删改查,然后返回信息给客户端,使用户获得需要的新闻资讯,满足客户的需求。

服务端器端的代码主要的功能就是对数据库进行的操作,采用servlet 技术通过接受客户端传过来的指令查询数据库,然后返回json 数据格式的数据跟客户端进行数据交互操作,简单方便,手机客户端接收的时候也能十分方便的解析出来,显示在用户界面上。

在完成用户界面设计、服务器和数据库设计后,至此软件的框架设计阶段基本完成。

3.5 功能的实现

3.5.1文件结构与说明

1) 客户端Eclipse 开发部分

在程序的开发阶段,首先确定“Android平台新闻客户端”的工程名为“快看新闻”,据程序模块设计的内容,建立“快看新闻”工程,然后分析完成功能所需要的代码结构,认真完善,做好每一个功能。

其工程源代码的结构与作用如下图3-9所示。

图3-9“快看新闻”工程的源代码文件

为了使源代码文件的结构更清晰,快看新闻”工程设置了多个命名空间,其包的作用分别展示在下表。

表3.4 “快看新闻”工程的文件用途说明

包 名 称 com.szy.news.bean com.szy.news.custom com.szy.news.util com.szy.news.util com.szy.news com.szy.news com.szy.news com.loopj.android.http

文 件 名 Category.java CustomSimpleAdapter.java

DensityUtil.java StringUtil.java MainActivity.java CommentActivity.java NewDetailActivity.ava

包内所有文件

说 明 新闻栏目的bean 类 新闻栏目标题的适配器 像素和dip 之间的转换工具类 String 数据转化成int 的工具类

主新闻界面的Activity 新闻评论界面的Activity 新闻详细内容的Activity 互联网上开源的http 异步访问框

架结构

Android 中资源文件都保存在/res的子目录中。其中,/res/drawable/目录中下保存的是图像文件,/res/values目录中保存的是自定义的字符串和颜色的文件以及样式文件,/res/xml目录中保存的是xml 格式的数据文件,/res/layout目录下保存的是UI 的布局文件。/res/anim目录下包含的是所有的动画控制文件。程序开

发阶段可以被调用的所有资源都保存在这些目录中[4],具体的文件图图3-10示如下。

图3-10 android资源文件图

2) 服务器端Eclipse Standard开发部分

在服务器开发端,建立工程名为“News”的工程,如下图3-11所示

图3-11 服务器端目录图

配合上图的目录结构图,使结构更加清晰,目标类的作用分别展示在如下表3-5的工程文件目录说明中。

表3.5 “News”工程的文件用途说明

包 名 称 com.szy.web.dao

文 件 名

CategoryDAO.java CommentDAO.java NewsDAO.java Config.properties SqlManager.java Category.java Comment.java News.java

GetCategoriesServlet.java GetCommentsServlet.java GetNewsServlet.java GetSpecifyCategoryNewsServl

et.java

PostCommentServlet.java

JSONArray.java JSONException.java JSONML.java JSONObject.java JSONString.java JSONStringer.java JSONTokener.java JSONWriter.java CDL.java Cookie.java CookieList.java HTTP.java HTTPTokener.java

TextUtility.java

说 明

对数据库增删改查的类

com.szy.web.dao 连接MySql 的配置文件

com.szy.web.model 新闻、评论、类型的模型类

com.szy.web.servlet 数据交互操作的servlet 类

org.json 生成json 文件的工具类

org.json 缓存级http 访问工具类

com.szy.web.util 字符编码转换工具类

3.5.2具体实现

主新闻页面的设计与实现

1) 开头定义出页面所需要用到的控件以及新闻栏目的适配器,从代码中可以看出,除了全局变量layoutinflater ,loadnews_progress,titlebar_refresh, MainActivity 类中有以上私有属性cid 、newsData 、newsListAdapter 、newslists 、CatName 、ategories 。

点击新闻栏目之后,MainActivity 会显示相应栏目下的的新闻信息,若此栏目下有新闻的话就会显示出来,若没有新闻的话就会提示“该栏目下没有新闻信息”,要是手机无法连接网络的话就会提示“网络无法连接”,十分清楚的告诉用户现在所处的状态。

摘 要

随着智能手机世界范围内的迅速发展,智能手机的操作系统之间的竞争也是越来越激烈。为了让智能手机用户能够十分便利地了解当前世界的实时资讯,一种高效的办法就是将查看新闻的功能拓展到手机终端上。因此,开发出一款智能手机的新闻客户端将有广阔的前景。

本文是基于android 操作系统,开发出一款android 手机新闻客户端应用程序,通过工具Eclipse 编写逻辑代码,Apache Tomcat6.0作为应用程序的服务器,根据数据量的要求,采用Mysql 数据库处理数据,三者共同作用开发出的android 新闻客户端手机软件。

本文在分析Android 系统软件开发原理的技术层面上,开发出能为用户提供更人性化、更方便的基于Android 手机新闻客户端软件。通过实践与测试,本文所述的原理和方法能够完成设计所需要的功能。

【关键词】 Android ;新闻客户端软件;智能手机操作系统

Design and Realization of Android Client Based on The

News

Abstract

With the rapid development of smart phones worldwide, competition between smartphone operating system is also more intense. To allow smartphone users to real-time information is very convenient to understand the current world, an efficient approach is to view the news feature to expand to the mobile terminals. Therefore, the development of a smart phone news client will have broad prospects.

This article is based on android operating system, developed an android phone news client application logic code by writing tools Eclipse, Apache Tomcat6.0 as a server application, according to the amount of data required to process data using Mysql database , combined action developed a android phone news client software. This paper analyzes the Android system in principle the technical aspects of software development, the development could provide a more humane, more convenient mobile operating system based on Android news client software for users. Through practice and testing, principles and methods described herein can achieve the required functional design.

【Key words】 Android ;News Client Software;Smartphone operating systems

目 录

1 绪 论 . ....................................................................................................................... 1

1.1 研究内容 . ......................................................................................................... I 1.2 研究意义 . ......................................................................................................... 1 1.3 研究现状和发展趋势 . ..................................................................................... 1 2 系统分析与环境搭建 . ............................................................................................... 2

2.1 研究目标 . ......................................................................................................... 2 2.2 . ..................................................................................................... 2 2.3 需求分析 . ......................................................................................................... 3 2.4 性能分析 . ......................................................................................................... 3 2.5 开发环境的搭建 . ............................................................................................. 3 2.5.1 Java环境配置 . ......................................................................................... 3 2.5.2 Eclipse的安装 ......................................................................................... 3 2.5.3 Eclipse Standard的安装 .......................................................................... 3 2.5.4 Tomcat服务器的安装 ............................................................................. 3 2.5.5 Mysql数据库的安装 . .............................................................................. 3 3 系统设计与实现 . ....................................................................................................... 4

3.1 软件流程 . ......................................................................................................... 4 3.1.1 模块设计 . ................................................................................................ 4 3.1.2 功能设计 . ................................................................................................ 5 3.3 用户界面设计 . ................................................................................................. 5 3.4 数据库设计 . ..................................................................................................... 6 3.5 软件的实现 . ..................................................................................................... 8 3.5.1 文件结构与说明 . .................................................................................... 8 3.5.2 具体实现 . .............................................................................................. 11 4 系统测试 . ................................................................................................................. 17

4.1 软件的测试 . ............................................................................................ 17 4.2 测试结果及说明 . .................................................................................... 17

5 总结与展望 . ............................................................................................................. 21 5.1 总结 . ........................................................................................................ 21 5.2 展望 . ........................................................................................................ 21

参考文献 . ..................................................................................................................... 22 致 谢 . ......................................................................................................................... 23 附 录A . ..................................................................................................................... 24

1 绪论

1.1 研究内容

Android 应用平台新闻客户端软件是基于Android 手机平台,采用Java 语言,从网络上的开放的新闻接口获取数据,设计出针对使用Android 平台的手机新闻客户端资讯实时掌控的手机应用程序。

1.2 研究意义

Android 平台新闻客户端软件的开发可以进一步扩大时事新闻的覆盖面,让广大公众能够随时随地方便且快捷地获取最新的新闻资讯信息,了解新闻时事,本软件的广泛使用,尤其是在传授知识、普及教育方面起着非常重要的作用。

1.3 研究现状和发展趋势

目前市场研究机构Worldpanel 发布了全球主要的国家智能手机操作系统在去年Q4内的分布报告,报告指出了谷歌的Android 继续保持着增长的势态,但是增幅已经明显放缓了。而在另一个方面,苹果iOS 操作系统在全球只能手机市场上均有下滑,个别国家的降幅甚至高达10.3%。最新统计数据中显示,Android 操作系统将继续领跑全球市场,包括美国、澳大利亚、中国、意大利、英国、德国、西班牙等所占的市场比例都已经超出50%,并且还将继续呈现上涨的趋势。而在苹果iOS 操作系统方面,最大的市场份额所占比的国家依旧是美国,数值为43.9%;紧随美国的则是澳大利亚,数值为35.2%;而在中国方面,市场份额也从21.2%下降到了19%;在意大利,iOS 所占的市场份额更是从23.1%猛降至12.8%[1]。

从上面的数据可以看出,Android 手机软件的开发具有巨大的发展前景,在Android 系统上开发出一款手机新闻客户端软件所支持的用户量也是相比较于其他系统多出很多的。

谷歌的移动平台主管安迪·鲁宾(Andy Rubin)表示,跟软件开发合作对象的密切接触正在进行中。Google 与开放手机联盟联合开发了 Android 操作系统,这个联盟由摩托罗拉、高通、宏达电、中国移动和 T-Mobile 等在内的多家无线应用和技术的领军企业组成。Google 通过与设备制造商、开发商、运营商和其他有关各方结成深层次的合作关系,希望借助建立开放式、标准化的移动移动电话软件平台,在移动产业内形成一个开放性的生态系统,这将是开发Android 软件的一个契机,Android 平台的开发在将来必定大放异彩[2]。

2 系统分析与环境搭建

2.1 研究目标

1) 了解Android 应用的设计和开发过程;

2) 使用多种组件进行Android 平台新闻软件的开发。

本款手机新闻客户端软件是采用java 语言编写,基于Eclipse 的开发平台,连接网络新闻数据接口,开发出了针对Android 平台的新闻客户端手机软件。

2.2 可行性分析

开发任何一个基于手机的应用程序,都会受到资源和时间上的限制。因此,在接收任何一个应用程序发任务之前,必须根据用户可能提供的资源和时间条件进行可行性分析,旨在减少项目开发风险,避免人力、财力和物力的浪费。风险分析与可行性分析在很多方面是相互关联的,项目的风险越大,开发质量高的软件的可行性的几率就越小。 1) 经济可行性

采用的手机数据流量作为通信手段,当今通信技术的迅速发展,2G 的运营商的GSM 网络已经逐渐被当今的3G 、甚至是4G 所取代,数据流量的资费也越来越低,而且现在很多手机都可连接无线wifi , 实现数据流量0资费,大大加强了本新闻阅读软件的经济可行性。 2) 技术可行性

开发一个新闻客户端软件,用到的技术不会十分复杂,用到最多的就是客户端与服务端的数据交换时所用到的servlet 及常见的数据库技术,android 系统下的解析json 数据以及UI 的设计,经查阅相关资料是可以实现的。

2.3 需求分析

启动程序后可以进行新闻资讯的实时更新,可分不同的栏目让使用者了解任意感兴趣的资讯进行阅读,同时,能对感兴趣的新闻资讯发表自己的意见,进行评论,其他用户也能看见别人发表的评论,从而进行互动交流,增强用户的体验感,用户能通过下拉新闻列表,方便于操作。从上面的描述中可以基本了解软件的功能需求: 1) 启动应用程序;

2) 设置界面:采用多种布局嵌套,美化控件。 3) 显示界面:模仿网易新闻客户端进行UI 编写。

4) 详细界面:分为头条、推荐、娱乐、体育、财经、科技、游戏等板块。

2.4 性能分析

从用户的角度出发,针对用户的需求,所涉及的程序响应速度快、信息处理速度快、安全性高是用户所需要的三大主要性能[2],另外为了受众面更广,根据目前的android 设备系统版本的分布情况,android2.3以上的版本占到设备总量的80%以上,所以做开发的时候选择的android 系统最低版本也必须是android2.3以上来保证用户量。

2.5 开发环境的搭建

2.5.1 Java环境配置

采用jdk 的版本是jdk1.6,目前jdk 版本最高的是jdk1.7,但是为了程序的稳定性,还是采用已经稳定成熟的版本作为开发工具。

从Oracle 公司下载 jdk1.6之后安装,由于本机的开发系统是win8的64位操作系统,选择下载64为jdk, 然后按照安装步骤一步一步next ,jdk 就安装完成了,然后配置环境java 的环境变量,整个jdk 的过程就完成了。 2.5.2 Eclipse的安装

从Eclipse 官网http://www.eclipse.org/downloads/下载Eclipse3.2,根据系统下载相应的Eclipse 版本,点击解压缩就行了,然后启动eclipse.exe 就行了。值得注意的是Eclipse 的bit 数要与jdk 的一致,就是说jdk 如果是32位的,Eclipse 也要是32位的。

2.5.3Eclipse Standard 4.3.2的安装

Eclipse Standard 4.3.2版本用来做服务器端程序,方法与Eclipse 的方法类似。 2.5.4 Tomcat服务器的安装

从http:/tomcat.apache.org下载tomcat6.0作为的服务器,下载好文件后开始安装,点击下一步,在安装过程中会提示设置默认的服务器端口号,若是不做修改默认为8080,建议不要修改,安装完成。

在Eclipse for JavaEE 建立服务器工程的时候选择刚刚安装的tomcat 作为服务器就行了。

2.5.5 安装Mysql 数据库

现如今有很多种类的数据库,如oracle 、sqlserver 、mysql 、access 等等很多种,但是在选择的时候也有考究,本设计的开发涉及到的数据并不是很多所以选择一种轻量级的数据mysql [3]。

3 系统设计

3.1 系统流程

3.1.1 模块设计

软件分为了两大模块,分别是新闻客户端模块和服务器模块。

图形解析能够清楚的看出程序的功能与流程,下图3-1是手机客户端流程图:

图3-1 手机客户端流程图

如下图图3-2所示的是服务器端的流程图:

图3-2 服务器流程图

3.1.2 功能设计

手机客户端模块功能结构如下图所示3-3:

图3-3 客户端功能结构图

服务器端模块功能结构如下图3-4所示:

图3-4 服务器端功能结构图

3.3 用户界面设计

根据需求分析可知, 应用程序应包含三个主要的用户界面,这里要进一步分析每个用户界面中应该包括哪些显示内容。

1) 在“新闻概况页面”中,需要显示得是各类新闻的的栏目头,然后在选择栏目头时选择相应的新闻资讯信息显示在当前的栏目头下,资讯信息以一个ListView 的形式展示在界面上,用户可拖动获得内容,并在滑到最后一个内容时有一个加载更多的按钮,用户点击之后可以获得更多内容。

2) 在“详细新闻页面”中,用户在点击了一条新闻之后,可以进入详细新闻界面,在界面中会展示当前所点击新闻的标题、发表时间、作者以及评论条数,在点击新闻详细内容的区域向两边滑动的时候还能显示上一条新闻和下一条新闻,方便操作,不需要返回上一个界面之后才能阅读上一条或者下一条。

3) 在“新闻评论页面”中,此页面展示的信息就比较简单了,根据时间的排列显示相应新闻的评论内容,一条内容包含的信息有,用户所在的省份,发表的时间以及评论的内容,在发表评论的编辑框会默认提示用户“请文明发表言论”。 下图就是根据对新闻界面显示内容的分析,绘制出用户界面的草图。

图3-5用户界面草图

3.4 数据库设计

本软件是一个需要存储很多新闻资讯信息的程序,其中包括新闻的阅读和用户的评论信息,这些数据都是要从数据库中查询而来的并不是缓存的数据,所以少不了使用数据库,其中数据库为我们管理数据提供方便,Mysql 数据库使用方便、易懂。如下图3-6所示的是新闻栏目的E-R 图:

图3-6 新闻栏目E-R 图

如下图3-7所示的是新闻详细内容的E-R 图:

图3-7 新闻详细内容E-R 图

如下图3-8所示的是新闻评论的E-R 图:

图3-8 新闻评论内容E-R 图

本软件中有三张表的数据需要存储,因此在MySql 中分别建立三张表。新

闻类别分类表

t_category,新闻评论表t_comment,新闻内容表t_news。三张表分别如下表所示:

表3.1 新闻类别分类表t_category的结构

属性 cid title sequnce

表3.2 显示新闻评论表t_comment的结构

属性 cid nid ptime region content

数据类型 integer integer String String String

数据类型 integer String text

说明

分类编号,自动增加的主键

分类名称 序列

说明

评论编号,自动增长

新闻编号 评论的日期

发布人地区(默认为未知地区)

评论内容

续表3.2 显示新闻评论表t_comment的结构

supportcount opposecount

String text

支持数 反对数

表3.3 显示新闻内容表t_news的结构

属性 nid cid title body source ptime imgsrc summary sequence

数据类型 integer integer String String String String text String int

说明

新闻编号编号,自动增长

新闻分类号 新闻标题 新闻正文 新闻来源 发表时间 图片来源 摘要 序列

仔细分析不难得出,后台服务是整个应用程序的核心,主要是“数据获取”,用户进行点击操作,后台服务接收用户的指令,向服务器接口调用收据,服务端接收指令,从服务器进行相应的增删改查,然后返回信息给客户端,使用户获得需要的新闻资讯,满足客户的需求。

服务端器端的代码主要的功能就是对数据库进行的操作,采用servlet 技术通过接受客户端传过来的指令查询数据库,然后返回json 数据格式的数据跟客户端进行数据交互操作,简单方便,手机客户端接收的时候也能十分方便的解析出来,显示在用户界面上。

在完成用户界面设计、服务器和数据库设计后,至此软件的框架设计阶段基本完成。

3.5 功能的实现

3.5.1文件结构与说明

1) 客户端Eclipse 开发部分

在程序的开发阶段,首先确定“Android平台新闻客户端”的工程名为“快看新闻”,据程序模块设计的内容,建立“快看新闻”工程,然后分析完成功能所需要的代码结构,认真完善,做好每一个功能。

其工程源代码的结构与作用如下图3-9所示。

图3-9“快看新闻”工程的源代码文件

为了使源代码文件的结构更清晰,快看新闻”工程设置了多个命名空间,其包的作用分别展示在下表。

表3.4 “快看新闻”工程的文件用途说明

包 名 称 com.szy.news.bean com.szy.news.custom com.szy.news.util com.szy.news.util com.szy.news com.szy.news com.szy.news com.loopj.android.http

文 件 名 Category.java CustomSimpleAdapter.java

DensityUtil.java StringUtil.java MainActivity.java CommentActivity.java NewDetailActivity.ava

包内所有文件

说 明 新闻栏目的bean 类 新闻栏目标题的适配器 像素和dip 之间的转换工具类 String 数据转化成int 的工具类

主新闻界面的Activity 新闻评论界面的Activity 新闻详细内容的Activity 互联网上开源的http 异步访问框

架结构

Android 中资源文件都保存在/res的子目录中。其中,/res/drawable/目录中下保存的是图像文件,/res/values目录中保存的是自定义的字符串和颜色的文件以及样式文件,/res/xml目录中保存的是xml 格式的数据文件,/res/layout目录下保存的是UI 的布局文件。/res/anim目录下包含的是所有的动画控制文件。程序开

发阶段可以被调用的所有资源都保存在这些目录中[4],具体的文件图图3-10示如下。

图3-10 android资源文件图

2) 服务器端Eclipse Standard开发部分

在服务器开发端,建立工程名为“News”的工程,如下图3-11所示

图3-11 服务器端目录图

配合上图的目录结构图,使结构更加清晰,目标类的作用分别展示在如下表3-5的工程文件目录说明中。

表3.5 “News”工程的文件用途说明

包 名 称 com.szy.web.dao

文 件 名

CategoryDAO.java CommentDAO.java NewsDAO.java Config.properties SqlManager.java Category.java Comment.java News.java

GetCategoriesServlet.java GetCommentsServlet.java GetNewsServlet.java GetSpecifyCategoryNewsServl

et.java

PostCommentServlet.java

JSONArray.java JSONException.java JSONML.java JSONObject.java JSONString.java JSONStringer.java JSONTokener.java JSONWriter.java CDL.java Cookie.java CookieList.java HTTP.java HTTPTokener.java

TextUtility.java

说 明

对数据库增删改查的类

com.szy.web.dao 连接MySql 的配置文件

com.szy.web.model 新闻、评论、类型的模型类

com.szy.web.servlet 数据交互操作的servlet 类

org.json 生成json 文件的工具类

org.json 缓存级http 访问工具类

com.szy.web.util 字符编码转换工具类

3.5.2具体实现

主新闻页面的设计与实现

1) 开头定义出页面所需要用到的控件以及新闻栏目的适配器,从代码中可以看出,除了全局变量layoutinflater ,loadnews_progress,titlebar_refresh, MainActivity 类中有以上私有属性cid 、newsData 、newsListAdapter 、newslists 、CatName 、ategories 。

点击新闻栏目之后,MainActivity 会显示相应栏目下的的新闻信息,若此栏目下有新闻的话就会显示出来,若没有新闻的话就会提示“该栏目下没有新闻信息”,要是手机无法连接网络的话就会提示“网络无法连接”,十分清楚的告诉用户现在所处的状态。


相关内容

  • 网易新闻客户端策划案
  • 内容摘要 随着手机媒体的广泛运用,手机报.手机杂志.手机电子书已经深深融入人们的生活当中,通过手机媒体,人们传统的阅读习惯逐渐被被移动化.数字化的手机阅读所取代.移动互联网的快速发展,让手机阅读进入了一个"大跃进"时代.网易新闻抓住这种趋势,推出了移动新闻客户端,以此来满足受众的 ...

  • 基于Android平台的软件开发关键技术的研究
  • 龙源期刊网 http://www.qikan.com.cn 基于Android 平台的软件开发关键技术的研究 作者:何风琴 于涛 来源:<现代职业教育·高职高专>2015年第02期 [摘 ; ; ; ; ;要] ;随着Android 系统的市场占有率越来越大,预示着智能手机的发展离不开A ...

  • 美食分享系统_需求分析
  • 基于Android 的美食分享系统 需 求 规 格 说 组 长 : 郭庆 小组成员: 芮品声 赵晶晶 班 级: 信息安全 完成时间: 2011/12/2 书 明 目 录 第一章 引 言 . ....................................................... ...

  • 移动软件开发课程设计
  • Yangtze University College of Arts and Science 学生课程设计报告 系 部: 机电与信息工程系 专 业: 计算机科学与技术 班 级: 计科5131 姓 名: 来超 学 号: 201241136 课程名称: 移动平台数据库综合开发 指导教师: 王 腾 实习时 ...

  • HTML5开发实战之网易微博 | 网易用户体验设计中心
  • HTML5在国内外越来越受到互联网开发团队的青睐.国外,谷歌兴致勃勃地开发Chrome Web Store,微软发布了支持使用HTML5技术开发的"Irish Spring"主题网站,诺基亚斥巨资购得并打造的NOKIA MAP业务.国内的互联网巨头对这股大洋彼岸吹来的新web开发 ...

  • 02-丁同飞-屠菁-基于Android的手机天气预报系统
  • 合肥学院 2013届 毕 业 论 文(设 计) 论文(设计)题目 院系名称 专业(班级) 姓名(学号) 指 系 完 基于Android的手机天气预 报系统 计算机科学与技术系 计算机科学与技术 2009级本科3班 丁同飞 (0904013004) 屠 菁 袁 暋 2013-06-02 导负成教责时师 ...

  • 传统媒体的变革之旅
  • 云媒体和云媒体时代的特征什么是云媒体?有人简单将云媒体定义为新媒体的综合.这样的定义是不全面的.云媒体这一名词出身草根,到目前为止并没有被学界正式规范和提出.综合当前有关"云媒体"特征以及作用的零星讨论,可对"云媒体"的概念定义为:云媒体是指依托云计算时代互联 ...

  • 污染源在线监测方案
  • 污染源移动执法系统 深圳市圣凯安科技有限公司 第一章项目概述 1项目背景 随着信息化技术的快速推进,日常工作中大量的公文.报告.报表.数据等各类信息量越来越大,涉及到的部门越来越广泛,传统的信息利用方式.执法管理及办公模式已无法满足工作量日益增大的环境监察业务的需求,环境监察管理工作压力剧增,在有限 ...

  • 社交软件市场前景分析
  • 社交软件行业发展前景分析------以微信为例 一.微信产生的背景及历程 QQ是一种基于熟人圈子的社交工具. 由于移动QQ继承了完整版QQ几乎所有的特点,因此可以将其看做是QQ在移动通讯工具上的变体形式. 初期的QQ尝试基于陌生人社交进行业务的开拓与壮大:陌生人的条件查询.视频用户查询.QQ群查询等 ...