乐于分享
好东西不私藏

基于Android的RSS新闻阅读器的设计与实现

基于Android的RSS新闻阅读器的设计与实现

期刊、论文、课题、毕设代做+V:tlww008

第一章绪论

1.1 课题背景

随着智能机手机爆炸式的发展,越来越多的人开始使用智能手机,智能机的发展使手机成为一个移动终端,具有短信,相机,游戏,互联网等功能,使人们可以在手机上完成自己要完成的事情。多年来,中国经济的快速增长在嵌入式市场。直到现在,移动端的产品主要分布在卫生,消费电子,教育,电信,安全,医疗等行业。在消费电子领域占最大的市场份额。移动多媒体,数字娱乐,移动终端,汽车电子市场的移动互联网系统应用的发展重点,尤其是对移动电话,便携式媒体设备,应用程序,家庭娱乐,音频和视频产品和解决方案,最高的增长潜力。目前它被用于在手机操作系统在主的PalmOS, 塞班和 Windows Mobile的,安卓,黑莓,iPhoneOS7种。

2008年,谷歌公司推出了一款智能开源手机操作系统,此系统是Android平台,这个系统采用的是Linux内核作为底层,这款软件包括了应用程序、用户界面和操作系统,智能手机工作所需要的工具几乎都有。从2008年推出android操作系统后,在短短的2年间,就超过苹果成为市场占有率第一的智能手机操作系统。由于智能终端的快速发展,目前可以在android平台上开发各类应用,随着人们对移动互联网越来越依赖,人们也渴望从移动互联网上获取自己定制的和咨询和新闻。目基于Android平台开发的RSS新闻阅读器只有客户端,在手机上对新闻网站的xm格式信息进行解析,这样存在两方面的问题,首先是解析时间较长,由于新闻网站提供的xml格式信息较大,手机运行的内存较少,解析一个新闻信息会花费很长时间,如果有多个信息,那么手机可能会出现死机的情况。第二不能及时的了解用户的动态和反馈意见,这对RSS新闻阅读器的持续发展是非常不利的。

1.2 研究意义

随着手机全面进入智能机时代,在中国android智能平台已经占据了90%左右的份额。随着平台占据的市场份额越来越大,平台应用也相应的丰富,这样就使得人们可以通过手机做更多的事情。本文将采用服务器端+客户端的方式解决上述的问题,新闻的解析将在服务器端完成,手机端只接受信息和展示信息。在服务器端的平台上,有用户管理、消息管理、意见反馈管理等功能模块,通过这些功能模块可以实时了解用户的动态,解决用户存在的问题。

1.3 研究内容

基于AndroidRSS新闻阅读器系统的研究内容主要有四个方面,即可行性分析、需求分析、系统设计和系统实现四个部分。

1、可行性分析

可行性分析是对本课题研究的可行性进行分析,主要包括技术可行性、经济可行性和社会可行性,通过可行性分析,要确定本课题在技术、经济和社会是否可行,能否满足相对应的需求。

2、需求分析

需求分析是课题研究的基础,需求分析直接决定着后期的系统设计和系统实现。本课题的需求分析主要有三部分,即功能需求分析、性能需求分析和系统建设过程。

3、系统设计

系统设计要根据系统的需求对系统进行设计,系统设计主要从架构设计、网络结构、系统功能模块等几个方面进行,最后要对数据库进行设计和实现,并列出相对应的数据字段。

4、系统实现

系统实现首先要根据设计完成建立相对应的数据库,然后进行框架的搭建。在系统框架搭建完成后,要进行功能的开发,包括前台界面、后台程序等内容。

1.4论文框架

本文共分六个章节,各部分主要研究内容如下:

1章阐述系统绪论,主要介绍基于AndroidRSS新闻阅读器的开发背景,并对研究意义进行了说明,着重说明了开发本系统的重要性,最后列出了本系统要研究哪些内容。

