当前位置:文档之家› 优秀android_RSS阅读器毕业论文-基于Google android移动平台技术的新闻阅读器研究

优秀android_RSS阅读器毕业论文-基于Google android移动平台技术的新闻阅读器研究

优秀android_RSS阅读器毕业论文-基于Google android移动平台技术的新闻阅读器研究
优秀android_RSS阅读器毕业论文-基于Google android移动平台技术的新闻阅读器研究

学士学位论文

论文题目基于G o o g l e a n d r o i d移动平台技术的新闻阅读器研究

(英文)Research of news reader based on Google android mobile platform

摘要

在科技日益发达的今天,社会竞争越来越激烈,这要求人们不断的摄取信息来充实自己。要求人们能随时随地的了解并获取所需的信息。在这种情况下,新闻阅读器刚好满足了人们对外物了解的需求。

在本系统是根据Google Android 平台用户的喜好和其平台的特性而设计的,在Google Android平台自带的SDK1.5环境下,运用了Eclipse,PhotoShop等相关工具进行开发。本文概括的介绍了Google Android 开发的流程,并重点的介绍了基于Google Android 平台的新闻阅读器的开发过程。

首先根据Google android market上面的数据,对给予Google android 移动平台的新闻阅读器进行了需求分析。

然后选取了数据源和其解析方法。在参阅相关资料下,选择了RSS作为新闻阅读器数据的来源;通过与其他解析算法的比较得出解析RSS源的算法——SAX解析。

在数据准备完成后,通过对Android 用户的调查,设计一套用户体验较好的界面。在此过程中,不仅调用了系统提供的控件,也使用了自定义控件。

在数据与界面设计完成后,开始了系统的开发。在文中,着重的从系统的稳定性、频道的切换、数据的持久化等特色功能对基于Google android平台的新闻阅读器的开发进行了简要的介绍。

最后,在完成系统的开发后,进行了相关的测试。并将系统发布到Google android market 上供用户下载使用。并根据用户提供的反馈对本系统做出相应的修改。

通过开发基于Google android 移动平台技术的新闻阅读器,了解Google android 移动平台的开发过程和Google android 移动平台的特性,通过此接触并熟悉软件开发的过程。

关键词

新闻阅读器;Google Andorid ;RSS;SAX算法;

Abstract

Today,it’s a more advanced in technology, increasingly competitive society, which requires people to the intake of information to enrich themselves. Requires people to always be in the know and get the required information. In this case, the news reader just to meet the needs of people know of external objects.

In this system, Google Android platform is based on the user's preferences and characteristics of its platform designed, in Google Android platform, comes with SDK1.5 environment, the use of the Eclipse, PhotoShop and other tools for development. This article introduces the Google Android general development process and introduces the focus on Google Android platform news reader development process.

Firstly, according to Google android market the above data, given Google android mobile platform news reader needs analysis carried out.

Then select the data source and its analytical method. See related information in the next, choose the RSS news reader as a source of data; by comparison with other analytical methods to resolve RSS source derived algorithm - SAX parsing.

When the data preparation has completed, a survey by Android users to design a better user interface experience. In the process, not only called the system of control, also use the custom control.

In the data and interface design is complete, start the system development. In the paper, the emphasis from the system's stability, channel switching, data persistence and other features of the Google android platform based news readers a brief description of the development.

Finally, after the completion of system development, some related tests. And posted to the Google android market system available for download to use. Based on feedback from users of the system to be modified accordingly.

Through the development of Google android mobile platform technology based news reader to understand the Google android mobile platform development process and the characteristics of Google android mobile platform, through this contact and are familiar with software development process.

Keywords

News reader; Google Andorid; RSS; SAX algorithm;

目录

第1章绪论 (1)

1.1 背景及其目的 (1)

1.1.1 课题的背景介绍 (1)

1.1.2 课题目的 (2)

1.2 课题研究方法及其内容 (2)

1.3 小结 (3)

