




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号编号 本科生毕业设计 基于 Android 的 RSS 阅读器设计与开发 RSS Reader Based On Android Platform 学 生 姓 名康书林 专 业软件工程 学 号 091311703 指 导 教 师李锦青 学 院软件学院 20132013 年年 6 6 月月 长春理工大学本科毕业设计 毕业设计(论文)原创承诺书毕业设计(论文)原创承诺书 1.本人承诺:所呈交的毕业设计(论文) 基于 Android 的 RSS 阅读 器设计与开发 ,是认真学习理解学校的长春理工大学本科毕业设计 (论文)工作条例后,在教师的指导下,保质保量独立地完成了任务 书中规定的内容,不弄虚作假,不抄袭别人的工作内容。 2本人在毕业设计(论文)中引用他人的观点和研究成果,均在文 中加以注释或以参考文献形式列出,对本文的研究工作做出重要贡献的 个人和集体均已在文中注明。 3在毕业设计(论文)中对侵犯任何方面知识产权的行为,由本人 承担相应的法律责任。 4本人完全了解学校关于保存、使用毕业设计(论文)的规定,即: 按照学校要求提交论文和相关材料的印刷本和电子版本;同意学校保留 毕业设计(论文)的复印件和电子版本,允许被查阅和借阅;学校可以 采用影印、缩印或其他复制手段保存毕业设计(论文) ,可以公布其中的 全部或部分内容。 以上承诺的法律结果将完全由本人承担! 作 者 签 名: 年 月日 长春理工大学本科毕业设计 I 摘 要 RSS 是共享在线内容的一种简单方式,也是一种描述和同步网站内容的格 式。网站提供 RSS 输出,有利于让用户获取网站内容的最新更新,RSS 搭建了 一个信息迅速传播的技术平台。 本系统是在 Eclipse 集成开发环境中,运用 ADT,JDK 以及 Android SDK 等相关工具进行开发的。本文概括的介绍了 Google Android 平台以及 RSS 的一 些基础知识,重点介绍了 Android 平台的个性化 RSS 阅读器的开发过程。 首先选取数据源的解析方法。在与其他解析算法的比较之后选取了 SAX 解 析做为解析 RSS 源的算法。数据准备完成后,对阅读器的界面进行布局和设计, 并运用网络的稳定性、数据的持久化等关键技术,对系统进行具体开发. 通过开发基于 Android 平台的 RSS 阅读器,了解了 Android 平台的特性, 熟悉了 Android 平台的开发过程和软件开发的过程。 关键词关键词:Android 平台 RSS SAX 解析 长春理工大学本科毕业设计 II Abstract RSS 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 the 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 Android 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, 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 design of RSS reader that based on Android platform. Key Words: Android platform; RSS; SAX parser 长春理工大学本科毕业设计 III 目目 录录 摘 要I 第 1 章 绪 论1 1.1 课题背景 1 1.2 国内外研究现状 2 1.3 课题目的及研究内容 2 1.4 小结 3 第二章 ANDROID 平台以及 RSS 阅读器的基础知识 .4 2.1 ANDROID平台的技术架构 4 2.2 ANDROID平台开发过程 6 2.3 ANDROID应用程序构成 7 2.3.1 活动(Activity) 7 2.3.2 Intent 7 2.3.3 服务(Service) .8 2.3.4 内容提供器(ContentProvider) .8 2.4 RSS 基础知识.8 2.5 小结 9 第三章 需求分析10 3.1 系统功能需求 .10 3.1.1 系统开发背景 .10 3.1.2 系统功能描述 .10 3.2 系统实体联系(E-R)图 11 3.3 系统描述 .11 3.3.1 系统运行环境 .11 3.3.2 系统开发环境以及开发工具 .11 3.4 系统性能需求 .12 第四章 总体设计13 4.1 基于 ANDROID的 RSS 阅读器模块划分 13 4.1.1 系统功能模块图 .13 4.2 基于 ANDROID的 RSS 阅读器模块功能概述 13 4.2.1 新闻组管理模块 .13 4.2.2 新闻源管理模块 .14 长春理工大学本科毕业设计 IV 4.2.3 新闻列表模块 14 4.2.4 新闻详情模块 14 4.3 基于 ANDROID的 RSS 阅读器数据库设计 15 4.3.1 数据库设计概述 15 4.3.2 数据库逻辑设计 15 第五章 详细设计16 5.1 新闻组管理模块 .16 5.2 RSS 源管理模块18 5.3 新闻列表模块 .19 5.4 新闻详情模块 .20 第六章 功能实现22 6.1 系统框架 .22 6.2 数据持久化的实现 .23 6.3 XML 解析算法的选择23 6.4 RSS 源地址的 SAX 解析25 6.5 系统界面实现 .27 6.5.1 界面布局的实现 .27 6.5.2 optinosMenu 的实现28 6.5.3 contextMenu 的实现.28 6.5.4 WebView 显示 RSS 内容的实现.29 总结.30 参考文献.31 致 谢32 附录.33 长春理工大学本科毕业设计 1 第第 1 1 章章 绪绪 论论 1.11.1 课题背景课题背景 Android 是基于 Linux 的开源移动信息设备应用程序开发平台,该平台由操作 系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和 完整的软件开发平台。 Android 早期由 Google 开发,后由开放手机联盟(Open Handset Alliance)开 发4。它采用了软件层(software stack,又名以软件叠层)的构架,主要分为四部分。 底层以 Linux 内核作为基础,由 C 语言开发,只提供基础功能;中间层包括函数 库 Library 和虚拟机 Virtual Machine,由 C+开发;再往上一层是 Android 提供的 应用和程序框架;最上层是各种应用软件,包括通话程序,短信程序等,应用软 件则由各公司自行开发,以 Java 编写。 Android 系统震撼人心之处在于其开放性和服务免费。它是一个对第三方软件 完全开放的平台,开发者在为其开发程序时拥有更大的自由度,能够访问整个操 作系统的核心服务,突破了 Symbian、iOS 等软件开发的功能枷锁。Android 不仅 是一个操作系统,它还提供了一个强大的软件开发框架。通过它,软件开发人员 可以很轻松的开发出功能强大的应用2。 (1)无界限的应用程序。Android 上的应用程序可以通过标准 API(Application Programming Interface)访问核心移动设备功能。应用程序可以访问 设备上的核心数据,如联系人信息、短消息等;使用设备的任何硬件资源,如摄 像头、GPS 等。通过互联网,应用程序可以声明他们的功能可以供其他应用和程 序使用。 (2)应用程序是在平等的条件下创建的。移动设备上的核心应用程序可以被 替换或扩展,即使是拨号程序或者主屏幕这样的核心组件也一样。 (3)应用程序可以轻松的嵌入网络功能支持。Android 天生就是为访问互联 网而生的,它内置了强大的 Web 浏览器引擎,支持 HTML5 标准,因此应用程序 可以轻松地嵌入 HTML、JavaScript 和样式表,以及显示 Web 页面内容等。 (4)应用程序可以并行运行。从 1.0 版本起,Android 就支持多任务特性,是 一种完整的多任务环境,可以像 Windows 桌面应用系统一样,允许多个应用程序 并行运行。 基于 Android 众多的优点,围绕 Android 形成的移动手机联盟,主要的手机厂 长春理工大学本科毕业设计 2 商几乎全部在列。此联盟在极大的推动了 Android 平台的推广和发展,在未来的几 年必将大放异彩,必将 极大的推动整个手机操作系统甚至互联网乃至软件行业的 发展。 1.21.2 国内外研究现状国内外研究现状 具有开源特性的 Android 平台打破了之前 Symbian、windows mobile 等操作 系统收取高额授权费用的模式6,使得智能手机成本大大的降低。而正是由于它开 放源代码,使得手机产生更多个性化的应用。同时,合作方能够在这里得到利润 或者创造价值,手机软件行业得到维护协调发展。 以 Google、苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动 移动互联网的发展,这正是 Google 发布 Android 平台的意义,也是 Android 平台 存在的使命所在。作为 Android 平台成员之一的中国移动也投资成立了一家通讯 公司,专门从事 Google 手机软件的应用以及本地化的软件的开发,比如将在 Google 手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。国 内众多企业也将眼光投入到 Android 上面,并启动了相关的计划来深入的理解并 发展 Android。更多的手机软件开发企业已经或者筹备着将公司进行转型,从其他 方向的开发转向到 Android 的开发。 由此可见,无论是在国内还是在国外,Android 平台对手机软件行业和移动手 机平台将发挥极大地推动作用,而在未来的几年时间里,Android 将越发的凸显自 己的重要性。 1.31.3 课题目的及研究内容课题目的及研究内容 作为一款 Linux 内核的操作系统,Android 系统因其移植性、跨平台性以及开 放性被广大移动终端商广泛使用。它涵盖移动信息设备工作所需的全部软件,包 括操作系统 、用户界面和应用程序。Android 系统不但可以应用于智能手机,在 平板电脑市场也在急速扩张。Android 正在逐渐成为目前移动信息设备应用程序开 发的最主要的平台,而且必将成为今后移动信息设备应用程序开发的主流工具。 基于此,我们将通过对本课题的研究来了解 Android 平台,来了解在 Android 平 台上开发软件应用程序的基本方法与一般过程,并由此来了解手机软件行业,进 而了解未来移动互联网的发展趋势。 而随着 Internet 技术的不断发展,用户上网浏览信息,在众多的信息中如何 能够及时的获得新知识和新内容?这个问题的解决方法就是 RSS 阅读器,一个可 以使用户更高效,更方便快捷的跟踪网络信息变化的新一代互联网工具。利用 RSS 长春理工大学本科毕业设计 3 阅读器,用户不再需要逐一访问各个博客站点和感兴趣的新闻网站,只需在阅读 器上订阅这些网站的 RSS 频道,RSS 阅读器将为用户读取最新的文章或新闻的标题 与简介,如觉得有兴趣之后再下载阅读全文。我们将通过对本课题的研究,深入 了解并掌握 RSS 阅读器设计的过程与方法。 在 Android 开发平台上设计一个 RSS 阅读器,具体研究内容有: 1.Android 平台软件开发的基本流程和基础知识; 2.RSS 阅读器的基本知识以及 RSS 阅读器设计的基本要求; 3.选取合适的解析方法解析 RSS 源以获得 RSS 源的内容; 4.对解析获得的数据和内容进行相关处理并将其显示在设计好的用户界面中; 5.通过虚拟机测试程序以一步完善程序是其更具美观性与实用性。 1.41.4 小结小结 本章主要介绍了 Android 平台的相关背景信息及其发展前景,并简单介绍了 Android 开发的重要性和必要性,同时简述了 Android 开发的简单流程和 Android 平台上 RSS 阅读器设计的主要研究内容。 长春理工大学本科毕业设计 4 第二章第二章 AndroidAndroid 平台以及平台以及 RSSRSS 阅读器的基础知识阅读器的基础知识 本章在分析 Android 平台的特点的同时,介绍了 RSS 有关的基础知识。 2.12.1 AndroidAndroid 平台的技术架构平台的技术架构 Android 平台采用了软件堆层(Software Stack),又名软件叠层的架构,主要 分为四个部分:底层以 Linux 核心为基础,并包含各种驱动,只提供基本功能。 中间层包括程序库(Libraries)和 Android 运行环境。再往上一层是 Android 提供 的应用的程序框架。最上层是各种应用软件,包括通话程序,短信程序等,这些 应用软件由开发人员自行开发。 Android 平台的架构如图 2-1 所示。 图 2-1 Android 平台的技术架构 1.Linux 内核(Linux kernel) Android 是基于 Linux2.6 提供核心系统服务,例如,安全、内存管理、进程 管理、网络堆栈、驱动模型等。其中 Linux 内核中的驱动程序模型作为硬件和软 长春理工大学本科毕业设计 5 件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。驱动程序模型 包含以下常见的驱动程序:显示驱动、摄像头驱动、WiFi 驱动、闪存驱动、音频 驱动、Binder(IPC)驱动和电源管理等。 2.Android 运行环境(Android Runtime) Android Runtime 为 Android 应用提供一个运行环境。它包括核心库和 Dalvi k 虚拟机两个部分。 核心库为 Android 应用提供功能支持,它提供 Java 编程语言核心类库中的大 部分功能。 Dalvik 虚拟机用来运行 Android 应用实例。每一个 Android 应用程序都是 Da lvik 虚拟机中的实例,运行在它们自己的进程中。Dalvik 虚拟机设计成在一个设 备中可以高效地运行多个虚拟机实例。Dalvik 虚拟机的可执行文件格式是.dex,d ex 格式是专为 Dalvik 设计的一种压缩格式,适合内存和处理器有限的系统。Dalv ik 虚拟机依赖于 Linux 内核提供基本功能,如内存管理等。 3.库集合(Libraries) Android 包含一个 C/ /C+库的集合,他们通过 Android 的应用程序框架(Appli cation Framework)提供给上层的应用,帮助上层应用实现一些常见的功能。这些 库包含以下内容: 系统 C 库:标准 C 系统库(libc)的 BSD(Berkeley Software Distribution) 衍生,它是专门为基于嵌入式 Linux 设备定制的。 媒体库:基于 PacketVideo 的 OpenCORE。它支持回放和记录当下众多流行的 音频、视频和静态图像文件格式,包括 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) 长春理工大学本科毕业设计 6 作为一个开放的开发平台,应用框架使开发者能够很容易地开发功能强大的 应用程序。开发者可以自由地利用所有的设备硬件资源、访问位置信息、运行后 台服务、设置定时、向状态栏添加通知,等等。 5.应用程序(Applications) 应用层包含 Android 的核心应用程序,如 Email 客户端、SMS 短信服务程序、 日历、地图、浏览器、联系人管理程序等。另外,开发人员基于 Android SDK 开 发的应用程序,也都是位于这一层。所有应用程序都是采用 Java 编程语言写的。 因此,这一层也是开发人员展示才华的舞台。 和开发人员开发的第三方应用程序一样,作为 Android 系统的核心应用(如拨 号、练新人管理等)也都是基于 Android 开发框架来实现的。因此,第三方应用程 序完全可以替换 Android 自带的核心应用而不会出现任何问题。 2.22.2 AndroidAndroid 平台开发过程平台开发过程 Android 移动平台作为 21 世纪的新秀,收到了越来越多的开发者的追捧,在 这股开发的浪潮中,逐渐形成了一套具有 Android 特色的开发流程,其大致开发 流程如下: (1)需求分析。做为一个软件,它必须有其存在的价值和意义。我们必须通 过需求分析来确定它的价值和意义。 (2)功能分析。做为一个手机软件,它的使命就是给用户使用,如何使用户 得到最好的功能体验是值得每一个程序员深思的,这也是一个程序成功的关键。 (3)界面设计。一个整洁美观的应用界面将会给人留下美好的第一印象,而 做为手机软件,它只能在极其有限的区域内显示自己。如何在有限的空间里完美 的展现出自己的独特之处就显得尤为重要。 (4)系统开发。做为一个软件的主体部分,系统开发的好坏直接决定了该系 统的性能和寿命。 (5)测试。在任何一个软件开发行业中,测试时必不可少的一个环节。在 Android 开发中,由于手机的高频率使用和硬件系统上的不足,是的对软件的要求 更加的严格,这就要求在开发完成以后,对其进行严格的测试。这些测试又包括 了单元测试和系统测试等方面的测试。 (6)发布。在完成一个系统的开发后,就要将其发布,只有经过广大用户的 考验才算是一个合格的产品。在 Android 平台中,Google 提供了一套完整的发布 长春理工大学本科毕业设计 7 机制Google market7 2.32.3 AndroidAndroid 应用程序构成应用程序构成 在通常情况下,一个Android应用程序是由以下四个组件构成的11:活动( Activity)、意图(Intent) 、服务(Service)和内容提供器(Content Provider) 。这四个组件是构成Android应用程序的基础,但并不是每个Android应用程序 都必须包含这4个组件,除了Activity是必要组件之外,其余组件都是可选的。 .1 活动(活动(ActivityActivity) Activity是最基本的Android应用程序组件。在应用程序中,一个Activit y通常就是一个单独的屏幕。每个Activity都是通过继承Activity基类被实现为 一个独立的类,Activity类将会显示由视图控件组成的用户接口,并对事件做出 响应。 大多数的应用程序都是由多个屏幕显示组成。例如,一个发送信息的应用也 许有一个显示发送消息的联系人列表屏幕,第二个屏幕用来写文本消息和选择收 件人,第三个屏幕可以查看历史消息或者进行消息设置操作等。这里每个屏幕都 是一个Activity,很容易实现从一个屏幕到一个新屏幕并且完成新的Activity。 因为Android会把每个从主菜单打开的程序保留在堆栈中,所以当打开一个新屏 幕时,之前的屏幕会被置为暂停状态并且压入历史堆栈中。用户可以通过回退操 作回到以前打开过的屏幕,也可以选择性地移去一些没有必要保留的屏幕。 .2 IntenIntent t Intent是用来描述应用程序想做什么。它是一种运行时绑定机制,能在程序 运行的过程中连接两个不同的组件。通过Intent,应用程序可以向Android表达 某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。 与Intent相关的两个类分别是IntentFilter和IntentReceiver。当Intent请 求做某个动作时,IntentFilter用于描述一个活动或者广播接收器能够操作那些In tent。而IntentReceiver可使应用程序对外部事件做出响应。 长春理工大学本科毕业设计 8 Intent中两个最重要的部分是动作和动作对应的数据。典型的动作类型有活 动的查看(View) 、选取(Pick) 、编辑(Edit)等,而动作对应的数据则以URI (Uniform Resource Identifier)形式进行表示。 .3 服务(服务(ServiceService) Service是Android应用程序中具有较长的生命周期但是没有用户界面的代 码程序。它在后台运行,并且可以与其进行交互。它跟Activity的级别差不多, 但是不能自己运行,需要通过某一个Activity来调用。 Android应用程序的生命周期是由Android系统来决定的,不是具体的应 用程序的线程来左右。当应用程序要求在没有界面显示的情况下还能正常运行( 要求有后台线程,而且直到线程结束,后台线程是不会被系统回收的) ,这个时候 就学要用到Service了。 Service典型的例子是一个具有播放列表功能的正在播放歌曲的媒体播放器 。在媒体播放器应用中,可能会有一个或者多个活动,让使用者可以选择并播放 歌曲。然而活动本身并不处理音乐播放功能,因为用户期望在切换到其他屏幕后 ,音乐应该还在后台继续播放。 .4 内容提供器(内容提供器(ContentProviderContentProvider) Android应用程序可以使用文件或SQLite数据库来存储数据。ContentPro vider提供了一种多应用间数据共享的方式。当开发者希望自己的应用数据能与其 他应用共享时,内容提供其将会非常有用。一个内容提供器类实现了一组标准的 方法,能够让他的应用保存或者读取此内容提供器处理的各种数据类型。 也就是说,一个应用程序可以通过实现一个ContentProvider的抽象接口将 自己的数据暴露出去。外界根本看不到,也不用看到这个应用程序暴露的数据在 应用程序当中是如何存储的,但是外界可以通过一套标准及统一的接口和应用程 序里的数据打交道,可以读取应用程序的数据,也可以删除应用程序的数据。 2.42.4 RSSRSS 基础知识基础知识 RSS 是“Really Simple Syndication”的英文首字母缩写,中文称作“简易 信息聚合。 ”RSS 是一种描述和同步网站内容的格式,是使用最广泛的 XML 应用。R 长春理工大学本科毕业设计 9 SS 搭建了信息迅速传播的一个技术平台,通常在时效性比较强的内容上使用 RSS 订阅能更快的获取信息,网站提供 RSS 输出,有利于让用户获取网站内容的最新 更新。 RSS 阅读器是以 RSS 技术为基础的应用程序,RSS 阅读器的主要用途有: (1)可以订阅博客(Blog) ,可以订阅工作中所需要的技术文章,对什么感 兴趣就订阅什么。 (2)订阅新闻,无论是奇闻怪事、明星消息、体坛风云、国内外新闻,只要 想了解的,都可以订阅。 (3)再也不用一个网站一个网站、一个网页一个网页的去逛了。只要将需要 的内容订阅在一个 RSS 阅读器中,这些内容就会自动出现在阅读器里,也不必为 了一个急切想知道的消息而不断的刷新网页,因为一旦有了更新,RSS 阅读器就会 自己通知用户。 目前,RSS 阅读器基本可以分为三类。 第一类大多数阅读器是运行在计算机桌面上的应用程序,通过所订阅网站的 新闻供应,可自动、定时的更新新闻标题。在该类阅读器中,有 Awasu、FeedDemo n 和 RSSReader 这 3 款流行的阅读器,都提供免费试用版和付费高级版。国内最近 也推出了几款 RSS 阅读器:周博通、看天下、博阅。另外,开源社区也推出了很 多优秀的阅读器,如 RSSOWI 等。 第二类新闻阅读器通常是内嵌于已在计算机中运行的应用程序中。例如,New sGator 内嵌在微软的 Outlook 中,所订阅的新闻标题位于 Outlook 的收件箱文件 夹中。另外,Pluck 内嵌在 Internet Explorer 浏览器中。 第三类则是在线的 Web RSS 阅读器,其优势在于不需要安装任何软件就可以 获得 RSS 阅读的便利,并且可以保存阅读状态,推荐和收藏自己感兴趣的文章。 提供此类服务的有两类网站,一种是专门提供 RSS 阅读器的网站,如鲜果、抓虾 ;另一种是提供个性化首页的网站,如国外的 netvibs、pageflakes,国内的雅蛙 ,阔地。 2.52.5 小结小结 本章主要介绍了 Android 平台的技术架构、Android 平台的开发流程以及 And roid 应用程序构成,并简要介绍了 RSS 的相关基础知识,让我们对 Android 平台 和 RSS 阅读器有了初步的认识和了解,为后面的深入开发和设计打下了坚实的基 长春理工大学本科毕业设计 10 础。 长春理工大学本科毕业设计 11 第三章第三章 需求分析需求分析 3.13.1 系统功能需求系统功能需求 .1 系统开发背景系统开发背景 在信息高速发展的今天,人们对信息非常的重视,希望能随时随地的获取即 时更新的信息。而新闻阅读器刚好满足人们的要求。在传统的平台如:IPhone, 有许多类似的程序,都受到了用户的好欢迎。通过某公司在 Google android mark et 上面的程序的调查,发现关于信息方面的程序普遍受到广大用户的欢迎。因此 本系统将更好的满足人们对信息的需求,实现信息的快捷获取。 .2 系统功能描述系统功能描述 1)新闻组的管理: 用户能按照自己的需求来对新闻组进行增删改查等基本功能的实现 2)RSS 新闻频道的管理 用户能够按照自己的需求对 RSS 新闻频道进行增删改查等基本功能的实现 3)新闻频道阅读: 当用户打开一个 RSS 新闻频道时,能够准确无误的从网络上加载该频道的新 闻列表 4)新闻信息的阅读: 当用户觉得某一条新闻有趣时,能够打开新闻显示界面进行概要浏览,还能 进去具体网页进行更为详细的了解 5)新闻的更新: 当 RSS 更新以后,程序能做相应的更新,能与网络上的内容保持一致性。做 到即时更新。 长春理工大学本科毕业设计 12 3.23.2 系统实体联系(系统实体联系(E-RE-R)图)图 RSS类别 属于 1 类别ID类别名称创建时间 RSS源 源名称源ID创建时间源URL N 3.33.3 系统描述系统描述 .1 系统运行环境系统运行环境 本系统可运行在 Android 2.2 以及以上版本。 .2 系统开发环境以及开发工具系统开发环境以及开发工具 1.系统数据库环境 本系统采用 Android 自带的 SQLite 数据库作为持久化方案。 (1)SQLite 简介 SQLite,是一款轻型的数据库,是遵守 ACID 的关联式数据库管理系统,它的 设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源 非常的低,在嵌入式设备中,可能只需要几百 K 的内存就够了。它能够支持 Wind ows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl 、C#、PHP、Java 等,还有 ODBC 接口,同样比起 Mysql、PostgreSQL 这两款开 源世界著名的数据库管理系统来讲,它的处理速度比他们都快。 (2)SQLite 数据库的优点 轻量级SQLite 和 C/S 模式的数据库软件不同,它是进程内的数据库引擎,使 用 SQLite 一般只需要带上它的一个动态库。 绿色软件它的核心引擎本身不依赖第三方的软件 单一文件就是数据库中所有的信息(比如表、视图、触发器、等)都包含在 一个文件内。这个文件可以 copy 到其它目录或其它机器上,也照用不误。 图 3-1 系统实体联系图 长春理工大学本科毕业设计 13 跨平台/可移植性 内存数据库(in-memory database) 2.系统开发工具 基于 Android 的 RSS 阅读器开发采用 JDK 1.6 + Eclipse SDK Juno+ ADTv2 1.0。 (1)JDK 1.6 简介 JDK(Java Development Kit)是针对 Java 软件开发的平台。JDK 是整个 Ja va 的核心,包括了 Java 运行环境(Java Runtime Envirnment) 、Java 工具和基 础的类库( rt.jar) 。Sun Microsystems 相继推出了多个版本的 JDK,与之前版本 相比,JDK1.6 增加了许多新特性。 (2)Eclipse SDK 简介 Eclipse 最初由 IBM 所开发,并于 2001 年捐赠开源组织 E。是当 前应用较为普遍的 Java 语言程序开发平台。其内核很小,功能多以插件形式附 加到该内核上。Eclipse 平台是具有一组强大服务的框架,由平台运行库、工作 区、工作台、团队支持和帮助等部分构成。 平台运行库是内核, 它在启动时检 查已安装了哪些插件, 并创建关于它们的注册表信息。 为降低启动时间和资源 使用, 它在实际需要任何插件时才加载该插件。 除了内核外, 其他每样东西 都是作为插件来实现的。工作区是负责管理用户资源的插件。这包括用户创建的 项目、那些项目中的文件, 以及文件变更和其他资源。 工作区还负责通知其他 插件关于资源变更的信息,比如文件创建、删除或更改。 (2)ADT 简介 ADT:安卓开发工具(Android Development 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 阅读器模块划分阅读器模块划分 .1 系统功能模块图系统功能模块图 基于 Android 的 RSS 阅读器由新闻组管理、新闻源管理、新闻列表显示、新 闻详情显示四大模块组成 基于Android的RSS阅读器 新闻组管理新闻源管理新闻列表 新闻详情 添加 新闻 组 删除 新闻 组 修改 新闻 组 添加 新闻 源 删除 新闻 源 修改 新闻 源 4.2 基于基于 Android 的的 RSS 阅读器模块功能概述阅读器模块功能概述 .1 新闻组管理模块新闻组管理模块 用户能按照自己的需求来对新闻组进行增删改查等基本功能的实现。用户可 以创建 RSS 源分类,同时可以长按 RSS 新闻组对其进行删除和编辑。 (1)增加新闻组 用户按下菜单键,点击添加新闻组图标,弹出添加新闻组对话框。用户在输 入新闻组标题内容后,点击添加按钮,程序回到主界面,同时可以看到已经添加 的新闻组。 图 4-1 系统功能模块图 长春理工大学本科毕业设计 15 (2)编辑新闻组 用户长按已经添加的新闻组,选择编辑,弹出编辑新闻组对话框,用户在对 话框中输入新闻组名称,点击修改。系统回到主界面,并可以看到新闻组名称已 经被修改。 (3)删除新闻组 用户长按已经添加的新闻组,选择删除,可以看到新闻组已经被删除。 .2 新闻源管理模块新闻源管理模块 用户能按照自己的需求来对新闻源进行增删改查等基本功能的实现。用户可 以添加 RSS 源,同时可以长按 RSS 源对其进行删除和编辑。 (1)增加新闻源 用户按下菜单键,点击添加新闻源图标,弹出添加新闻源对话框。用户在输 入新闻源标题内容以及新闻源 URL、分类等信息后,点击添加按钮,程序回到上一 界面,同时可以看到已经添加的新闻源。 (2)编辑新闻组 用户长按已经添加的新闻源,选择编辑,弹出编辑新闻源对话框,用户在对 话框中输入新闻源标题内容以及新闻源 URL、分类等信息后,点击修改。系统回到 上一界面,并可以看到新闻源已经被修改。 (3)删除新闻源 用户长按已经添加的新闻源,选择删除,可以看到新闻源已经被删除。 .3 新闻列表模块新闻列表模块 用户点击 RSS 源,通过 SAX 解析后,显示新闻的列表项。可以对新闻列表项 进行点击进入新闻详情页面,也可以通过点击菜单键,选择“刷新” ,刷新新闻列 表。 .4 新闻详情模块新闻详情模块 用户点击新闻列表的标题,可以进入新闻详情页面,在此页面显示新闻的标 题,作者,发布时间,摘要,图片等信息,同时在信息摘要的最底部用户可以点 击阅读原文按钮,调用浏览器进行原文阅读。 长春理工大学本科毕业设计 16 4.34.3 基于基于 AndroidAndroid 的的 RSSRSS 阅读器数据库设计阅读器数据库设计 .1 数据库设计概述数据库设计概述 基于 Android 的 RSS 阅读器设计中一共创建了两个数据表,分别是:存储新 闻类别信息的表(RSSCATE)和存储 RSS 源信息的表(RSSITEM) 。 .2 数据库逻辑设计数据库逻辑设计 (1) 新闻类别信息表(RSSCATE) 新闻类别信息表是用来存储新闻类别的表。 在该表中,主键是类别 ID(_ID) 。TITLE 列存储类别名称,DATE 列存储创建 类别的时间信息。 表 4-1 新闻类别信息表 序号字段名_英文字段名_中文数据类型是否为空 1_ID类别编号INTEGERNOT NULL 2TITLE类别名称TEXTNOT NULL 3DATE创建时间TEXTNOT NULL (2) RSS 源信息表(RSSITEM) 新闻类别信息表是用来存储 RSS 源信息的表。 在该表中,主键是 RSS 源 ID(_ID) 。TITLE 列存储源名称,CATEID 列存储该 源的类别 ID,LINK 列存储 RSS 源的 URL 地址,DATE 列存储 RSS 源的创建时间。 表 4-2 RSS 源信息表 序号字段名_英文字段名_中文数据类型是否为空 1_IDRSS 源编号INTEGERNOT NULL 2CATEID类别 IDINTEGERNOT NULL 3TITLERSS 源名称TEXTNOT NULL 4DATE创建时间TEXTNOT NULL 5LINKRSSURLTEXTNOT NULL 长春理工大学本科毕业设计 17 第五章第五章 详细设计详细设计 5.15.1 新闻组管理模块新闻组管理模块 开启程序首先显示的是新闻组界面,如下图所示。 图 5-1 新闻组显示界面 此界面采用 LinearLayout 布局,内嵌 ListView 视图,实现可滑动列表的效 果。因为手机屏幕大小有限,为不使布局显得凌乱,将添加分类按钮放在了屏幕 的底部,按手机的 Menu 键可弹出,如下图所示。 长春理工大学本科毕业设计 18 图 5-2 底部菜单界面 底部菜单实现由 Android 的 onCreateOptionsMenu(Menu menu)接口实现, Menu 的 Add 方法可以添加菜单项,同时通过 onContextItemSelected 事件来对点 击菜单项进行反应。 选择添加可以添加新闻组分类。如下图所示: 图 5-3 添加分类界面 长春理工大学本科毕业设计 19 长按分类可以对分类进行编辑、删除等操作。 5.25.2 RSSRSS 源管理模块源管理模块 点击新闻分组,跳转到该分组的 RSS 源列表,如下图所示: 图 5-4RSS 源显示界面 此界面采用 LinearLayout 布局,内嵌 ListView 视图,实现可滑动列表的效 果。ListView 内采用自定义双栏布局,以实现标题+URL 的显示。因为手机屏幕大 小有限,为不使布局显得凌乱,将添加 RSS 源按钮放在了屏幕的底部,按手机的 Menu 键可弹出。 底部菜单实现由 Android 的 onCreateOptionsMenu(Menu menu)接口实现, Menu 的 Add 方法可以添加菜单项,同时通过 onContextItemSelected 事件来对点 击菜单项进行反应。 长春理工大学本科毕业设计 20 选择添加可以添加 RSS 源,长按分类可以对 RSS 源进行编辑、删除等操作。 如下图所示。 图 5-5 长按 RSS 源弹出菜单 5.35.3 新闻列表模块新闻列表模块 点击 RSS 源,可对 RSS 源的 URL 进行 SAX 解析。解析成功后,将新闻标题显 示在 ListView 中,可实现滑动列表的效果,如下图所示。 长春理工大学本科毕业设计 21 图 5-6 新闻列表模块 5.45.4 新闻详情模块新闻详情模块 点击新闻标题,进入新闻详情页面。页面采用 LinearLayout 布局,使用 ScrollView 实现拖动浏览功能。从上往下的控件依次是 TextView、WebView、以 及 Button。 长春理工大学本科毕业设计 22 图 5-7 新闻详情模块 最上方是新闻的标题,新闻的内容和图片等信息显示在 WebView 中,并可以 拖动进行浏览,在最底端点击查看原文按钮可以调用浏览器进行原文的查看。 图 5-8 查看原文按钮 长春理工大学本科毕业设计 23 第六章第六章 功能实现功能实现 6.16.1 系统框架系统框架 Internet(RSS数 据源) 数据库 DBHelper类 CateManager类 MListManager 类 RSSHandlerRSSFeed RSSItem MainActivity (主界面) RSSListActivity (RSS列表界 面) PostLists (新闻列表) PostView (新闻详情) 图 6-1 系统框架图 程序所涉及到的本地数据全部是用 SQLite 数据库存储,程序启动首先要读取 数据库中的信息然后添加到界面上显示给用户,需要读取新闻频道是也首先根据 选择的项从数据库中获取 RSS 源地址,然后向互联网中获取 RSS 数据流再解析更 新到界面上。 其中 DBHelper 类是系统读取数据库的工具类,CateManager 和 MListManager 分别对 RSS 分类数据和 RSS 源数据进行增删改查等操作。 MainActivity、RSSListActivity、PostList、PostView 四个类分别为新闻类别管 理模块、RSS 源管理模块、新闻条目浏览模块、新闻详情模块的 Activity 类。 长春理工大学本科毕业设计 24 6.26.2 数据持久化的实现数据持久化的实现 1.DBHelper 类 继承 SQLiteOpenHelper 类,对数据库进行初始化操作。覆盖 onCreate 函数, 对数据库进行初始化操作。 2. CateManager 和 MListManager 类 这两个类分别对 RSS 分类表和 RSS 源表进行管理,实现基本的增删改查功能。 +insertData() +deleteData() +updateData() +selectData() +selectDataDesc() +close() -rHelper -sDatabase CateManager +insertData() +deleteData() +updateData() +selectData() +selectDataDesc() +close() -rHelper -sDatabase MListManager 图 6-2 CateManager 和 MListManager 类图 两个类的结构相似,不同点在于操作的数据表不同。其他模块通过调用这两 个类的方法来对 RSS 类别及 RSS 源进行增删改查等操作。操作结束后用 close()方 法关闭数据库。 6.36.3 XMLXML 解析算法的选择解析算法的选择 RSS 源的数据结构为 XML 文件,我们要对 XML 文件进行解析。所谓 XML 文件解 析是指把代表 XML 文档的一个无结构的字符序列转换为满足 XML 语法的结构化组 件的过程。Android 平台处理 XML 数据有三种主流方式:1.DOM 解析;2.SAX 解析; 3.PULL 解析。下面分别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业跨界合作风险管理与战略优化试题及答案
- 海外游客医疗保险数据备份与安全传输协议
- 互联网基础设施的选择试题及答案
- 快递公司快递员薪酬调整合同
- 把握软件设计师考试高频试题及答案
- 2025年公司战略调研与风险决策试题及答案
- 法学概论考试的案例教学法应用及试题及答案
- 2025年市场变化下的企业运营策略试题及答案
- 多方协作环境下的安全隐私保护技术研究
- 基于大数据的数字化教育平台财务模型预测分析
- 数据分析师历年考试真题试题库(含答案)
- 住宅小区园林景观绿化工程施工组织设计方案
- 专题16-家庭与婚姻-2023年高考政治复习课件(新教材新高考)
- 人教版八年级下册历史教案全册
- 2024年北京普通高中学业水平等级性考试化学试题及答案
- 住家护工聘用合同协议书
- 平面向量的基本定理(说课)
- 人教版PEP英语3-6年级全部单词默写表格以及背诵版本
- 《一起长大的玩具》整本书阅读(教学设计)统编版语文二年级下册
- 2024公需科目:数字经济与创新驱动发展题库
- 汽车租赁价格动态调整策略研究
评论
0/150
提交评论