2章为理论部分,在第二章中详细的介绍了实现RSS新闻阅读系统所涉及的技术,在本课题中主要有系统开发模式、javaandroidwebservicespring等技术。

3章为需求分析部分,主要的内容有系统功能需求、性能需求和可行性分析几个部分。通过第三章的需求分析,可以确定出系统大概的功能模块。

4章是对系统进行概要设计,在概要设计中,主要对网络结构、软件的架构方式、数据库等内容进行设计。通过本章的设计,可以对系统结构有个大致的了解。

5章根据第3章的详细设计,运用第2章的研究技术,论述该系统的实现。

6章主要阐述RSS新闻阅读系统的测试,利用模块、整体等方式全面测试该系统。

最后,全文总结,展望未来RSS新闻阅读系统。

第二章相关理论及技术

本章将对研究本课题使用的基础理论和技术进行详细的说明,包括底层的Linux操作系统、android SDK开发语言等。

2.1 Android平台

2008年,谷歌公司推出了一款智能开源手机操作系统,此系统是Android平台,这个系统采用的是Linux内核作为底层,这款软件包括了应用程序、用户界面和操作系统,智能手机工作所需要的工具几乎都有。从2008年推出android操作系统后,在短短的2年间,就超过苹果成为市场占有率第一的智能手机操作系统。Android平台主要有4部分组成,具体的结构如图2-1所示:

2-1 android结构图

2-1图所示,第一层为android主要有操作系统层(OS);第二层为各种类库和Android运行环境;第三层为系统调用接口;第四层为应用程序。系统调用接口具有承上启下的作用,具体的功能如下图所示:

2-2 系统调用接口功能图

2.1.1 操作系统层

Android的操作系统层是使用的Linux2.6的内核,在这平台上的所有所有操作都是基于Linux的内容进行的。Linux2.6是一种标准技术,同时,linux也是一个开放的操作系统[2]。操作系统对android的支持主要有两部分,即核心和驱动程序两个部分。AndroidLinux和谐为标准的Linux2.6内核,由于android是一个平台,所以要与很多其他移动设备相关的驱动程序。主要的驱动程序有以下几种:

(1) 显示驱动:主要用于Linux的帧缓冲的驱动,在不同的屏幕上显示内容。

android系统中,显示驱动是非常重要的组成部分。在底层的实现中,主要是有surface库来实现的,在底层系统中,提供了基本的输出设备的封装。在surface这个库中,提供了对多图层的支持和各个图层间效果等功能

(2) 音频驱动:在android系统中,音频采用的驱动是linuxALSAALSA目前是linux最为常用的音频体系结构。在linux内核驱动层,ALSA提供了alsa-driver,在应用层,ALSA提供了alsa-lib,在这个lib中提供了处理音频的API,调用里面的方法即可。

(3) Wifi驱动:随着无线网络的发展,Wifi已经成为各类终端的标配,在底层驱动中,wifi采用的IEEE802.11标准的驱动程序[5]

(4) 蓝牙驱动、键盘驱动、Binder IPC驱动:在android中有一个特殊的驱动程序,为方便提高不同进程间的通讯功能,他们各自具有单独的设备节点[6]

2.1.2 各种类库及Android运行环境

android体系中,连接底层的Linux和应用程序的是各类类库。类库相对于一个嵌入式系统,类似于web系统的服务器,相当于一个中间件。在这个中间件中,主要分为两部分内容,一是android运行环境,另一个是供应用程序运行的各种类库,在这个中间层中,大部分内容是用C++实现的。类库主要有以下几种:

(1) C类库:称为微软基础类库,是实现系统设计的基础数据类型。

(2) 多媒体框架库:在这个库中包含了Android多媒体的核心部分,例如基于PacktVideoOpenCORE。从功能上来看,这个库分成了两个部分,一个部分是音频、视频的回放库,另一部分则是音视频的记录库,即(Recoder)

(3) SGL库:主要是处理2D图像的引擎。