第2章Google android 移动平台的相关理论 (4)

2.1 Google android 移动平台的概述 (4)

2.1.1 Android系统的特点: (4)

2.1.2.Android的功能: (4)

2.2 Google android 移动平台开发过程研究 (5)

2.3 Google android 移动平台下的应用研究 (6)

2.4 小结 (7)

第3章Google android 移动平台下新闻阅读器关键技术的研究 (8)

3.1 RSS 技术的研究 (8)

3.2. SAX解析算法的研究 (8)

3.2.1 SAX 解析算法的概述 (8)

3.2.2 SAX解析算法和其他解析算法的比较研究 (9)

3.3 Google android 移动平台控件的研究 (10)

3.3.1 Google android系统控件与自定义控件的比较研究 (10)

3.3.2 Google android 自定义控件的实现的研究 (10)

3.4 数据的持久化研究 (11)

3.4.1数据持久化的意义 (11)

3.4.2 Android 移动平台数据持久化的研究 (12)

3.5 数据的分享的研究 (13)

3.6系统的稳定性研究 (13)

3.6.1 网络连接的研究 (13)

3.6.2 SDcard 的检查 (14)

3.7 小结 (14)

第4章基于Google android 移动平台技术的新闻阅读器的分析与实现 (15)

4.1问题的提出 (15)

4.1.1 需求分析 (15)

4.1.2系统功能结构 (16)

4.2 解决方案 (19)

4.3 主要功能详细设计 (19)

4.3.1 Google Android SDK 版本的选取 (19)

4.3.2 数据源格式的选取 (20)

4.3.3 RSS源的选取 (20)

4.3.4 布局(界面)的设计 (21)

4.3.5 新闻阅读界面设计 (23)

4.3.6 RSS 源的读取(SAX解析) (24)

4.3.7 频道的切换 (25)

4.3.8 新闻网页的显示 (26)

4.3.9 数据的持久化 (27)

4.3.10 网络的链接 (27)

4.3.11 SD卡的检查 (28)

4.3.12信息的分享 (29)

4.5 小结 (29)

第5章结束语 (30)

致谢 (31)

参考文献 .................................................................................................. 错误!未定义书签。

第1章绪论

1.1 背景及其目的

1.1.1 课题的背景介绍

手机是已经成为了生活中不可缺少的通讯设备,没有手机有时会让人觉得寸步难行手机将脱离传统的打电话、发短信等基本的功能,而基于智能手机强大的处理能力和可扩展能力,基于3G网络高速数据传输,越来越多的功能和业务将被开发出来并大规模的应用。正基于此,当全世界的目光聚焦在此的时候,Google于2007年11月5日宣布推出基于Linux平台的开源手机操作系统,号称首个为移动终端打造的真正开发和完整的移动软件——Android。

Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟(Open Handset Alliance)开发。它采用了软件层(software stack,又名以软件叠层)的构架,主要分为三部分。底层以Linux内核作为基础,由C语言开发,只提供基础功能。中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java编写。

Android不只是一个操作系统而已,它包括了:

1,经过Google剪裁和调优的Linux Kernel,对于掌上设备的硬件提供了优秀的支持。Google在Linux方面的应用能力不容置疑,Google公司所有的几十万服务器全部是自己修改过的Linux操作系统。

2,经过Google修改的Java虚拟机Dalvik,是基于Apache Harmony虚拟机版本进行改良而来,能够提供极高的执行性能。有了Java虚拟机,大部分Java核心类库都已经可以直接运行。

3,大量立即可用的类库和应用软件,例如浏览器Webkit,数据库SQLite,让你可轻易开发出来媲美于桌面应用复杂度的手机软件。

4,Google已经开发好了大量现成的应用软件,同时可以直接使用Google很多在线服务。

5,Google提供了基于Eclipse的完整开发环境,模拟器,文档,帮助,示例将极大推动Android快速的推广和发展。

