毕业设计论文 android_RSS阅读器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论文题目基于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)
参考文献 (32)
第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:提供一些类管理多种音频、视频的媒体接口。
:提供帮助网络访问的类,超过通常的.*接口。
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,其调用方式如下:
<TextView…….>
</ TextView >
但是当使用自定义控件的时候,其调用方式就与其有很大的区别。
在自定义控件中,其调用的形式是通过命名空间的形式来进行调用的。
如,在基于Google Android 移动平台的新闻阅读器中,调用自定义控件的方式如下:
<com.baina.viewtools.TabController
.......
>
</ com.baina.viewtools.TabController >
3.4 数据的持久化研究
3.4.1数据持久化的意义
持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
持久化是一种对象服务,就是把内存中的对象保存到外存中,让以后能够取回。
需要实现至少3个接口:
void Save(object o) 把一个对象保存到外存中
Object Load(object oid) 通过对象标识从外存中取回对象
bool Exists(object oid) 检查外存中是否存在某个对象
为什么需要持久化服务呢?那是由于内存本身的缺陷引起的:
内存掉电后数据会丢失,但有一些对象是无论如何都不能丢失的,比如银行账号,遗憾的是,人们还无法保证内存永不掉电。
内存过于昂贵,与硬盘、磁带、光盘等外存相比,内存的价格要高2~3个数量级,而且维持成本也高,至少需要一直供电吧。
所以即使对象不需要永久保存,也会因为内存的容量限制不能一直呆在内存中,需要。