(4) SSL:主要为数据通讯提供各种支持,其全称为Secure Socket Layer,位于TCP/IP协议与各种应用层协议之间。

(5) OpecGL ES 1.0:这个类库较新,主要提高对3D的支持。

(6) 界面管理工具:本部分提供了对管理显示子系统等功能。

(7) WebKit:是在应用层开发浏览器的核心类库。

(8) FreeType:主要处理位图和矢量字体

上述是Android提供的各种操作库,大部分的应用程序开发都是基于这些类库进行的,它们的一个显著特点就是与移动设备的平台的应用程序有密切的关系[8]Android主要运行在一个虚拟机上,其运行环境就是一个虚拟机,即Dalvik。这个虚拟机和一般运用JAVA的虚拟机不同,Java的虚拟机执行的是.class文件,而Dalvik执行的.dex文件[8]。在执行这个文件时,每一个应用程序就是一个进程,在Linux系统中进程就是Process。产生这样的区别,主要是虚拟机的结构不同。JAVA虚拟机是以基于栈的虚拟机,而Dalvik是基于寄存器的虚拟机。基于寄存器的好处是可以根据硬件来实现更大的优化,这样的优点可以更适合移动设备。

2.1.3 应用程序框架

应用程序框架是为应用程序而设计的一个框架,在这个框架中为开发者提供了各种API。其实际就是一个应用程序的框架,在开发Android应用程序时,使用的是Java语言,所以在应用程序框架层包含了UI程序中所需要的各种控件[8]。例如: View(视图组件)包含了Grids(表格)List(列表)Text boxes(文本框)Buttons(按钮)等。在一个android应用程序中,应用程序框架提供了以下几个部分,即Service(服务)、Activity(活动)Broadcast Intent Receiver(广播意图接收者)、Content Provider(内容提供者)

2.1.4 应用程序

应用程序是人们通常在手机上使用的程序,这些应用程序主要是通过java语言编写的,java语言通过调用应用程序框架所提供的各种API,从而实现各种功能。Java编写好的文件将被打包成APK文件,这个APK包里面包含了各种类型的文件,如图片、声音、文本等。在Android界面中,其提供了很多基础的功能,例如返回键、联系人、照相机、浏览器等很多基础的应用。开发者可以在这些基础的功能上实现自己的程序,通过调用应用程序框架层的各种API来实现自己的程序。

2.2 开发工具及技术简介

2.2.1 开发工具

MyEclipse 是目前软件开发领域中相当成熟、重要的工具,主要应用于开发Java, J2EE Eclips 插件的一种集成,这种工具的功能非常强大,不管是服务器端还是客户端都可以应用这个工具,这种工具有他的好处,被各种大中小型的公司所使用,对硬件的支持也十分广泛、和完备,尤其是对各种各样开源产品的支持也很高,同时针对特定的环境和开发过程,该软件也会提供多种多样的编程接口以供用户使用和操作在开发工具的选取上,本系统选择MyEclipse8.0MyEclipse是一个应用于企业级开发的有效平台是对Eclipse开发工具的高效扩展,功能非常强大的J2EE技术的集成开发环境涵括很成熟的代码测试、编码、系统发布和系统调试功能,这种开发工具可以完整、高效的支持jsp,struts,hibernatejavascriptJ2EE技术的高效开发平台、整合数据库操作、实现应用系统的高效发布,以及在客户端和服务器端的整合方面相比于其他工具,这种工具可以非常大的提高工作效率,从而达到缩短开发周期的功能。

在开发J2EE JavaEclipse插件集合中 MyEclipse是一个非常不错的开发工具,它的应用范围也十分的广,特别是针对各式各样的开源产品,而且它的功能也是特别强大。