基于Android众多的优点,围绕Android形成了一个移动手机联盟,主要的

手机厂商几乎全部在列,而此联盟在极大的推动Android平台的推广和发展,在

未来的几年必将大方异彩,将极大的推动整个手机操作系统甚至是互联网乃至软件行业的发展。

1.1.2 课题目的

Android这个平台对于Google对于大众的意义不在于手机本身,Android存

在的目的也不在于挑起手机操作系统之间的混战,而在于推动移动互联网产业链

的迅速成型。

具有开源特性的Android平台打破了之前Symbian、windows mobile等操作

系统收取高额的授权费用的模式,使得只能手机成本大大的降低;而正是由于它

开发源代码,使得手机产生更多个性化的应用。同时,合作方能够在这里得到利

润或者创造价值,手机软件行业得到维护协调发展。

以Google、苹果和路基亚为中心各自形成的生态链将以原来数倍的速度推动

移动互联网的发展,这正式Google发布Android平台的意义,也是Andorid平台

存在的使命所在。而作为Android平台成员之一的中国移动也投资成立了一家通

讯公司,专门从事Google手机软件的应用以及本地化的软件的开发,比如将在Google手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。国

内众多企业也将眼光投入到Andorid上面,并启动了相关的计划来深入的理解并

发展Android。更多的手机软件开发企业已经或者筹备着将公司进行转型,从其

方向的开发转向到Android的开发。

综上所述,无论是在国内还是在国外,Android平台对手机软件行业和移动

手机平台将发挥极大地推动作用,而在未来的几年或者一段时间内,Android将

越发的凸显自己的重要性。

基于此,我们有必要通过进行相关的研究来了解Android平台,来了解开发Android的那一大批人的先进的理念和思想,并通过这些来了解手机软件行业,进而了解未来无移动互联网的发展趋势,从而更好的适应时代的需要。

1.2 课题研究方法及其内容

通过开发一个项目,既新闻阅读器来了解Android平台的相关特性和开发的流程。

具体来讲:

1,通过分析当前阶段下各种人群的喜好和对事物的关注程度来选择究的项目,既新闻阅读器。根据相关的信息来选取相应的新闻源作为本项目的新闻来源。

2,通过独立设计UI来了解Android以至于移动平台开发的UI的设计方法。

3,通过选取相应的算法来读取RSS源的内容,来了解Android平台的类库

和其相关的设计模式,了解其先进的思想和API的特点。

4,通过设计功能点来初步的了解移动平台开发的所需注意事项,初步的了解

移动平台的开发,并了解别体会如何获得更好的人机交互。

5,通过测试来完善程序,使其Bug不合理地方最少化,并进一步了解Android

平台的相关先进的特点和其人性化的设计,与此同时熟悉软件开发的相关流程并深刻认识在编码时一些注意事项的重要性。

6,通过发布程序到Google Android Market上,了解Android程序发布的流

程,并通过它了解其他平台下的开发、发布的流程。并通过用户的反馈来进行相关的修改。基于此更深刻的理解人机交互的重要性和设计的重要性。

其具体的研究内容包括:

1,数据源的选取。

2,界面的设计。

3,数据源的读取。

4,人机交互的效果。

5,程序的测试。

6,产品的发布。

1.3 小结

本节主要介绍了Google Android平台的相关信息和对其发展前景的展望,并简单介绍了Android开发的重要性和必要性,同时简要概述了Android开发的简单流程和测试及其发布的流程的相关内容。

第2章Google android 移动平台的相关理论

2.1 Google android 移动平台的概述

Android是Google于07年11月5日宣布的基于Linux平台开源手机操作系统名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。

2.1.1 Android系统的特点:

1.开放性。Google 与开放手机联盟合作开发了Android,Google 通过与运行商、设备制造商、开发商和其他有关各方面结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业形成一个开放式的生态系统。

2.应用程序无界限。Android 上的应用可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可提供其他应用程序使用。

