基于Android的RSS阅读器设计与开发毕业设计_第1页
基于Android的RSS阅读器设计与开发毕业设计_第2页
基于Android的RSS阅读器设计与开发毕业设计_第3页
基于Android的RSS阅读器设计与开发毕业设计_第4页
基于Android的RSS阅读器设计与开发毕业设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编号编号 本科生毕业设计基于 Android 的 RSS 阅读器设计与开发RSS Reader Based On Android Platform学 生 姓 名康书林专 业软件工程学 号091311703指 导 教 师李锦青学 院软件学院20132013 年年 6 6 月月长春理工大学本科毕业设计毕业设计(论文)原创承诺书毕业设计(论文)原创承诺书1.本人承诺:所呈交的毕业设计(论文) 基于 Android 的 RSS 阅读器设计与开发 ,是认真学习理解学校的长春理工大学本科毕业设计(论文)工作条例后,在教师的指导下,保质保量独立地完成了任务书中规定的内容,不弄虚作假,不抄袭别人的工作内容。2

2、本人在毕业设计(论文)中引用他人的观点和研究成果,均在文中加以注释或以参考文献形式列出,对本文的研究工作做出重要贡献的个人和集体均已在文中注明。3在毕业设计(论文)中对侵犯任何方面知识产权的行为,由本人承担相应的法律责任。4本人完全了解学校关于保存、使用毕业设计(论文)的规定,即:按照学校要求提交论文和相关材料的印刷本和电子版本;同意学校保留毕业设计(论文)的复印件和电子版本,允许被查阅和借阅;学校可以采用影印、缩印或其他复制手段保存毕业设计(论文) ,可以公布其中的全部或部分内容。以上承诺的法律结果将完全由本人承担!作 者 签 名: 年 月日长春理工大学本科毕业设计I摘 要RSS 是共享在线

3、内容的一种简单方式,也是一种描述和同步网站内容的格式。网站提供 RSS 输出,有利于让用户获取网站内容的最新更新,RSS 搭建了一个信息迅速传播的技术平台。本系统是在 Eclipse 集成开发环境中,运用 ADT,JDK 以及 Android SDK 等相关工具进行开发的。本文概括的介绍了 Google Android 平台以及 RSS 的一些基础知识,重点介绍了 Android 平台的个性化 RSS 阅读器的开发过程。首先选取数据源的解析方法。在与其他解析算法的比较之后选取了 SAX 解析做为解析 RSS 源的算法。数据准备完成后,对阅读器的界面进行布局和设计,并运用网络的稳定性、数据的持久

4、化等关键技术,对系统进行具体开发.通过开发基于 Android 平台的 RSS 阅读器,了解了 Android 平台的特性,熟悉了 Android 平台的开发过程和软件开发的过程。关键词关键词:Android 平台 RSS SAX 解析长春理工大学本科毕业设计IIAbstractRSS is a simple way of sharing online content and is also a format of sites content description and synchronization. The site provides RSS output, which takes t

5、he advantage of allowing users to get the latest update of the sites content. RSS sets up a technology platform of rapid dissemination of information. The system is developed with ADT, JDK and Android SDK in the Eclipse, an integrated development environment. The paper outlines some basics of Androi

6、d platform and RSS, focus on the development of personalized RSS reader that based on Android platform. Firstly, analytical method of data source needs be selected. After comparison with other analytical algorithm, SAX parsing algorithm is selected as RSS parser. When data preparation is completed,

7、layout and design of the reader interface starts and key technologies such as the stability of the network and data persistence is used to develop the system.I know the features of the Android platform and familiar with the process of Android platform development and software development through the

8、 design of RSS reader that based on Android platform.Key Words: Android platform; RSS; SAX parser长春理工大学本科毕业设计III目目 录录摘 要.I第 1 章 绪 论.11.1 课题背景 .11.2 国内外研究现状 .21.3 课题目的及研究内容 .21.4 小结 .3第二章 ANDROID 平台以及 RSS 阅读器的基础知识 .42.1 ANDROID平台的技术架构 .42.2 ANDROID平台开发过程 .62.3 ANDROID应用程序构成 .72.3.1 活动(Activity) .72.3

9、.2 Intent .72.3.3 服务(Service) .82.3.4 内容提供器(ContentProvider) .82.4 RSS 基础知识.82.5 小结 .9第三章 需求分析.103.1 系统功能需求 .103.1.1 系统开发背景 .103.1.2 系统功能描述 .103.2 系统实体联系(E-R)图 .113.3 系统描述 .113.3.1 系统运行环境 .113.3.2 系统开发环境以及开发工具 .113.4 系统性能需求 .12第四章 总体设计.134.1 基于 ANDROID的 RSS 阅读器模块划分 .134.1.1 系统功能模块图 .134.2 基于 ANDROID