MyEclipse支持Java Servlet,AJAX(异步交互), JSP, JSF, Struts,Spring, Hibernate,EJB3(企业级JAVA BEAN,JDBC数据库链接工具等多个功能。所以MyEclipse是差不多涵盖了现在为止的主流开源产品的特别为eclipse准备的开发工具。我们通常把MyEclipse的特征在结构上分为七大类别:

1WEB的开发工具;

2)应用程序服务器连接器;

3JavaEE的模型;

4)数据库服务;

5EJB的开发工具;

6JavaEE项目的部署服务;

7)通过Eclipse中的功能组件和对应的一系列的外置插件就能够实现相应的基于MyEclipse中整合帮助的以上所提出的每种系统功能上的各种各样分类。

MyEclipse中对于特定的需求都有对应的功能组件,开发人员需要通过一系列的外置插件来实现这些扩展后的功能。MyEclipse在结构上的这种模块化,这种工具可以让我们在不受其他外部因素影响其他系统功能模块的情况下,对任一模块进行需要的、单独的、适当的扩展和升级。简单的来讲也就是MyEclipse是基于Eclipse软件。并在这个软件的基础上添加特定的插件,从而实现开发人员指定的功能的一种强有力的开发工具,同时还是一款支持测试和代码编写以及配置和除错的强大的JavaEE集成开发环境。MyEclipse5.5以后版本安装时不需安装Eclipse而之前的版本需要先安装Eclipse才能安装。

2.2.2 J2EE平台

J2EE中包含很多组件,其应用系统具有相对比较简单,规范的特性,在使用过程中可以利用其特性、提高安全度、提升再次利用价值,所以J2EE这种技术架构与传统的应用开发的技术架构有着很大的不同。Java2平台企业版中包括J2EEJ2EE解决了企业后端使用的信息产品互相之间无法兼容和企业外部或内部很难沟通的问题,因为它的核心是一组技术指南和规范,通过它们可以让使用J2EE系统架构在各种开发平台内实现有共同的开发规格以及开发标准,从而使平台之间的兼容性和通信性达到一个最好的状态。

基于J2EE组件技术开发的系统和使用标准的” JavaJ2SE)技术存在着不同点,主要在于:它在平台上组装组件,并且放置在一个J2EE应用系统中,同时这个组件要严格遵守给定的格式并按照J2EE系统开发的规范,由J2EE服务器(比如Tomcat)对其进行管理和扩展、发布等功能。J2EE组件在现今的J2EE开发规范中是这样被严格定义:Java Server Pages是运行在后台服务器端的Web组件,主要实现页面信息的获取和输出,主要是面向用户端,用户可以通过JSP页面提交数据,也可以通过它获取自己想要的信息。以此同时Java Servlet同样也是部署在服务器端的容器组件,主要实现接受用户提交的信息还可以控制页面之间的跳转功能,而企业级Java Bean (E JB )组件是在大部分企业中应用的一种运行在服务器端的业务流程控制组件,运行在客户端的组件包括客户端应用程序和applet;企业级Java Bean组件是在大部分企业中应用的一种运行在服务器端的业务流程控制组件。

J2EE可以搭建出具有易维护性,可伸缩性,灵活性的商务系统,因此J2EE是一个分厂好的平台,具有以下优势:

1)支持异构环境。J2EE的特性中具有任何在其中开发部署的不同环境均可进行程序的移植,同时不依靠任何特定的中间件、硬件等系统作支撑,作为J2EE应用程序中十分关键一点是,它只需要进行一次开发部署就可将所需要的内容部署到所需平台中。

2)扩展与收缩性。企业必须选择一种可以在扩展与收缩性上满足那些使用他们系统做工作的大量的新用户的服务器端平台。在各种操作系统上都能够部署基于J2EE平台的应用程序:例如单机可以支持多达256个处理器的高端UNIX与大型机系统。J2EE的供应商能够根据企业的实际需要,给购买的企业提供非常的平衡负载方案,帮助解决系统中存在的重点、难点各类问题,同时经过处理后,技术上可达到多台服务器共共同参与到系统的集成部署中,完成高难度的系统扩张与收缩,为学校的财务应用提供便捷的服务。