3.应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。

4.应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JavaScript 和样式表,还可以通过WebView 显示网络内容。

5.应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引起注意。

2.1.2.Android的功能:

1.支持虚拟键盘。虚拟键盘的出现意味着基于Android 1.5 或以上版本的移动设备可以同时支持物理键盘和虚拟键盘。

2.使用Widget实现桌面的个性化。可以用Widget 修饰自己的桌面。大多数小的web应用都是从网络上获得实时数据并展示给用户的。Android预装了5个桌面Widget,

包括数字时钟、日历、音乐播放器、相框和搜索。

3.用在线文件夹快速游览数据。类似于OS X Leopard的QuickLook特征,Android 的在线文件夹可显示常见的数据条目,比如联系人、喜欢的应用、E-mail信息、播放列表、书签、RSS源等,并不需要运行系统程序处理特定的数据条目。

4.视频录制和分享。Android还有录制和分享视频的功能,对回放和MPEG-4、3GP 等视频格式也有了更好的支持。可以通过E-mail、MMS或直接上传到YouTube等方式来分享视频。

5.图片上传。在线分享图片需要的点击更少。完成照相后,当浏览图片或选择Google 在线图片服务Picasa时,只需轻点―分享‖就会拥有1Gb的免费图片存储空间。

6.更快、更兼容的游览器。Android的基于Webkit内核的游览器带来了重要的调速装置(SpeedPumb),这得益于新的Wenkit渲染引擎和优化的Java脚本编译器(SquireFish).

7.Voice Search语音搜索。带有语音识别技术的Google手机已于2008年11月面世,它支持语音搜索功能。该功能增强了默认的搜索能力,已超过纯文本搜索。

8.立体声蓝牙和免提电话。除了增强的免提电话体验,Android还支持立体声蓝牙(A2Dphe和AVCRP),并有自动配对功能。

9.强大的GPS技术。Android内部提供了大量的GPS组件,我们可以很轻松地获得设备当前的位置等信息,让导航等功能更加完美。

10.Android系统硬件检测。Android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征。为了让用户下载到与自己的设备匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序,当更多的Android设备建立在不同的硬件上时,这个功能显得很实用。

2.2 Google android 移动平台开发过程研究

Android 移动平台作为21世纪的新秀,受到了越来越多的开发者的追捧,在这股发的浪潮中,逐渐形成了具有Android 一套具有Android 特色的开发流程。

由于Android 的优越性,其开发显得非常的有规律性可寻。大致的开发流程如下:(1)需求分析。作为一个软件,它必须有其存在的意义和价值。而这价值和意义就需要靠需求分析来确定。

(2)功能分析。作为一个手机软件,它的使命就是给用户使用的。如何提供用户最好的用户体验就值得每一个程序员的深思。这也是确保一个程序成功的关键所在。

(3)界面设计。作为一个手机软件,其只能在极有限的区域中显示自己。如何

有限的空间里面更完美的展现出自己的独特之处就显得尤为重要了。

(4)系统开发。作为一个软件的主体部分,系统开发的好坏直接决定了该系统的性能和寿命。

(5)测试。在任何一个软件开发行业中,无论是J2EE、J2SE、J2ME等等其他开发中,测试时必不可少的一环。在Android 开发中,由于手机的搞频率使用,和硬件系统上的不足,使得对软件的要求更加的严格,这就要求在开发完成后,在对其进行严格的测试。而测试又包括了像:单元测试、系统测试等等方面的测试。

(6)发布。在完成了一个系统的开发后,就要将其发布,经过广大用户的考验,只有经过这,才算是一个合格的产品。在Android 平台中,Google 提供了一套完整的发布机制——Google market。

2.3 Google android 移动平台下的应用研究

Android 系统提供给应用开发者的本身就是一个框架,所有的应用开发都必须

遵守这个框架的原则。我们在开发应用时就是在这个框架上进行扩展,下面来看看Android这个框架都有些什么功能可供我们使用。

