【Android论文栏目提醒】:网学会员为需要Android论文的朋友们搜集整理了毕业论文 Android开发 - 毕业设计相关资料,希望对各位网友有所帮助!
摘 要 在科技日益发达的今天,社会竞争越来越激烈,这要求人们不断的获取信息来充实自己。
这就要求人们能随时随地的了解并获取所需的信息。
与此同时,手机的功能越来越强大,将脱离传统的打电话、发短信等基本的功能,在这种情况下,新闻阅读器可以满足人们对外界信息了解的需求。
在 本系统是在
Android 平台下设计的, Google
Android 平台的 SDK 2.1 环境下,运用 Eclipse 进行开发。
论文概括的介绍了
Android 开发的流程,并重点的介绍了基于
Android 平台的 RSS 阅读器的开发过程。
论文首先介绍了课题的研究背景、研究现状和主要研究内容;然后对系统中用到的理论知识和相关技术进行了详细的阐述,包括
Android 平台的相关理论知识、
Android 环境的搭建、数据源的选取、数据的解析方法以及系统的详细实现过程。
系统选用了新浪 RSS 源以及 pull 解析方法。
系统完成以后,可以实现 RSS阅读器的基本功能,
论文阐述了具体实现方法以及相应的关键代码段。
本课题完成设计实现的系统已经试运行正常。
用户使用该系统可以方便、及时的阅读到自己感兴趣的新闻关键词:RSS 阅读器,
Android 操作系统,Pull 解析算法 Abstract Its more advanced in technology today and the social competition is more andmore fierce which requires constant access to information to people to enrichthemselves. At the same time mobile phones become more and more powerful willbreak away from traditional phone calls sending messages and other basic functions.In this case the news reader is to meet the peoples understanding of the needs ofoutside information. This system is designed in the
Android platform comes with the Google AndroidPlatform SDK 2.1 environment the use of Eclipse for development. This paperdescribes the general process of
Android development and focus on the introductionof the
Android platform-based RSS reader development process.This paper introduces the research background current situation and main contentand then describes the theoretical knowledge and related technologies used in thesystem in detail , including the theory of
Android platform building Androidenvironment the selection of data sources data analytical methods and the detailedimplementation process.The system selects Sina RSS source and Pull parsing method.After completing the system you can achieve the basic functions of RSS Reader thepaper describes the specific implementation method and the corresponding key code. The design and implementation of the system has been test run normally. Userscan easily use the system read timely news of personal interest.Keywords:RSS reader,
Android Operating System,Pull parsing method 目录摘 要.............................................................................................................................IAbstract........................................................................................................................ II1 绪论.........................................................................................................................1 1.1 课题背景 ......................................................................................................1 1.2 课题研究的目的和意义 ..............................................................................2 1.3 研究现状 ......................................................................................................32
Android 相关理论知识 ..........................................................................................6 2.1
Android 平台介绍........................................................................................6 2.2
Android 开发环境的搭建..........................................................................143 相关技术理论.......................................................................................................19 3.1 RSS 技术简介............................................................................................19 3.2 Pull 解析算法研究.....................................................................................204
Android 平台下 RSS 阅读器的详细分析
设计与实现 .......................................22 4.1
问题的提出 ................................................................................................22 4.2 解决方案 ....................................................................................................23 4.3 主要功能详细设计与实现 ........................................................................245 总结与展望...........................................................................................................39 5.1 本文工作总结 ............................................................................................39 5.2 下一步工作展望 ........................................................................................39致谢..............................................................................................................................40参考文献......................................................................................................................41 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很多在线服务。
1 5、Google 提供了基于 Eclipse 的完整开发环境、模拟器、
文档、帮助、示例等将极大推动
Android 快速的推广和发展。
基于
Android 众多的优点,围绕
Android 形成了一个移动手机联盟,主要的手机厂商几乎全部在列,而此联盟在极大的推动
Android 平台的推广和发展,在未来的几年必将大方异彩,将极大的推动整个手机操作系统甚至是互联网乃至软件行业的发展。
1.2 课题研究的目的和意义
Android 这个平台对于 Google 对于大众的意义不在于手机本身,
Android 存在的目的也不在于挑起手机操作系统之间的混战,而在于推动移动互联网产业链的迅速成型。
具有开源特性的
Android 平台打破了之前 Symbian、windows mobile 等操作
系统收取高额的授权费用的模式,使得只能手机成本大大的降低;而正是由于它开发
源代码,使得手机产生更多个性化的应用。
同时,合作方能够在这里得到利润或者创造价值,手机
软件行业得到维护协调发展。
以 Google、苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正是 Google 推出
Android 平台的意义,也是
Android平台存在的使命。
而作为
Android 平台成员之一的中国移动也投资成立了一家通讯公司,专门从事 Google 手机软件的应用以及本地化的软件的开发,比如将在Google 手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。
国内众多企业也将眼光投入到
Android 上面,并启动了相关的计划来深入的理解并发展
Android。
更多的手机软件开发企业已经或者筹备着将公司进行转型,从其方向的开发转向到
Android 的开发。
综上所述,无论是在国内还是在国外,
Android 平台对手机软件行业和移动手机平台将发挥极大地推动作用,而在未来的几年或者一段时间内,
Android 将越发的凸显自己的重要性。
基于此,我们有必要通过进行相关的研究来了解
Android 平台,来了解开发
Android 的那一大批人的先进的理念和思想,并通过 2这些来了解手机软件行业,进而了解未来无移动互联网的发展趋势,从而更好的适应时代的需要。
1.3 研究现状 本节对各大站点对 RSS 的支持情况以及现有 RSS 阅读器进行了分析和综合,提出了系统实现可以借鉴的地方。
1.3.1 各种站点对 RSS 的支持情况 目前支持 RSS 的站点主要分为下面几种:新闻资讯类站点、BSP 站点、独立博客站点、其他站点。
新闻资讯类站点指的是传统的门户网站,这类门户网站一般是站长管理式的,信息涉及非常广泛、来源比较集中、权威性比较高,一直受到传统互联网用户的青睐。
用户可以从这一类网站了解到各种需要的综合信息。
几大典型的例子有新浪门户、搜狐门户和腾讯门户等等。
为了迎合用户的需要这类网站一般也有推出 RSS 订阅功能,这类网站的信息更新非常频繁、信息量也比较巨大,因此,用户不怎么倾向于订阅此类网站。
BSP 站点,即 Blog service provider(博客服务提供商),这类站点为用户提供博客服务,除了提供基本的博客添加、评论之外,大部分 BSP 都会针对某个博客提供 RSS 订阅功能。
比如新浪博客和博客园等等。
这类网站在 RSS 信息更新方面的特点是:更新相对不频繁、也不规律。
但是用户比较倾向于订阅这类网站,因为许多博客的话题是针对某一特定领域的,而用户的阅读倾向往往也是针对某一领域的。
独立博客站点,指的是博主自己申请域名,自己开通并且自己维护的博客。
这类博客站点一般使用已有的博客系统(比如
wordpress),而这些博客系统一般都会提供 RSS 订阅功能。
在信息方面,独立博客一直是 IT 从业人员比较青睐的网站,比如月光博客、小众软件等等。
在国外,这一类博客站点更加流行。
其他站点,指的是迎合用户特殊需求的站点。
这类站点提供了某些定期更新 3的特殊信息,比如天气预报信息,学校
就业信息,学院通知信息。
这类信息不适合所有用户,但就算如此,提供 RSS 订阅服务能使得关心它的用户一劳永逸。
这类信息更新的频繁度往往没有什么规律。
对 RSS 源站点信息,我们总结如表 1.1 所示: 表 1.1 各种 RSS 源网站情况对比 RSS 源站点 用户群体 RSS 支持程度 更新频繁程度 新闻门户 大众用户 一般 频繁 BSP 站点 专注某个领域的用户 好 不频繁 独立博客站点 专业用户 非常好 不频繁 其他站点 具有特殊需求的用户 不好 不确定 1.3.2 移动阅读器实现方案离线阅读器 离线 RSS 阅读器主要指的是用一个客户端软件进行 RSS 阅读,例如浏览器自 (1)通过本地带的 RSS 阅读,以及桌面 RSS 阅读器。
这类阅读器的主要优点是:缓存将内容呈现给用户,使得 RSS 阅读不受
网络影响。
(2) 响应速度快,加载 (1) RSS 信息的获取由客户端完成,增加了客户端速度快。
它的主要缺点是:的处理负担。
(2)由于订阅信息都在本地,因此不便于用户转移数据。
对手机来说,计算能力和内存空间属于稀缺资源,因此离线 RSS 阅读器实现
方案并不适合手机。
此外,离线阅读器的实现方案和互联网的发展趋势也是背道而驰的。
在线阅读器 在线阅读器大多是通过浏览器访问的一类阅读器,对于在线阅读器来说,各个订阅网站信息的获取是由提供服务的一方完成的,客户端只负责接收服务端返回的数据并且正确显示。
在线阅读器的特点是依靠网络、极大化的减轻客户端的负担、便于用户在不同客户端使用软件及其数据等等。
随着
web2.0 的发展,一些在线 RSS 阅读器已经进入人们的视野,典型的范 4例有 Google 阅读器、鲜果网、抓虾网和哪吒网,这些网站也相继都推出了各自的手机版。
这些手机版的 RSS 阅读器都是我们需要借鉴的。
但是,对普通用户来说,RSS 是个比较难以理解的东西(尤其是在国内),因此这类手机阅读器的普及是个重大难题,我们的
工作重点,就是屏蔽 RSS 阅读器的技术细节,给用户提供直观的、全面的、易懂的服务。
5 2
Android 相关理论知识2.1
Android 平台介绍 2.1.1
Android 系统简介
Android 一词的本义指“机器人”,同时也是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名称。
它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。
目前,最新版本为
Android 2.4 Gingerbread 和
Android 3.0Honeycomb。
Google
android 平台的系统构架图如图 2.1 所示: 图 2.1 Google
android 平台的系统构架图 6 虽然
Android 是 Google 公司推出的产品,但更贴切的说法应该是开放手机联盟的产品。
开放手机联盟是由大约 30 家公司组成的联盟,致力于将“更好的”和“开放的”手机推向市场。
其网站上的一句话很好的阐述了这一点:“
Android是本着成为第一个开放、完整、
免费、专门针对移动设备开发的平台这一目标,完全从零开始创建的。
” 2.1.2
Android 系统架构应用程序
Android 以
Java 为编程语言,从接口到功能,都有层出不穷的变化,其中Activity 等同于 J2ME 的 MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的 Activity 就是在 foreground(前景)模式,背景运行的程序叫做 Service。
两者之间通过由 ServiceConnection 和 AIDL 连结,达到 复 数 程 序 同 时 运 行 的 效 果 。
如 果 运 行 中 的 Activity 全 部 画 面 被 其 他 该Activity 取代时, Activity 便被停止 , (stopped) 甚至被系统清除(kill)。
View 等同于 J2ME 的 Displayable,
程序人员可以通过 View 类与“XML layout”档将 UI 放置在视窗上,
Android 1.5 的版本可以利用 View 打造出所谓的Widgets,其实 Widget 只是 View 的一种,所以可以使用
xml 来设计 layout,HTC的
Android Hero 手机即含有大量的 widget。
至于 ViewGroup 是各种 layout 的基础抽象类(abstract class),ViewGroup 之内还可以有 ViewGroup。
View 的构造函数不需要再 Activity 中调用, 在 但是 Displayable 的是必须的, Activity中,要通过 findViewById来从 XML 中取得 View,
Android 的 View 类的显示很大程度上是从 XML 中读取的。
View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个 View 都可以
注册一个 event listener,例如:当 View 要 处 理 用 户 触 碰 ( touch ) 的 事 件 时 , 就 要 向
Android 框 架 注 册View.OnClickListener。
另外还有 Image 等同于 J2ME 的 BitMap。
中介软件 7 操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚 。
拟机(Virtual Machine) Bionic 是
Android 改良 libc 的版本。
Android 同时包含了 Webkit,所谓的 Webkit 就是 Apple Safari 浏览器背后的引擎。
Surfaceflinger 是就 2D 或 3D 的内容显示到屏幕上。
Android 使用工具链Toolchain为 Google 自制的 Bionic Libc。
Android 采用 OpenCORE 作为基础多媒体框架。
OpenCORE 可分 7 大块:PVPlayer、PVAuthor、Codec、PacketVideo MultimediaFrameworkPVMF、Operating System Compatibility LibraryOSCL、Common、OpenMAX。
Android 使用 skia 为核心图形引擎,搭配 OpenGL/ES。
skia 与 LinuxCairo 功能相当,但相较于 Linux Cairo skia 功能还只是雏形的。
2005 年 Skia公司被 Google 收购,2007 年初,Skia GL 源码被公开,目前 Skia 也是 GoogleChrome 的图形引擎。
Android 的多媒体数据库采用 SQLite 数据库系统。
数据库又分为共用数据库及私用数据库。
用户可通过 ContentResolver 类(Column)取得共用数据库。
Android 的中间层多以 Java 实现,并且采用特殊的 Dalvik 虚拟机(Dalvik Virtual Machine)。
Dalvik 虚拟机是一种“暂存器 (Register Based)的 Java 虚拟机,变量皆存放于暂存器中,虚拟机的指型态”令相对减少。
Dalvik 虚拟机可以有多个实例(instance) 每个
Android 应用程序都用一个自属的 Dalvik 虚拟机来运行,让系统在运行程序时可达到优化。
Dalvik 虚拟机并非运行 Java 字节码(Bytecode),而是运行一种称为.dex 格式的文件。
硬件抽象层 (硬件抽象层)
Android 的 HAL 是能以封闭源码形式提供硬件驱动模块。
HAL的目的是为了把
Android framework 与 Linux kernel 隔开,让
Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Androidframework 的开发能在不考虑驱动程序实现的前提下进行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 .so 档的形式存在。
Stub 向 HAL“提供”操作函数(operations),并由
Android runtime 向 HAL 取得 stub 的 再operations, callback 这些操作函数。
(代理人) HAL 里包含了许多的 stub 。
8Runtime 只要说明“类型”,即 module ID,就可以取得操作函数。
编程语言
Android 是运行于 Linux kernel 之上,但并不是 GNU/Linux。
因为在一般GNU/Linux 里支持的功能,
Android 大都没有支持,包括 Cairo、X11、Alsa、FFmpeg、GTK、Pango 及 Glibc 等都被移除掉了。
Android 又以 bionic 取代 Glibc、以 Skia 取代 Cairo、再以 opencore 取代 FF
mpeg 等等。
Android 为了达到商业应用,必须移除被 GNU GPL 授权证所约束的部份,例如
Android 将驱动程序移到userspace , 使 得 Linux driver 与 Linux kernel 彻 底 分 开 。
bionic/libc/kernel/ 并非标准的 kernel header files。
Android 的 kernelheader 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
目前
Android 的 Linux ke.