3)预留现有的IT资产。因为企业必须适应新的商业变化,所以利用现成的商业信息系统方面的投资非常的重要,而不需要重新规划所有的方案。所以,一个以慢慢的而不是快速和全部否定的方式建立在已有系统上的服务器端平台体系是公司所急需的。所有的供应商都对已有的顾客提供了不需抛弃现有投资,进入可以移植的J2EE范畴的进化方法。基于J2EE平台产品所具备灵活运用的特点,从而实现在硬件配置和系统操作上共同实现,所以已有的任何操作系统和硬件也能够被保存下来用于使用。

4)高效率的开发。对于一些相对通用的或者相对繁琐的服务端任务,相关使用放在经过J2EE允许后,可交由中间供应商去完成服务。这样就使得J2EE能够更加专注地致力于提高开发速率上。有一些复杂的中间件服务会通过高级中间件供应商提供,例如: a 状态管理服务:开发人者不用担心管理状态,只管写代码,提高代码的完成速率。 b 连续性服务:开发人员可以不用对数据访问逻辑进行编码,直接编写相关应用程序,从而快速、简洁的创建与相关数据库没有任何关联的应用程序来满足J2EE的使用。C分布式服务:基于CACHE共享数据对象,开发者极力开发出的高性能系统,将会在很大程度上提高了全体部署的扩展与收缩性,提供系统运行效率。

5)稳定的可用性。服务器的好坏是看系统正常运行的能力,一台好的服务器操作系统是能够达到99.999%的可用性,也就是说每一年中只有5分钟的停机时间。差一些的操作系统一年也能达到每年只有几个小时的停机时间。目前的操作系统中,最好的操作系统是Sun SolarisIBM OS/390系统。还有其它的一些操作系统也能部署,比如说Windows环境。将J2EE部署到可靠的系统中,服务器端就能够达到长期的可用性。这些是大型企业所需的服务。而硬件的可靠性不一定能保证服务器端的可用性,还需要软件能够支持长期可用性。J2EE平台就能够提供这样的软件支持,它是由一整套面向软件服务、面向开发编程人员会使用的应用程序接口和适用于各种系统编程的开发协议所组成。

2.2.3 JDBC

JDBC是一个简称,作为一种用于连接JAVA数据库,它是由一组用Java开发工具所实现的各类和各种接口所组成的工具,它可提供多种关系型数据库的统一查询,增加,删除数据,具备可以执行SQL语句对数据库进行访问的Java 编程接口的功能,与控制访问权限等其他功能。JDBC能够为用户实现数据库连接的开发标准,使系统的开发人员,以及使用这种技术的专业人员能够通过根据这种基准所创建的更加高级的接口和工具来编写数据库的应用程序和模块,同时,JDBC也是个商标名。是Java中连接数据库的一种技术,通过这种技术连接数据库后可以进行很多的操作,例如:执行查询、提取数据等。JDBCODBCbridgeSun公司开发的可以使Java程序浏览带有ODBC驱动程序的数据库的一种技术,现在大部分的数据库中都会带有一种驱动程序ODBC,例如OracleSybaseMSSQLServerMSAccess等,所以Java程序能浏览这些数据库。

简单地说,JDBC有三个功能:1.与数据库建立连接、2.发送操作数据库的语句3.处理结果。以下代码段给出了这些功能的基本示例: Connectioncon=DriverManager.getConnection(“jdbc:odbc:wombat”,”login”,”password”);Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(“SELECTa,b,cFROMTable1”);while(rs.next()){intx=rs.getInt(“a”);Strings=rs.getString(“b”);floatf=rs.getFloat(“c”);},上述代码对基于JDBC的数据库访问做了经典的总结。