10、的 RSS 阅读器模块功能概述 .134.2.1 新闻组管理模块 .134.2.2 新闻源管理模块 .14长春理工大学本科毕业设计IV4.2.3 新闻列表模块 .144.2.4 新闻详情模块 .144.3 基于 ANDROID的 RSS 阅读器数据库设计 .154.3.1 数据库设计概述 .154.3.2 数据库逻辑设计 .15第五章 详细设计.165.1 新闻组管理模块 .165.2 RSS 源管理模块.185.3 新闻列表模块 .195.4 新闻详情模块 .20第六章 功能实现.226.1 系统框架 .226.2 数据持久化的实现 .236.3 XML 解析算法的选择.236.4 RSS

11、源地址的 SAX 解析.256.5 系统界面实现 .276.5.1 界面布局的实现 .276.5.2 optinosMenu 的实现.286.5.3 contextMenu 的实现.286.5.4 WebView 显示 RSS 内容的实现.29总结.30参考文献.31致 谢.32附录.33长春理工大学本科毕业设计1第第 1 1 章章 绪绪 论论1.11.1 课题背景课题背景Android 是基于 Linux 的开源移动信息设备应用程序开发平台,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的软件开发平台。Android 早期由 Google 开发,后由开

12、放手机联盟(Open Handset Alliance)开发4。它采用了软件层(software stack,又名以软件叠层)的构架,主要分为四部分。底层以 Linux 内核作为基础,由 C 语言开发,只提供基础功能;中间层包括函数库 Library 和虚拟机 Virtual Machine,由 C+开发;再往上一层是 Android 提供的应用和程序框架;最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以 Java 编写。Android 系统震撼人心之处在于其开放性和服务免费。它是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,能够访问整个

13、操作系统的核心服务,突破了 Symbian、iOS 等软件开发的功能枷锁。Android 不仅是一个操作系统,它还提供了一个强大的软件开发框架。通过它,软件开发人员可以很轻松的开发出功能强大的应用2。(1)无界限的应用程序。Android 上的应用程序可以通过标准API(Application Programming Interface)访问核心移动设备功能。应用程序可以访问设备上的核心数据,如联系人信息、短消息等;使用设备的任何硬件资源,如摄像头、GPS 等。通过互联网,应用程序可以声明他们的功能可以供其他应用和程序使用。(2)应用程序是在平等的条件下创建的。移动设备上的核心应用程序可以被替

14、换或扩展,即使是拨号程序或者主屏幕这样的核心组件也一样。(3)应用程序可以轻松的嵌入网络功能支持。Android 天生就是为访问互联网而生的,它内置了强大的 Web 浏览器引擎,支持 HTML5 标准,因此应用程序可以轻松地嵌入 HTML、JavaScript 和样式表,以及显示 Web 页面内容等。(4)应用程序可以并行运行。从 1.0 版本起,Android 就支持多任务特性,是一种完整的多任务环境,可以像 Windows 桌面应用系统一样,允许多个应用程序并行运行。基于 Android 众多的优点,围绕 Android 形成的移动手机联盟,主要的手机厂长春理工大学本科毕业设计2商几乎全部

15、在列。此联盟在极大的推动了 Android 平台的推广和发展,在未来的几年必将大放异彩,必将 极大的推动整个手机操作系统甚至互联网乃至软件行业的发展。1.21.2 国内外研究现状国内外研究现状具有开源特性的 Android 平台打破了之前 Symbian、windows mobile 等操作系统收取高额授权费用的模式6,使得智能手机成本大大的降低。而正是由于它开放源代码,使得手机产生更多个性化的应用。同时,合作方能够在这里得到利润或者创造价值,手机软件行业得到维护协调发展。以 Google、苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正是 Google 发布 A

16、ndroid 平台的意义,也是 Android 平台存在的使命所在。作为 Android 平台成员之一的中国移动也投资成立了一家通讯公司,专门从事 Google 手机软件的应用以及本地化的软件的开发,比如将在Google 手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。国内众多企业也将眼光投入到 Android 上面,并启动了相关的计划来深入的理解并发展 Android。更多的手机软件开发企业已经或者筹备着将公司进行转型,从其他方向的开发转向到 Android 的开发。由此可见,无论是在国内还是在国外,Android 平台对手机软件行业和移动手机平台将发挥极大地推动作用,而在未来

17、的几年时间里,Android 将越发的凸显自己的重要性。1.31.3 课题目的及研究内容课题目的及研究内容作为一款 Linux 内核的操作系统,Android 系统因其移植性、跨平台性以及开放性被广大移动终端商广泛使用。它涵盖移动信息设备工作所需的全部软件,包括操作系统 、用户界面和应用程序。Android 系统不但可以应用于智能手机,在平板电脑市场也在急速扩张。Android 正在逐渐成为目前移动信息设备应用程序开发的最主要的平台,而且必将成为今后移动信息设备应用程序开发的主流工具。基于此,我们将通过对本课题的研究来了解 Android 平台,来了解在 Android 平台上开发软件应用程序