android.app:提供高层的程序模型和基本的运行环境。

android.content:包含对各种设备上的数据进行访问和发布。

android.database:通过内容提供者浏览和操作数据库。

android.graphics:底层的图形库,包含画布、颜色过滤、点、矩形,可以将它们直接绘制到屏幕上。

android.location :定位和相关服务的类。

android.media:提供一些类管理多种音频、视频的媒体接口。

https://www.doczj.com/doc/2a2484422.html, :提供帮助网络访问的类,超过通常的https://www.doczj.com/doc/2a2484422.html,.*接口。

android.os :提供了系统服务、消息传输和IPC 机制。

android.opengl:提供OpenGL 的工具。

android.provider:提供访问Android 内容提供者的类。

android.telephony:提供与拨打电话相关的API 交互。

android.view:提供基础的用户界面接口框架。

android.util :涉及工具性的方法,例如时间日期的操作。

android.webkit :默认浏览器操作接口。

android.widget:包含各种UI 元素(大部分是可见的)在应用程序的布局中使用。

2.4 小结

本章主要从三个方面:1,Google android移动平台的概述;2,Google android 移动平台开发过程的研究;3,Google android 移动平台下的应用的研究,概要的介绍了Google android 移动平台的相关知识,对Google android移动平台有个初步的认识和了解,为后面的开发做了了坚实的基础。

第3章Google android 移动平台下新闻阅读器关键技术的研究

3.1 RSS 技术的研究

RSS是“Rich Site Summary”(丰富站点摘要),或“RDF Site Summary”(RDF 站点摘要),也可以是“Really Simple Syndication”(真正简易聚合)。现在已有的有Netscape, 1.0 (RSS-DEV版本),和 0.9x and 2.0 (UserLand Software版本) 0.9x 和2.0。不过几乎所有能支持RSS的程序都可以浏览不同版本的RSS。

RSS是基于文本的格式。它是XML(可扩展标识语言)的一种形式。通常RSS文件都是标为XML,RSS files(通常也被称为RSS feeds或者channels)通常只包含简单的项目列表。一般而言,每一个项目都含有一个标题,一段简单的介绍,还有一个URL链接(比如是一个网页的地址)。其他的信息,例如日期,创建者的名字等等,都是可以选择的。

RSS是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容),通常被用于新闻和其他按顺序排列的网站,例如Blog。一段项目的介绍可能包含新闻的全部介绍,Blog post等等。或者仅仅是额外的内容或者简短的介绍。这些项目的链接通常都能链接到全部的内容。网络用户可以在客户端借助于支持RSS的新闻聚合工具软件(例如NewzCrawler、FeedDemon),在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。网站提供RSS输出,有利于让用户发现网站内容的更新。

RSS 的优点。如果没有 RSS,用户就不得不每日都来您的网站检查新的内容。对许多用户来说这样太费时了。通过 RSS feed(RSS 通常被称为 News feed 或 RSS feed),用户们可以使用 RSS 聚合器来更快地检查您的网站更新(RSS 聚合器是用来聚集并分类 RSS feed 的网站或软件)。由于 RSS 数据很小巧并可快速加载,它可轻易地被类似移动电话或 PDA 的服务使用。拥有相似内容的网站环(Web-rings)可以轻易地在它们的网站共享内容,使这些网站更出色更有价值。

3.2. SAX解析算法的研究

3.2.1 SAX 解析算法的概述

RSS 源的数据结构为XML文件,当前 Google Android 处理读取XMl数据有三种主流方式:1.DOM 解析;2. Pull 解析 3.SAX解析

由于Google Android 平台手机系统资源有限,且基于Google Andorid 平台的新闻阅读器所读取的数据内容不是非常多,所以笔者在此选择了性能消耗较小的SAX解析作为解析XML文件的方法。