JDBC是一个较为“低级”的基础接口,相较于数据库连接API接口其效果体现在直接应用于调用SQL命令,通过使用更为方便高级的API接口并将API被转换为低级接口,在这个基础上建立起来。在关系数据库的对象/关系映射中,表中的每一行即为对应于每一类的一个实例,然而每一列的值对应于该实例的一个属性,形成一种一一对应的关系。在对Java对象进行的直接操作过程中,需的SQL可以自动生成。此外,该接口还可提供更为复杂的的映射,大多数开发者信赖并使用基于JDBC的工具,程序员始终在寻找可以使数据库的访问编写更加便捷方式。在一个应用程序提供能够选择数据库任务的菜单的系统中,在选定任务后,相关的应用程序将会提示所操作者需要填写的执行任务与相关信息,这些信息信息输入的应用程序也将自动调用所需的SQL命令。

此外基于三层模型的操作,第一步应将将相关指令发送到中间层,通过“中间层”将SQL语句转送给相关的数据库,再由数据库对SQL语句进行处理并将结果犯规回中间层,中间层再将结果送给用户,从而完成一套相关的服务。在使用中间层的功能以实现对公司数据的访问以及对控制。除此之外,用户可以使用的高级API,也可以通过中间层将它转换为相应的低级SQL语句调用,从而进行相关操作。

2.2.4 Tomcat

在运行Tomcat以及使用过程中,凭借良好的性能比,以及支持多种类型服务等开发应用系统、常用的功能因而受到大多数程序使用者的的欢迎,此外Tomact一直在不断的改进和完善中,具有一定水平的的程序员都能够在其对进行更改和加入新功能。

作为一种小型的轻量级的应用服务器,Tomcat以其自身的特点,广泛使用在小型系统和访问用户量较小的系统中,是开发和调试JSP程序的首选。一台拥有Apache服务器的机器上可以响应HTML访问请求。所以说tomcat的运行,是一个TomcatApache独立的进程单独运行的扩展服务器。

配置正确后,HTML页面的响应由Apache负责,Tomca是负责运行JSP页面和Servlet的。此外,TomcatIISApache一样能够负责处理HTML页面的,另外它是一个JSPServlet容器,Tomcat的默认模式是独立的Servlet容器。但是,Tomcat不如Apache服务器处理静态HTML的能力强。

2.2.5 java技术

Java语言目前是世界上最为流行的一种程序开发语言,凭借其拥有的“封装、继承和多态”这三种特性,在企业级的开发应用中,有很高的额使用率,占据当今信息技术的重要市场份额。

封装:不对外部,保护自身,保证不被外部直接访问。

多态:不同的方法名称根据传入的参数类型或者个数不同调用的方法也不同,多态是在整个JAVA中最重要的概念,而且一个好面向对象设计中肯定要大量的使用多态性,实际上最早的面向对象是由smalltalk提出的,实际上java只是实现了所有面向对象语言应该具备的各个功能,当然现在的面向对象语言:c++,c#

java是一种跨平台应用软件的面向对象的程序设计语言,是由sun公司在1995年推出的,目前分为JavaSEJavaEEJavaMEjava具有很强的通用性、高效性、安全性和跨平台等优势,广泛用于计算机应用,数据中心,服务器平台,拥有全球最大的开发者专用社区。

2.3 webservice

Webservice是目前使用较多的一种数据传递的框架,其是基于SOAP协议实现的一套框架技术。Webservice也是通过http的方式进行数据的传递,并且要把传递的数据封装成XML的形式进行传递,这样就可以不用考虑客户端、服务端所使用的开发技术。客户端和服务器只用根据webservice所定义的协议对发送或者接受的数据进行处理,不要考虑数据的结构、格式等内容。Webservice是一种框架,其和普通的web程序时没有区别的,其只是通过java程序封装了一些方法,这些方法可以完成数据传递的要求。Webservice主要完成了“软件和软件”间的对话,通过这种方式,实现了web无缝集成的需求。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 基于Android的RSS新闻阅读器的设计与实现

评论 抢沙发

9 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