18、的基本方法与一般过程,并由此来了解手机软件行业,进而了解未来移动互联网的发展趋势。而随着 Internet 技术的不断发展,用户上网浏览信息,在众多的信息中如何能够及时的获得新知识和新内容?这个问题的解决方法就是 RSS 阅读器,一个可以使用户更高效,更方便快捷的跟踪网络信息变化的新一代互联网工具。利用 RSS长春理工大学本科毕业设计3阅读器,用户不再需要逐一访问各个博客站点和感兴趣的新闻网站,只需在阅读器上订阅这些网站的 RSS 频道,RSS 阅读器将为用户读取最新的文章或新闻的标题与简介,如觉得有兴趣之后再下载阅读全文。我们将通过对本课题的研究,深入了解并掌握 RSS 阅读器设计的过程与方

19、法。在 Android 开发平台上设计一个 RSS 阅读器,具体研究内容有:1.Android 平台软件开发的基本流程和基础知识;2.RSS 阅读器的基本知识以及 RSS 阅读器设计的基本要求;3.选取合适的解析方法解析 RSS 源以获得 RSS 源的内容;4.对解析获得的数据和内容进行相关处理并将其显示在设计好的用户界面中;5.通过虚拟机测试程序以一步完善程序是其更具美观性与实用性。1.41.4 小结小结本章主要介绍了 Android 平台的相关背景信息及其发展前景,并简单介绍了Android 开发的重要性和必要性,同时简述了 Android 开发的简单流程和 Android平台上 RSS

20、阅读器设计的主要研究内容。长春理工大学本科毕业设计4第二章第二章 AndroidAndroid 平台以及平台以及 RSSRSS 阅读器的基础知识阅读器的基础知识本章在分析 Android 平台的特点的同时,介绍了 RSS 有关的基础知识。2.12.1 AndroidAndroid 平台的技术架构平台的技术架构Android 平台采用了软件堆层(Software Stack),又名软件叠层的架构,主要分为四个部分:底层以 Linux 核心为基础,并包含各种驱动,只提供基本功能。中间层包括程序库(Libraries)和 Android 运行环境。再往上一层是 Android 提供的应用的程序框架。

21、最上层是各种应用软件,包括通话程序,短信程序等,这些应用软件由开发人员自行开发。Android 平台的架构如图 2-1 所示。图 2-1 Android 平台的技术架构1.Linux 内核(Linux kernel)Android 是基于 Linux2.6 提供核心系统服务,例如,安全、内存管理、进程管理、网络堆栈、驱动模型等。其中 Linux 内核中的驱动程序模型作为硬件和软长春理工大学本科毕业设计5件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。驱动程序模型包含以下常见的驱动程序:显示驱动、摄像头驱动、WiFi 驱动、闪存驱动、音频驱动、Binder(IPC)驱动和电源管理等。2

22、.Android 运行环境(Android Runtime)Android Runtime 为 Android 应用提供一个运行环境。它包括核心库和 Dalvik 虚拟机两个部分。核心库为 Android 应用提供功能支持,它提供 Java 编程语言核心类库中的大部分功能。Dalvik 虚拟机用来运行 Android 应用实例。每一个 Android 应用程序都是 Dalvik 虚拟机中的实例,运行在它们自己的进程中。Dalvik 虚拟机设计成在一个设备中可以高效地运行多个虚拟机实例。Dalvik 虚拟机的可执行文件格式是.dex,dex 格式是专为 Dalvik 设计的一种压缩格式,适合内存

23、和处理器有限的系统。Dalvik 虚拟机依赖于 Linux 内核提供基本功能,如内存管理等。3.库集合(Libraries)Android 包含一个 C/ /C+库的集合,他们通过 Android 的应用程序框架(Application Framework)提供给上层的应用,帮助上层应用实现一些常见的功能。这些库包含以下内容:系统 C 库:标准 C 系统库(libc)的 BSD(Berkeley Software Distribution)衍生,它是专门为基于嵌入式 Linux 设备定制的。媒体库:基于 PacketVideo 的 OpenCORE。它支持回放和记录当下众多流行的音频、视频和静