SAX(Simple API For XML)是一个公共的基于事件的XML文档解析标准,这里简单介绍一下MSXML是如何通过COM接口实现SAX功能的。首先需要注意的使SAX是一个接口集合,它允许开发人员在自己的应用中通过这个接口集合来读取和分析XML文档中的数据。SAX2是当前微软最新的API。

SAX最初是为Java编程语言设计的,并使用了Java的接口定义,因为Java语言接口并不是语言中立的,所以各个厂商就需要建立自己的工具把 SAX接口映射到它们自己的特殊的语言上去。微软的SAX2给VB和VC提供了接口,当然它们都有自己的接口集合映射到各自的语言和类型定义上去(比如 ISAXContentHandler是VC的接口,而IVBSAXContentHandler是VB的接口)。能够通过一个简单的,快速的方法来对XML 文档进行处理,并且和DOM相比的话,它所占用的系统资源更少。我们知道,当你通过DOM来操作一个XML文件的时候,DOM读取该文件,然后把它分割成单个的对象(比如元素,属性和注释等等),然后在内存中创建一个关于该文档的树结构。使用DOM的好处是可以引用和操作每一个对象。但是为一个文档创建一个树结构,尤其当文档尺寸很大的时候,需要大量的内存空间。

3.2.2 SAX解析算法和其他解析算法的比较研究

(1)与DOM算法的比较。和DOM不同的是,SAX2是基于事件的,这意味着当它在一个XML文档中发现特殊的符号的时候,它会产生相关的事件。SAX2的优点是当它读到XML文档中每一部分内容的时候,就会产生一个事件,我们的应用程序就可以在这个事件中写入具体的处理代码,然后解析器就移动到文档的下一段。因为SAX2以序列的形式处理文档,它和DOM相比,对内存的需求很少。而且当SAX2找到需要的信息的时候,它能够停止对当前文档的解析。因为SAX不需要在内存中建立整个文档的树结构,SAX和DOM相比,可以被认为是一个轻量级的接口集合。

(2)与Pull 算法的比较。与DOM 解析算法相同的是,PULL算法也是基于节点的,即,在使用PULL解析XML时,解析器读入整个文档并构建一个驻留在内存的树结构(节点树),然后才可以使用PULL标准的接口来操作这个树结构。所以,同DOM 一样,Pull解析式将内容读到内存中去,这样就消耗了系统的大量资源,而且给开发提取数据也造成了一定的麻烦。而SAX不需要在内存中建立整个文档的树结构,SAX和

Pull相比,可以被认为是一个轻量级的接口集合。

由于此,在基于Google Android 移动平台技术的新闻阅读器的研究中,使用了SAX 解析算法。

3.3 Google android 移动平台控件的研究

3.3.1 Google android系统控件与自定义控件的比较研究

在Google Android 中给出了非常多的绚丽的控件,但是在某些时候需要的实现某些功能的时候,系统的控件显得有些笨拙和难以控制,如,在本系统中,本打算使用系统自带的控件TabLayout 显示频道,但是现在的过程中,发现,该控件的每一个Tab之间有一定距离的间隔,且每一个Tab上面的图片很难控制其显示的方式和显示的效果,因此该综合美观和操作性的基础上,决定不用该控件来显示频道切换界面。而才用笔者自定义的控件——TabController ,此控件从需求上必须能弥补系统控件TabLayout 的不足,且能易于用户操作。

3.3.2 Google android 自定义控件的实现的研究

在Google Android 移动平台中,自定义控件都大致可以分成俩部分来走。第一,界面的实现;第二,功能的实现;第三,控件的调用。

(1)界面的实现。在Google Android 平台中所有的控件都是继承了View这个超类,所以在我们自定义一个控件的时候也需要继承这个超类,但是有些情况下不需要继承这个超类而是继承它的子类,如基于Google Android 平台的新闻阅读器中,就继承了这个超类的子类ViewGroup,即:public class TabController extends ViewGroup{}。基于此我们就得到了我们要实现的那个控件的最基本的那部分——界面的实现。