24、态图像文件格式,包括 MPEG4、H.264、MP3、AAC、JPG、PNG 等。界面管理:管理显示子系统的访问,无缝组合多个应用程序的二维和三维图形层。LibWebCore:新式的 Web 浏览器引擎,用来驱动 Android 浏览器和内嵌的 Web视图。SGL:底层的 2D 图形引擎。3D 库:基于 OpenGL ES 1.0 APIS 的实现。它可以使用硬件 3D 加速(当硬件设备支持时)或内置的高度有话的 3D 软件光栅。FreeType:用于位图和适量字体显示。SQlite:所有应用程序都可以使用的强大的轻量级的关系数据库引擎。4.应用框架(Application Framework

25、)长春理工大学本科毕业设计6作为一个开放的开发平台,应用框架使开发者能够很容易地开发功能强大的应用程序。开发者可以自由地利用所有的设备硬件资源、访问位置信息、运行后台服务、设置定时、向状态栏添加通知,等等。5.应用程序(Applications)应用层包含 Android 的核心应用程序,如 Email 客户端、SMS 短信服务程序、日历、地图、浏览器、联系人管理程序等。另外,开发人员基于 Android SDK 开发的应用程序,也都是位于这一层。所有应用程序都是采用 Java 编程语言写的。因此,这一层也是开发人员展示才华的舞台。和开发人员开发的第三方应用程序一样,作为 Android 系统

26、的核心应用(如拨号、练新人管理等)也都是基于 Android 开发框架来实现的。因此,第三方应用程序完全可以替换 Android 自带的核心应用而不会出现任何问题。2.22.2 AndroidAndroid 平台开发过程平台开发过程Android 移动平台作为 21 世纪的新秀,收到了越来越多的开发者的追捧,在这股开发的浪潮中,逐渐形成了一套具有 Android 特色的开发流程,其大致开发流程如下:(1)需求分析。做为一个软件,它必须有其存在的价值和意义。我们必须通过需求分析来确定它的价值和意义。(2)功能分析。做为一个手机软件,它的使命就是给用户使用,如何使用户得到最好的功能体验是值得每一个

27、程序员深思的,这也是一个程序成功的关键。(3)界面设计。一个整洁美观的应用界面将会给人留下美好的第一印象,而做为手机软件,它只能在极其有限的区域内显示自己。如何在有限的空间里完美的展现出自己的独特之处就显得尤为重要。(4)系统开发。做为一个软件的主体部分,系统开发的好坏直接决定了该系统的性能和寿命。(5)测试。在任何一个软件开发行业中,测试时必不可少的一个环节。在Android 开发中,由于手机的高频率使用和硬件系统上的不足,是的对软件的要求更加的严格,这就要求在开发完成以后,对其进行严格的测试。这些测试又包括了单元测试和系统测试等方面的测试。(6)发布。在完成一个系统的开发后,就要将其发布,

28、只有经过广大用户的考验才算是一个合格的产品。在 Android 平台中,Google 提供了一套完整的发布长春理工大学本科毕业设计7机制Google market72.32.3 AndroidAndroid 应用程序构成应用程序构成在通常情况下,一个Android应用程序是由以下四个组件构成的11:活动(Activity)、意图(Intent) 、服务(Service)和内容提供器(Content Provider)。这四个组件是构成Android应用程序的基础,但并不是每个Android应用程序都必须包含这4个组件,除了Activity是必要组件之外,其余组件都是可选的。.1

29、 活动(活动(ActivityActivity)Activity是最基本的Android应用程序组件。在应用程序中,一个Activity通常就是一个单独的屏幕。每个Activity都是通过继承Activity基类被实现为一个独立的类,Activity类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用程序都是由多个屏幕显示组成。例如,一个发送信息的应用也许有一个显示发送消息的联系人列表屏幕,第二个屏幕用来写文本消息和选择收件人,第三个屏幕可以查看历史消息或者进行消息设置操作等。这里每个屏幕都是一个Activity,很容易实现从一个屏幕到一个新屏幕并且完成新的Activity。因为

30、Android会把每个从主菜单打开的程序保留在堆栈中,所以当打开一个新屏幕时,之前的屏幕会被置为暂停状态并且压入历史堆栈中。用户可以通过回退操作回到以前打开过的屏幕,也可以选择性地移去一些没有必要保留的屏幕。.2 IntenIntent tIntent是用来描述应用程序想做什么。它是一种运行时绑定机制,能在程序运行的过程中连接两个不同的组件。通过Intent,应用程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。与Intent相关的两个类分别是IntentFilter和IntentReceiver。当Intent请求做某个动作时,

31、IntentFilter用于描述一个活动或者广播接收器能够操作那些Intent。而IntentReceiver可使应用程序对外部事件做出响应。长春理工大学本科毕业设计8Intent中两个最重要的部分是动作和动作对应的数据。典型的动作类型有活动的查看(View) 、选取(Pick) 、编辑(Edit)等,而动作对应的数据则以URI(Uniform Resource Identifier)形式进行表示。.3 服务(服务(ServiceService)Service是Android应用程序中具有较长的生命周期但是没有用户界面的代码程序。它在后台运行,并且可以与其进行交互。它跟Acti

32、vity的级别差不多,但是不能自己运行,需要通过某一个Activity来调用。Android应用程序的生命周期是由Android系统来决定的,不是具体的应用程序的线程来左右。当应用程序要求在没有界面显示的情况下还能正常运行(要求有后台线程,而且直到线程结束,后台线程是不会被系统回收的) ,这个时候就学要用到Service了。Service典型的例子是一个具有播放列表功能的正在播放歌曲的媒体播放器。在媒体播放器应用中,可能会有一个或者多个活动,让使用者可以选择并播放歌曲。然而活动本身并不处理音乐播放功能,因为用户期望在切换到其他屏幕后,音乐应该还在后台继续播放。.4 内容提供器(

33、内容提供器(ContentProviderContentProvider)Android应用程序可以使用文件或SQLite数据库来存储数据。ContentProvider提供了一种多应用间数据共享的方式。当开发者希望自己的应用数据能与其他应用共享时,内容提供其将会非常有用。一个内容提供器类实现了一组标准的方法,能够让他的应用保存或者读取此内容提供器处理的各种数据类型。也就是说,一个应用程序可以通过实现一个ContentProvider的抽象接口将自己的数据暴露出去。外界根本看不到,也不用看到这个应用程序暴露的数据在应用程序当中是如何存储的,但是外界可以通过一套标准及统一的接口和应用程序里的数据

34、打交道,可以读取应用程序的数据,也可以删除应用程序的数据。2.42.4 RSSRSS 基础知识基础知识RSS 是“Really Simple Syndication”的英文首字母缩写,中文称作“简易信息聚合。 ”RSS 是一种描述和同步网站内容的格式,是使用最广泛的 XML 应用。R长春理工大学本科毕业设计9SS 搭建了信息迅速传播的一个技术平台,通常在时效性比较强的内容上使用 RSS订阅能更快的获取信息,网站提供 RSS 输出,有利于让用户获取网站内容的最新更新。RSS 阅读器是以 RSS 技术为基础的应用程序,RSS 阅读器的主要用途有:(1)可以订阅博客(Blog) ,可以订阅工作中所需

35、要的技术文章,对什么感兴趣就订阅什么。(2)订阅新闻,无论是奇闻怪事、明星消息、体坛风云、国内外新闻,只要想了解的,都可以订阅。(3)再也不用一个网站一个网站、一个网页一个网页的去逛了。只要将需要的内容订阅在一个 RSS 阅读器中,这些内容就会自动出现在阅读器里,也不必为了一个急切想知道的消息而不断的刷新网页,因为一旦有了更新,RSS 阅读器就会自己通知用户。目前,RSS 阅读器基本可以分为三类。第一类大多数阅读器是运行在计算机桌面上的应用程序,通过所订阅网站的新闻供应,可自动、定时的更新新闻标题。在该类阅读器中,有 Awasu、FeedDemon 和 RSSReader 这 3 款流行的阅读

36、器,都提供免费试用版和付费高级版。国内最近也推出了几款 RSS 阅读器:周博通、看天下、博阅。另外,开源社区也推出了很多优秀的阅读器,如 RSSOWI 等。第二类新闻阅读器通常是内嵌于已在计算机中运行的应用程序中。例如,NewsGator 内嵌在微软的 Outlook 中,所订阅的新闻标题位于 Outlook 的收件箱文件夹中。另外,Pluck 内嵌在 Internet Explorer 浏览器中。第三类则是在线的 Web RSS 阅读器,其优势在于不需要安装任何软件就可以获得 RSS 阅读的便利,并且可以保存阅读状态,推荐和收藏自己感兴趣的文章。提供此类服务的有两类网站,一种是专门提供 RS

37、S 阅读器的网站,如鲜果、抓虾;另一种是提供个性化首页的网站,如国外的 netvibs、pageflakes,国内的雅蛙,阔地。2.52.5 小结小结本章主要介绍了 Android 平台的技术架构、Android 平台的开发流程以及 Android 应用程序构成,并简要介绍了 RSS 的相关基础知识,让我们对 Android 平台和 RSS 阅读器有了初步的认识和了解,为后面的深入开发和设计打下了坚实的基长春理工大学本科毕业设计10础。长春理工大学本科毕业设计11第三章第三章 需求分析需求分析3.13.1 系统功能需求系统功能需求.1 系统开发背景系统开发背景在信息高速发展的今

38、天,人们对信息非常的重视,希望能随时随地的获取即时更新的信息。而新闻阅读器刚好满足人们的要求。在传统的平台如:IPhone,有许多类似的程序,都受到了用户的好欢迎。通过某公司在 Google android market 上面的程序的调查,发现关于信息方面的程序普遍受到广大用户的欢迎。因此本系统将更好的满足人们对信息的需求,实现信息的快捷获取。.2 系统功能描述系统功能描述1)新闻组的管理:用户能按照自己的需求来对新闻组进行增删改查等基本功能的实现2)RSS 新闻频道的管理用户能够按照自己的需求对 RSS 新闻频道进行增删改查等基本功能的实现3)新闻频道阅读:当用户打开一个 R