(2)要实现一个控件,让其能产生特定的效果,我们需要自己来重写父类某些甚至是全部的构造函数,如在基于Google Android 平台的新闻阅读器中,笔者就重写了protected void onLayout(boolean changed, int l, int t, int r, int b) {

………

}

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

……….

}

protected void onFinishInflate() {

…………

}

等方法。在方法中实现所需的功能,这样一个自定义控件就好了。

(3)控件的调用。在Android 系统中,控件的调用非常的方便,如系统控件TextView,其调用方式如下:

但是当使用自定义控件的时候,其调用方式就与其有很大的区别。在自定义控件中,其调用的形式是通过命名空间的形式来进行调用的。如,在基于Google Android 移动平台的新闻阅读器中,调用自定义控件的方式如下:

.......

>

3.4 数据的持久化研究

3.4.1数据持久化的意义

持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

持久化是一种对象服务,就是把内存中的对象保存到外存中,让以后能够取回。需要实现至少3个接口:

void Save(object o) 把一个对象保存到外存中

Object Load(object oid) 通过对象标识从外存中取回对象

bool Exists(object oid) 检查外存中是否存在某个对象

为什么需要持久化服务呢?那是由于内存本身的缺陷引起的:

内存掉电后数据会丢失,但有一些对象是无论如何都不能丢失的,比如银行账号,遗憾的是,人们还无法保证内存永不掉电。内存过于昂贵,与硬盘、磁带、光盘等外存相比,内存的价格要高2~3个数量级,而且维持成本也高,至少需要一直供电吧。所以即使对象不需要永久保存,也会因为内存的容量限制不能一直呆在内存中,需要

持久化来缓存到外存。

既然持久化服务在看得到的未来还有市场,如何构建一个好的持久化框架,框架是否真的好在于如何在扩展性、缩放性、重用性上取得良好的平衡:

扩展性,如果一个持久性框架不能支持用户定义的类型,显然不是一个好的框架。

缩放性,保存和取回对象都需要耗费cpu、带宽、时间资源,哪一个消耗太多都不能接受。

重用性是建立框架的初衷,就是通过框架能够减少一些编码和测试的工作量。

持久化方案可以分为关系数据库方案、文件方案、对象数据库方案、xml数据库方案,目前主流的持久化方案是关系数据库方案,关系数据库方案不仅解决了并发的问题,更重要的是,关系数据库还提供了持久化服务之外的价值:统计分析功能。刚才我说到,凡是可以序列化的对象都可以持久化,极端的说,我们可以只建立一个表Object(OID,Bytes),但基本上没有人这么做,因为一旦这样,我们就失去了关系数据库额外的统计分析功能。

关系数据库和面向对象之间有一条鸿沟,因为两中模式不匹配,所以就存在一个OR(Object/Relations)映射问题。

3.4.2 Android 移动平台数据持久化的研究

在Google Android 平台中,数据的持久化,官方提供了四种方法,分别为:1. SharePerfrence;2. Files;3. 数据库4. 网络。

(1)Preferences从其保存数据的结构来分析,这是一个相对较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。

(2)Files。这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。1)写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这

个方法会返回一个FileOutputStream对象。

2)读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。

(3)数据库。Databases在Android API中包括了应用SQLite databases的接口,每个程序所创建的数据库都是私有的,换句话说,程序间无法相互访问对方的数据库。在程序中创建SQLiteDatabase对象,其中包含了大部分与database交互的方法,例如:读取数据或者管理当前数据。可以应用SQLiteDatabase和其subClassSQLiteOpenHelper的create()方法来创建新的数据库。

(4)Network通过网络来获取和保存数据资源,这个方法需要设备保持网络连接状态,所以相对存在一些限制。下面列出了两个用于相关操作的类:

https://www.doczj.com/doc/2a2484422.html,.*

https://www.doczj.com/doc/2a2484422.html,.*