39、SS 新闻频道时,能够准确无误的从网络上加载该频道的新闻列表4)新闻信息的阅读:当用户觉得某一条新闻有趣时,能够打开新闻显示界面进行概要浏览,还能进去具体网页进行更为详细的了解5)新闻的更新:当 RSS 更新以后,程序能做相应的更新,能与网络上的内容保持一致性。做到即时更新。长春理工大学本科毕业设计123.23.2 系统实体联系(系统实体联系(E-RE-R)图)图RSS类别属于1类别ID类别名称创建时间RSS源源名称源ID创建时间源URLN3.33.3 系统描述系统描述.1 系统运行环境系统运行环境本系统可运行在 Android 2.2 以及以上版本。.2 系统

40、开发环境以及开发工具系统开发环境以及开发工具1.系统数据库环境本系统采用 Android 自带的 SQLite 数据库作为持久化方案。(1)SQLite 简介SQLite,是一款轻型的数据库,是遵守 ACID 的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了。它能够支持 Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java 等,还有 ODBC 接口,同样比起 Mysql、PostgreSQL 这两款开源世界著名的数据

41、库管理系统来讲,它的处理速度比他们都快。(2)SQLite 数据库的优点轻量级SQLite 和 C/S 模式的数据库软件不同,它是进程内的数据库引擎,使用 SQLite 一般只需要带上它的一个动态库。绿色软件它的核心引擎本身不依赖第三方的软件单一文件就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以 copy 到其它目录或其它机器上,也照用不误。图 3-1 系统实体联系图长春理工大学本科毕业设计13跨平台/可移植性内存数据库(in-memory database)2.系统开发工具基于 Android 的 RSS 阅读器开发采用 JDK 1.6 + Eclipse

42、 SDK Juno+ ADTv21.0。(1)JDK 1.6 简介JDK(Java Development Kit)是针对 Java 软件开发的平台。JDK 是整个 Java 的核心,包括了 Java 运行环境(Java Runtime Envirnment) 、Java 工具和基础的类库( rt.jar) 。Sun Microsystems 相继推出了多个版本的 JDK,与之前版本相比,JDK1.6 增加了许多新特性。(2)Eclipse SDK 简介Eclipse 最初由 IBM 所开发,并于 2001 年捐赠开源组织 E。是当前应用较为普遍的 Java 语言程序开发平

43、台。其内核很小,功能多以插件形式附加到该内核上。Eclipse 平台是具有一组强大服务的框架,由平台运行库、工作区、工作台、团队支持和帮助等部分构成。 平台运行库是内核, 它在启动时检查已安装了哪些插件, 并创建关于它们的注册表信息。 为降低启动时间和资源使用, 它在实际需要任何插件时才加载该插件。 除了内核外, 其他每样东西都是作为插件来实现的。工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的文件, 以及文件变更和其他资源。 工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。(2)ADT 简介ADT:安卓开发工具(Android Development

44、Tools)在 Eclipse 编译 IDE 环境中,需安装 ADT(Android Development Tools)Plug-in,这是 Android 在 Eclipse 上的开发工具。3.43.4 系统性能需求系统性能需求1可靠性:系统内不存在严重的错误,能准确实现用户所需功能。2合法性:系统中不得含有任何违犯相关法律、法规的内容或代码。3. 易使用性:系统界面简单直观,交互性强。4. 轻量性:系统应占用少量的内存,节约 Android 内存资源长春理工大学本科毕业设计14第四章第四章 总体设计总体设计4.14.1 基于基于 AndroidAndroid 的的 RSSRSS 阅读器模

45、块划分阅读器模块划分.1 系统功能模块图系统功能模块图基于 Android 的 RSS 阅读器由新闻组管理、新闻源管理、新闻列表显示、新闻详情显示四大模块组成基于Android的RSS阅读器新闻组管理新闻源管理新闻列表新闻详情添加新闻组删除新闻组修改新闻组添加新闻源删除新闻源修改新闻源4.2 基于基于 Android 的的 RSS 阅读器模块功能概述阅读器模块功能概述.1 新闻组管理模块新闻组管理模块 用户能按照自己的需求来对新闻组进行增删改查等基本功能的实现。用户可以创建 RSS 源分类,同时可以长按 RSS 新闻组对其进行删除和编辑。(1)增加新闻组用户按下

46、菜单键,点击添加新闻组图标,弹出添加新闻组对话框。用户在输入新闻组标题内容后,点击添加按钮,程序回到主界面,同时可以看到已经添加的新闻组。图 4-1 系统功能模块图长春理工大学本科毕业设计15(2)编辑新闻组用户长按已经添加的新闻组,选择编辑,弹出编辑新闻组对话框,用户在对话框中输入新闻组名称,点击修改。系统回到主界面,并可以看到新闻组名称已经被修改。(3)删除新闻组用户长按已经添加的新闻组,选择删除,可以看到新闻组已经被删除。.2 新闻源管理模块新闻源管理模块 用户能按照自己的需求来对新闻源进行增删改查等基本功能的实现。用户可以添加 RSS 源,同时可以长按 RSS 源对其进

47、行删除和编辑。(1)增加新闻源用户按下菜单键,点击添加新闻源图标,弹出添加新闻源对话框。用户在输入新闻源标题内容以及新闻源 URL、分类等信息后,点击添加按钮,程序回到上一界面,同时可以看到已经添加的新闻源。(2)编辑新闻组用户长按已经添加的新闻源,选择编辑,弹出编辑新闻源对话框,用户在对话框中输入新闻源标题内容以及新闻源 URL、分类等信息后,点击修改。系统回到上一界面,并可以看到新闻源已经被修改。(3)删除新闻源用户长按已经添加的新闻源,选择删除,可以看到新闻源已经被删除。.3 新闻列表模块新闻列表模块 用户点击 RSS 源,通过 SAX 解析后,显示新闻的列表项。可以对新

48、闻列表项进行点击进入新闻详情页面,也可以通过点击菜单键,选择“刷新” ,刷新新闻列表。.4 新闻详情模块新闻详情模块用户点击新闻列表的标题,可以进入新闻详情页面,在此页面显示新闻的标题,作者,发布时间,摘要,图片等信息,同时在信息摘要的最底部用户可以点击阅读原文按钮,调用浏览器进行原文阅读。长春理工大学本科毕业设计164.34.3 基于基于 AndroidAndroid 的的 RSSRSS 阅读器数据库设计阅读器数据库设计.1 数据库设计概述数据库设计概述 基于 Android 的 RSS 阅读器设计中一共创建了两个数据表,分别是:存储新闻类别信息的表(RSSC

49、ATE)和存储 RSS 源信息的表(RSSITEM) 。.2 数据库逻辑设计数据库逻辑设计(1) 新闻类别信息表(RSSCATE)新闻类别信息表是用来存储新闻类别的表。在该表中,主键是类别 ID(_ID) 。TITLE 列存储类别名称,DATE 列存储创建类别的时间信息。表 4-1 新闻类别信息表序号字段名_英文字段名_中文数据类型是否为空1_ID类别编号INTEGERNOT NULL2TITLE类别名称TEXTNOT NULL3DATE创建时间TEXTNOT NULL(2) RSS 源信息表(RSSITEM)新闻类别信息表是用来存储 RSS 源信息的表。在该表中,主键是 RS

50、S 源 ID(_ID) 。TITLE 列存储源名称,CATEID 列存储该源的类别 ID,LINK 列存储 RSS 源的 URL 地址,DATE 列存储 RSS 源的创建时间。表 4-2 RSS 源信息表序号字段名_英文字段名_中文数据类型是否为空1_IDRSS 源编号INTEGERNOT NULL2CATEID类别 IDINTEGERNOT NULL3TITLERSS 源名称TEXTNOT NULL4DATE创建时间TEXTNOT NULL5LINKRSSURLTEXTNOT NULL长春理工大学本科毕业设计17第五章第五章 详细设计详细设计5.15.1 新闻组管理模块新闻组管理模块开启程序

51、首先显示的是新闻组界面,如下图所示。图 5-1 新闻组显示界面此界面采用 LinearLayout 布局,内嵌 ListView 视图,实现可滑动列表的效果。因为手机屏幕大小有限,为不使布局显得凌乱,将添加分类按钮放在了屏幕的底部,按手机的 Menu 键可弹出,如下图所示。长春理工大学本科毕业设计18图 5-2 底部菜单界面底部菜单实现由 Android 的 onCreateOptionsMenu(Menu menu)接口实现,Menu 的 Add 方法可以添加菜单项,同时通过 onContextItemSelected 事件来对点击菜单项进行反应。选择添加可以添加新闻组分类。如下图所示:图

52、5-3 添加分类界面长春理工大学本科毕业设计19长按分类可以对分类进行编辑、删除等操作。5.25.2 RSSRSS 源管理模块源管理模块点击新闻分组,跳转到该分组的 RSS 源列表,如下图所示:图 5-4RSS 源显示界面此界面采用 LinearLayout 布局,内嵌 ListView 视图,实现可滑动列表的效果。ListView 内采用自定义双栏布局,以实现标题+URL 的显示。因为手机屏幕大小有限,为不使布局显得凌乱,将添加 RSS 源按钮放在了屏幕的底部,按手机的Menu 键可弹出。底部菜单实现由 Android 的 onCreateOptionsMenu(Menu menu)接口实现