3.5 数据的分享的研究

Google android 平台作为一个非常人性化的移动平台,其为用户有更好的用户体验,提供了许多的信息分享方式,诸如:SMS、E-mails等等,当在本系统中,考虑到用户使用的频繁程度和操作的简易程度,在基于Google Android 移动平台技术的新闻阅读器中采用了SMS来分享数据。

3.6系统的稳定性研究

3.6.1 网络连接的研究

在基于Google android 移动平台新闻阅读器中,系统所有的数据全部来自于络,在本系统中,一个良好稳定的网络将为用户提供良好的使用体验,因此,在本系统中,网络的稳定性显得非常的重要。

在Google android 移动平台中,系统提供了许多的网络连接方式,诸如:wifi、GPRS等等,但是选取何种连接方式作为网络连接方式,取决于用户所在的环境,但是不管是何种环境,建立稳定的网络连接将显得非常的重要。

在建立网络连接的时通常是采用HTTP协议来进行连接的,而HTTP协议有俩种方式,post和get方式。POST方法发送数据的时候将更加灵活,你可以发送二进制数据,甚至可以实现对象的序列化。而使用GET方式发送数据的时候我们只能把数据在URL中发

送出去,如果参数过多则很不方便,还要受到URL长度的限制,因此在J2ME联网中我们推荐HTTP协议的POST方式。

3.6.2 SDcard 的检查

在基于 Google android 移动平台新闻阅读器中,数据的持久化采用了SQLite,而数据库的存放位置则是SDCard 上,但是在用户使用本系统的时候,可能因为其他原因需要将自己的SDcard 拨出或者由于硬件原因 SDcard无法使用,此时当如果不做任何处理,直接使用本系统,则会发现程序会crash,因此为了保证系统能正常的使用,在程序运行前需要对SDCard做个判断,则程序运行时,则对系统进行监听,当发现SDcard 被拨出的时候,则做出相应的处理。

在系统运行前,将往SDcard中写一个文件,如果写入成功说明,SDcard存在且状况良好,若写入不成功,则说明了SDcard不存在,或者SDcard 出现了故障。在系统运行时,将在程序中注册一个监听器,当SDcard拨出或者出现不可用的状况时,系统将发出一个广播,当本系统接收到该广播时,则会出现相应的操作。

3.7 小结

本章主要从RSS 技术的研究、SAX解析算法的研究等多方面介绍了基于Google android 移动平台下的新闻阅读器中使用到的关键技术。通过,对这些技术的研究,使笔者对开发基于Google android 移动平台下的新闻阅读器有了更深的认识,也对开发该系统有了一个全局上的了解,对以后的开发研究起着向导性的作用。

第4章基于Google android 移动平台技术的新闻阅读器的分析与

实现

4.1问题的提出

4.1.1 需求分析

(1) 系统开发背景。

在信息高速发展的今天,人们对信息非常的重视,希望能随时随地的获取即时更新的信息。而新闻阅读器刚好满足人们的要求。在传统的平台如:IPhone,有许多类似的程序,都受到了用户的好欢迎。通过武汉某公司在Google android market 上面的程序的调查,发现关于信息方面的程序普遍受到广大用户的欢迎。因此本系统将能满足人们对信息的需求。

(2) 系统功能的描述

1)频道的切换:

用户能按照自己的需求来切换自己所需要的频道。

2)新闻的阅读:

当用户打开一个新闻的时候,用户能准确无误并且方面的读取到新闻的内容。

3)新闻的收藏:

当用户觉得某一个新闻有趣的时候,用户能将其添加到自己所喜欢的新闻列表中。

4)新闻的更新:

当RSS更新以后,程序能做相应的更新,能与网络上的内容保持一致性。做到即时更新。

5)新闻的分享:

当用户认定某一条新闻比较有趣的时候,可用与别人进行分享。

(3) 系统数据流图

相关主题
文本预览
相关文档 最新文档