53、,Menu 的 Add 方法可以添加菜单项,同时通过 onContextItemSelected 事件来对点击菜单项进行反应。长春理工大学本科毕业设计20选择添加可以添加 RSS 源,长按分类可以对 RSS 源进行编辑、删除等操作。如下图所示。图 5-5 长按 RSS 源弹出菜单5.35.3 新闻列表模块新闻列表模块点击 RSS 源,可对 RSS 源的 URL 进行 SAX 解析。解析成功后,将新闻标题显示在 ListView 中,可实现滑动列表的效果,如下图所示。长春理工大学本科毕业设计21图 5-6 新闻列表模块5.45.4 新闻详情模块新闻详情模块点击新闻标题,进入新闻详情页面。页面采用

54、 LinearLayout 布局,使用ScrollView 实现拖动浏览功能。从上往下的控件依次是 TextView、WebView、以及 Button。长春理工大学本科毕业设计22图 5-7 新闻详情模块最上方是新闻的标题,新闻的内容和图片等信息显示在 WebView 中,并可以拖动进行浏览,在最底端点击查看原文按钮可以调用浏览器进行原文的查看。图 5-8 查看原文按钮长春理工大学本科毕业设计23第六章第六章 功能实现功能实现6.16.1 系统框架系统框架Internet(RSS数据源)数据库DBHelper类CateManager类MListManager类RSSHandlerRSSFee

55、dRSSItemMainActivity(主界面)RSSListActivity(RSS列表界面)PostLists(新闻列表)PostView(新闻详情)图 6-1 系统框架图程序所涉及到的本地数据全部是用 SQLite 数据库存储,程序启动首先要读取数据库中的信息然后添加到界面上显示给用户,需要读取新闻频道是也首先根据选择的项从数据库中获取 RSS 源地址,然后向互联网中获取 RSS 数据流再解析更新到界面上。其中 DBHelper 类是系统读取数据库的工具类,CateManager 和 MListManager分别对 RSS 分类数据和 RSS 源数据进行增删改查等操作。MainActi

56、vity、RSSListActivity、PostList、PostView 四个类分别为新闻类别管理模块、RSS 源管理模块、新闻条目浏览模块、新闻详情模块的 Activity 类。长春理工大学本科毕业设计246.26.2 数据持久化的实现数据持久化的实现1.DBHelper 类继承 SQLiteOpenHelper 类,对数据库进行初始化操作。覆盖 onCreate 函数,对数据库进行初始化操作。2. CateManager 和 MListManager 类这两个类分别对 RSS 分类表和 RSS 源表进行管理,实现基本的增删改查功能。+insertData()+deleteData()+

57、updateData()+selectData()+selectDataDesc()+close()-rHelper-sDatabaseCateManager+insertData()+deleteData()+updateData()+selectData()+selectDataDesc()+close()-rHelper-sDatabaseMListManager 图 6-2 CateManager 和 MListManager 类图两个类的结构相似,不同点在于操作的数据表不同。其他模块通过调用这两个类的方法来对 RSS 类别及 RSS 源进行增删改查等操作。操作结束后用 close()

58、方法关闭数据库。6.36.3 XMLXML 解析算法的选择解析算法的选择RSS 源的数据结构为 XML 文件,我们要对 XML 文件进行解析。所谓 XML 文件解析是指把代表 XML 文档的一个无结构的字符序列转换为满足 XML 语法的结构化组件的过程。Android 平台处理 XML 数据有三种主流方式:1.DOM 解析;2.SAX 解析;3.PULL 解析。下面分别对这三种解析方式做简要的介绍。(1)DOM 解析DOM(Document Object Model)是文档对象模型。利用 DOM 中的队形,可以对 XML 文档进行读取、搜索、修改、添加和删除等操作。使用 DOM 对 XML 文

59、件进长春理工大学本科毕业设计25行操作时,首先要解析文件,将文件分为独立的元素、属性和注释等,然后以节点树的形式在内存中对 XML 文件进行表示,就可以通过节点树访问文档的内容,并根据需要修改文档内容。DOM 实现时首先为 XML 文档的解析定义一组接口,解析器深入整个文档,然后构造一个驻留内存的树结构,这样代码就可以使用 DOM 接口来操作整个树结构使用 DOM 操作 XML 的代码看起来比较直观、简单。但是,因为 DOM 需要将 XML文件的所有内容读取到内存中,所以内存的消耗比较大。(2)SAX 解析SAX(Simple API for XML)是一个公共的基于事件的 XML 文档解析标

60、准。它以事件作为解析 XML 文件的模式,它将 XML 文件转化成一系列的时间,由不同的事件处理器来决定如何处理。SAX 解析就是对 XML 文档进行顺序扫描,当扫描到文档开始与结束、元素开始与结束、文档结束等地方时通知事件处理函数,由事件处理函数做出相应的动作,然后继续同样的扫描,直到文档结束。由于 SAX 不需要将文件都解析,所以占用内存较少。(3)PULL 解析:XML PULL 提供了开始元素和结束元素。当某个元素开始时,我们可以调用parser.nextText()从 XML 文档中提取所有字符数据。当解释到一个文档结束时,自动生成 EndDocument 事件。PULL 解析与 S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论