基于Android平台的Phonegap研究-软件工程动漫方向毕业论文_第1页
基于Android平台的Phonegap研究-软件工程动漫方向毕业论文_第2页
基于Android平台的Phonegap研究-软件工程动漫方向毕业论文_第3页
基于Android平台的Phonegap研究-软件工程动漫方向毕业论文_第4页
基于Android平台的Phonegap研究-软件工程动漫方向毕业论文_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

滨江学院毕业论文(设计)题目基于Android平台的Phonegap研究 院系计算机系专业软件工程(动漫)学生姓名尤新媛学号20112359050指导教师耿焕同职称教授二一五年五月十三日声 明本人郑重声明:1、 持以“求实、创新”的科学精神从事研究工作。2、 本论文是我个人在导师指导下进行的研究工作和取得的研究成果。3、 本论文中除引文外,所有实验、数据和有关材料均是真实的。4、 本论文中除引文和致谢的内容外,没有抄袭其他人或其他机构已经发表或撰写过的研究成果。5、 其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。作者签名:日期: 目 录1.绪论21.1课题研究背景21.2 国内外研究现状21.3 研究内容22. PhoneGap开源平台研究22.1 PhoneGap总体分析22.1.1 PhoneGap的设计模式22.1.2 PhoneGap的类关系22.2 PhoneGap启动调用过程分析22.3 PhoneGap的Javascript调用API过程分析22.4 PhoneGap的Javascript接口分析(PhoneGap.js)23. 基于PhoneGap的rss阅读器系统系统分析23.1 所用技术需求分析23.1.2 HTML5技术23.1.3 JavaScript介绍23.1.4 CSS技术介绍23.2 系统功能分析23.2.1 首页展示模块功能分析23.2.2 设置模块功能分析23.2.3 新闻阅读模块功能分析24.系统设计与实现24.1 开发平台搭建24.2 首页模块设计与实现24.3 设置模块设计与实现24.4 新闻阅读模块设计与实现25.系统展示25.1 首页展示25.2 管理界面展示25.3 新闻阅读展示2参考文献26.总结与展望错误!未定义书签。6.1 总结错误!未定义书签。6.2 展望错误!未定义书签。基于Android平台的PhoneGap研究尤新媛南京信息工程大学滨江学院计算机系,南京 210044摘要:针对现有移动应用开发平台开发的应用可移植性差等问题,本文提出了利用跨平台开发工具PhoneGap,开发实现一款基于Android平台的PhoneGap应用。本论文的研究是基于Android平台上的PhoneGap的功能特性,基本技术原理以及它的缺点。再研究了这些特征后在此基础上设计出一个阅读器,实现能在手机上订阅网易以及搜狐等门户网站的RSS新闻,达到移动客户端个性化订阅项管理的目的,使用者可以根据自己的兴趣爱好来选择想订阅的新闻及退订它们,极大程度上满足使用者的个性化阅读需求。关键词:Android;PhoneGap;应用Study of Phonegap based on Android platformYouxinyuanDepartmnet of Computer,Binjiang College,NUIST,Nanjing 210044,ChinaAbstract:For the application of existing mobile application development platform for the development of poor portability, using a cross platform development tool phonegap, to develop and implement a phonegap application based on the Android platform is put forward in this paper. The research of this thesis is the functional properties of Android platform based on PhoneGap technology, the basic principle and its disadvantages. Researches on the design of these characteristics on the basis of a reader, to achieve on the phone subscription Netease and Sohu RSS news, to mobile clients personalized subscription management, the user can according to their own interests and hobbies to choose to subscribe to the news and unsubscribe from them, to a great extent to meet users personalized reading needs.Key words:Android; PhoneGap; application1绪论1.1课题研究背景由于移动设备的普及,很多的商家看到了移动终端设备的发展前景。特别是3G、4G 的发展,移动设备硬件的升级,对于智能终端的消费有了质的提升,并且有与普通 PC“一比高下”的趋势。由于移动设备的多样化和保留竞争的主动权,多家商家通过各种方式向大众推广自己的智能终端平台,当前的移动智能终端平台出现繁荣的现象。其中Nokia 的 Symbian、Apple 的 iOS、Google 的 Android、RIM 的 BlackBerry、微软的 WindowsPhone 等占了大部门智能平台的市场份额。但是它们的所占的比例每年都在变化中,由于 UI 设计美观性和系统的可操作性,iOS 和 Android 正在蚕食其它智能平台。然而,由于市面上的移动平台大多数之间是不能兼容的,所以想要实现跨平台的软件开发操作就需要寻找一套标准的接口。例如,Symbian 使用 C/C+、iOS 使用 Object C、Android 使用 Java、BlackBerry 使用 Java(与 Android 的接口不一样)、Windows Phone 使用 C#,它们近乎是没有办法两者融合的,如果都采用 Java 接口的 BlackBerry 和Android,它们的 API 接口也不相同,要是想开创出一套新型的应用,必须在每个平台调用各自的原生 API。智能设备的普及,移动平台的App也得到大力推广。据今年年初的报告, Android 应用商店的软件数量达到 45 万款,可是还是落后于苹果应用商店的 50 万款。全世界每天都会激活近85万部安卓设备,使得Android 应用每月的下载量突破 10 亿,我们可以设想一下这会是一个多么庞大的数字,全球 Android 设备总数居然就高达 3 亿。而 iOS 设备已经超过 3.3 亿部。这么庞大的市场,称为众多移动厂家逐利的方向,铺天盖地的移动应用采用工厂式的复制,从一个平台复制到其它平台。而且如果推广的时间晚了,竞争对手势必会复制并推广到其它平台上。由于平台如此之多,如果没有跨平台的应用开发工具,那工程量得多大呢?很多中间件厂商为此不断努力,突发奇想出了跨平台概念,例如 REXSEE 公司首先使用 HTML5 + JavaScript +CSS3 ,制造出的移动中间件产品 EMS 正在尝试着进入市场。但是中间件的形式对于访问本地文件有很大的局限性。以上都是当前面对的问题,为了解决这些问题,做出这篇论文研究PhoneGap这一当前跨平台开发工具的发展状况。并开发实现一款基于Android平台的PhoneGap应用。1.2 国内外研究现状PhoneGap 是在 2009 年由加拿大的 Nitobi 公司首先开发,而它的 1.0 版本是在 2011年发布,因此对于 PhoneGap 的研究,国内外研究较少。因此国内外对于 PhoneGap 的研究状况主要是从官方主页和一些网站中获取。从概念上说,PhoneGap 是一个快速开发平台,它基于HTML,CSS,JavaScript,为移动应用程序的创建提供开发平台。开发人员可以使用该框架,在此基础上采用传统的 Web 开发技术(HTML+CSS+JavaScript),完成一系列UI和正在开发的应用的程序逻辑。它使开发者能够利用iPhone,Android,Palm,Symbian,WP7,WP8,Bada和Blackberry智能手机的核心功能,这些功能非常广泛大至定位功能,小至手机通讯录,闹铃,音乐等,除此之外PhoneGap还拥有许多的插件,根据开发者的个人需要可以进行调用。目前,PhoneGap 为许多的移动平台提供了技术上的支持,不过如图 1-1 所示,但是由于当前技术有限和竞争的影响,PhoneGap 并不能够覆盖移动平台上所有的功能点,在这一方面有待于开发者的不断改进和完善。图1.1 PhoneGap 框架对当前主流移动平台的支持细节目前 PhoneGap 在应用体验方面还有诸多不足。下面列出它的几点不足:A. 在它的性能上,进行正常操作时反应速度平稳,但进行复杂而反复的操作时,它的响应会变慢。B. 在它性能的稳定性,资源的占用方面,如果开发者频繁的进行手动操作会导致phonegap响应速度变慢,内部不能处理好释放内存的问题,内存容量不断增大,甚至会引起应用的 Crash。C. 对于多媒体应用接口不足,对于本地和网络多媒体播放还没有形成一个雏形。1.3 研究内容本项目的是研究基于Android平台上的PhoneGap的功能特性,基本技术原理以及它的缺点,并在此基础上设计和实现手机订阅网易以及搜狐等门户网站的RSS新闻,达成移动客户端多样化订阅项管理,使用者们各有喜好,他们完全根据自己的兴趣爱好自由的订阅新闻及退订,这样的一个新闻阅读器能够满足使用者的个性化阅读需求。2. PhoneGap开源平台研究对于 Nitobi 公司开发的 PhoneGap 移动跨平台开发工具框架,并不是唯一的一种跨平台框架。由于 PhoneGap 采用标准的 HTML、Javascript 和 CSS,以及它是开源的,可以实现跨平台的操作,因此本论文才以 PhoneGap 为基础开发多媒体扩展框架,研究并制作出跨移动平台的媒体扩展的 Javascript 接口。由于 PhoneGap 是最近流行的开源跨平台开工具,对于PhoneGap 分析的论文并不多,因此本论文在第二章中深入剖析 PhoneGap 的运作原理及其调用过程。2.1 PhoneGap总体分析PhoneGap是使用了许多不同的开发技术例如,html5,CSS,JavaScript制造的Web来实现跨平台的,它是 Javascript 调用本地 API 的一个桥梁,它负责把外部的 Javascript 调用转化为内部系统 NativeAPI 的调用。因此决定 PhoneGap 的关键功能包括两个方便:对外 Javascript 处理和根据 Javascript 请求对内的本地 API 的调用。2.1.1 PhoneGap的设计模式在实际的设计过程中,PhoneGap 采用工厂模式,通过使用本地资源 API 的类统一延展到抽象类 Plugin,而抽象类实现 IPlugin 接口。Plugin 抽象类主要是要让派生类实现 execute函数,完成设计的功能。例如 Capture 继承 Plugin 类,并实现它的 execute 函数,完成调用本地 Capture 的功能。而其他的功能类同样是使用此种方式完成的。PhoneGap 采用PluginManager 管理继承自 Plugin 的所有类,根据 DroidGap 的 WebChromeClient 传递过来的 Javascript 请求参数,确定指定的调用 NativeAPI 类。PluginManager 采用 Plugin.xml文件注册不同的 Native API 类,当 Javascript 调用本地 API 时,PluginManager 从Plugin.xml 列表中寻找相对应的本地调用。2.1.2 PhoneGap的类关系对于外部如何调用 Native API , PhoneGap 在 Android 平台使用抽象类PhoneGapActivity,该类继承自 Android 的 Activity 类,Activity 是 Android 平台 UI 与用户交互的类,用户的触摸动作等都被它捕获并处理。而PhoneGapActivity继承自Activity,主要是定义 PhoneGap 对外部 Javascript 触摸动作的响应,从而把调用导向PluginManager,让 PluginManager 去决定调用哪个本地的 API,至此,完成整个 Javascript调用本地 API 的外部过程。PhoneGap 最后实现了 DroidGap 类,它继承自PhoneGapActivity 抽象类。DroidGap 也是继承自 Android 的 Activity,它负责处理界面与用户的交互功能。它在类中定义 WebView 子控件,WebView 负责加载并渲染 HTML页面,而把 Javascript 的触发动作和事件等,交给 WebChromeClent 和 WebViewClient去实现。在 DroidGap 中定义 GapClient 和 GapViewClient 分别继承 WebChromeClent 和WebViewClient,它们两个类重载 WebView 界面上的 Javascript 动作,例如用户点击Javascript 的 Alert 函数时候,则触发 GapClient 的 onJsAlert 的动作,GapClient 响应该弹出窗口的动作,弹出 Android 本地的 AlertDialog 窗口。而对于 Javascript 关于 NativeAPI请求的时候,则是触发 GapClient 的 onJsPrompt 事件,在 onJsPrompt 事件处理中,把从Javascript 传递过来的调用参数分析后传递到 PluginManager 中,并调用继承 Plugin 的对应的子类。上述的分析主要是从外部 Javascript 和内部处理调用 Native API 出发,详述整个处理过程和涉及的类。这并不是 PhoneGap 的全部,但是它们构成了 PhoneGap 的核心框架。PhoneGap 的框架还包括平台事件、文件操作、网络管理等,它是 PhoneGap 框架不可或缺的功能,也是一个完整平台的一部分。它们的关系如图 2.1 所示。图2.1 PhoneGap 的总体类图2.2 PhoneGap启动调用过程分析PhoneGap 的启动调用过程主要分三个步骤:Javascript 的调用、外部 Activity 的继承和 PhoneGap 内部的响应过程。如图 2.2 所示,PhoneGap 的启动调用过程都是经过装载 Html 和 Javascript 的外部的 Activity,然后通过 WebView 的触发事件导向内部的PhoneGap 的处理服务,最终通过 XHR(XmlHttpRequest)或者 Polling(轮询方式)的PhoneGap 内置响应服务线程,处理调用事件。这三个步骤共同构成 PhoneGap 的启动调用过程。而 PhoneGap 的 CallbackServer 服务是整个启动调用过程的重点。它不断的处理外部请求,通过 FIFO 先进先出的工作模式,处理不同的请求。下面详细分析这三个步骤。步骤一,Javascript 的调用。PhoneGap 框架提供一个相对完整的 PhoneGap 调用本地 API 的 文件,该文件主要包括两个方面:定义 PhoneGap 的对象和利用PhoneGap 对象构造调用 Native API 的功能对象,例如 Media 对象处理 PhoneGap 的 Media类。在 HTML 页面中需要先加载 PhoneGap 的 Javascript 文件,然后再添加document.addEventListener()等待监听事件,如果 PhoneGap 的 Javascript 加载成功,则开始调用 PhoneGap.js 中的 API。步骤二,外部 Activity 的继承。外部使用 PhoneGap 平台框架,则需要先建立一个继承 DroidGap 的 Activity。DroidGap 是 PhoneGap 平台在 Android 之上实现 Javascript与 NativeAPI 桥接的 Activity。它的内部实现 WebView 的加载和渲染,它首先分析 Url,并在 DroidGap 的 UI 主线程加载 Url 对应的 HTML 文件。对于 Javascript 调用本地 API事件则由 WebChromeClient 的 onJsPrompt 的重载函数处理。最后把 Javascript 调用的参数传递给 CallbackServer,让它响应调用请求。步骤三,PhoneGap 内部的响应过程。当 UI 主线程加载响应的 URL 后,把 WebView添加在 UI 主线程的 ContenView 中,并处理 Activity 传递的参数,随后根据 URL 的类型决定启用 CallbackServer 的类型。CallbackServer 包括 Polling 和 XHR 两种服务,如果URL 没有显性启动哪种服务,则默认启动 Polling 服务。启动 CallbackServer 后,则开始转向初始化 PluginManager,并显示 LoadingDialog,表示 URL 正在加载中。同时创建 TimeOut 线程,观察页面加载有没有超时。最后启动 WebView 加载 URL。图2.2 PhoneGap 启动调用过程分析2.3 PhoneGap的Javascript调用API过程分析 Javascript 调用 android 的 Native API 流程是 PhoneGap 的核心,它的流程主要分成两大块:Javascript 事件的触发和捕获;GapClient 对于 WebChromeClient 的重载和处理。如图 3-3 所示,这两个方面同时构成一个内外组合,它们各自负责不相同层面的处理,由此达到有利于对 PhoneGap框架进行不相同面的修改甚至是扩展。而且 PhoneGap 构造 PluginManager 工厂模式的设计模式,用户可以直接通过把扩展的功能类添加到“工厂”里,并在 plugin.xml 进行注册,方便调用。下面分别叙述这两块的具体流程。图2.3 PhoneGap 的 Javascript 调用 API 过程分析1、Javascript 事件的触发和捕获 PhoneGap 最上层的处理,它主要是在 DroidGap 类中处理的。如下图所示,添加PhoneGap的Javascript的HTML也在DroidGap的WebView上渲染和显示,而页面的Javascript的Alert事件、Confirm事件和Prompt事件在WebView对象上触发各种事件,DroidGap 的 WebView 会添加一个 GapClient 委托来处理页面的各种 Javascript 事件,该 GapClient 是继承自 WebChromeClient 的,是属于 Webkit 的一个类。2、GapClient 继承 Webkit 的 WebChromeClient 类,它包括 onJsPrompt、onJsAlert、onJsConfirm 和 onExceededDatabaseQuota 等方法。把 GapClient 作为 WebView 的委托,当有 Javascript 调用 API 事件触发时,则会把事件传到 GapClient 对象中。GapClient 的onJsAlert 和 onJsConfirm 方法是处理 Javascript 默认的 Alert 和 Confirm 弹出窗口,在GapClient 的重载过程中,实现弹出 Android 原生的 Dialog 窗口。而对于 GapClient 的onJsPrompt 方法,它不是简单的重载 Javascript 的 Prompt 事件,而是 PhoneGap 处理Javascript 事件的关键函数。它首先对触发事件进行安全检查,然后确定事件需要如何响应。onJsPrompt 中有四种事件响应方式,第一种是调用 PluginManager 的 exec 函数,通过获取 Javascript 调用提供的 IPlugin 参数,通过参数寻找相对应的 IPlugin,然后进行对应的Plugin 动作,完成该事件。当处理完事件后,则通过 DroidGap.sendJavascript 函数返回执行后的值。2.4 PhoneGap的Javascript接口分析(PhoneGap.js)PhoneGap.js 是 PhoneGap 设计的为其它通过 Javascript 调用 Native API 的统一接口。例如 battery.js,如果想调用 BatteryListener.java 里面的函数,则必须先加载 PhoneGap.js文件里面的初始化函数,当加载 PhoneGap 的 Javascript 框架成功后,调用 PhoneGap.js的 PhoneGap.exec 函数(添加适当的参数),最后通过 Javascript 的 prompt 函数把请求导向 PhoneGap 的 Android 的后台框架中,进行处理。PhoneGap.js 包括一些主要的接口:PhoneGap.addConstructor、PhoneGap.channel、PhoneGap.addResource、PhoneGap.hasResource、PhoneGap.exec 等对外部的接口。如图2.4 所示,PhoneGap 这些公共接口,主要是向外部不同功能模块的 Javascript 文件提供标准而是用的接口。例如它的 addConstructor 是向 PhoneGap 的 javascript 框架添加注册回调函数,当 PhoneGap 初始化完之后则触发该回调函数。而 addResource 和 hasResource则是想 PhoneGap 注册声明功能模块是否已经添加到 Javascript 框架中,如果已经注册,才可以调用相应的功能函数。图2.4 PhoneGap 的 Javascript 接口分析3. 基于PhoneGap的rss阅读器系统系统分析3.1 所用技术需求分析3.1.1 Android技术介绍Android作为一类操作系统,它是基于Linux的自由及开放源代码的,大部分出现在移动设备,例如我们使用的只能手机,平时娱乐所用的平板电脑。Google公司和开放手机联盟带头领导并将Android系统开发。安卓平台由许多部分组成,它们分别是应用软件,用户界面,中间件和操作系统操作系统,采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。Linux内核工作在系统中是非常重要的,它是安卓系统的低层基础,虽然只能进行一些基本的功能;市场中很多的其他的应用软件,是各商家根据市场需求自行开发的,但在编写这些应用软件的时候都以Java作为编写的一部分。除此之外,商家们为了推广安卓系统,谷歌,OPPO,三星以及一些公司组织起来创立了开发手机联盟。Android基本框架(Android Architecture)如下:图3.1 Android Architecture (1)ApplicationsApplication Android在发布时会同时发布一个应用程序包,这个程序包是安卓的核心应用程序包,这个程序包包括了短信,邮件,联系人管理程序等。所有的应用程序都是用JAVA编写的。 (2)Application FrameWork 开发者完成相应的app开发后,可以根据需要访问API框架,这个框架是实现核心应用程序时所使用的。该API框架用来简化组件软件的重用;每一个app在发布它的功能块的同时,这个app所发布的功能块也能被另外的app程序使用(不过得遵循框架的安全性限制)。(3) Libraries库在安卓系统中包括一个使用安卓系统中各种不同组件的 C/C+ 库集。安卓应用程序通过这个库来为应用程序的开发者们提供服务。以下是一些主要的核心库:Android中的系统 C 库- 是一个由 BSD 延续来的标准 C 系统函数库( libc ),专门给基于 embedded linux 的设备制定的。媒体库- 基于 PacketVideo OpenCORE;这个C库可以录音播放,在此基础上还可以制作许多流行的视频,还有很多流行的静态图片文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 是用来管理和处理子系统的,并且可以融合几个不同的进行的应用程序,包括二D和三D,能够完美融合。 LibWebCore 它是一个新型的网页浏览器引擎,不但可以用在安卓浏览器上,还拥有可嵌入式的网页视图。 SGL - 一个内置的2D图形引擎 3D libraries - 基于OpenGL ES 1.0 APIs实现;C库能够实现硬件3D加速甚至是使用高度优化的3D软加速。 FreeType - 位图(bitmap)和向量(vector)字体显示。 SQLite 可用于安卓的全部app程序,功能丰富并且强大的数据库引擎。(4)Android RuntimeAndroid系统有一个很大的核心库,该核心库为JAVA提供编程语言核心库的大多数功能。无论是哪个个Android应用程序都是在它自身的进程中运行的,它们拥有一个完全独立的Dalvik虚拟机实例。其中提到的Dalvik是用来实现对于同时高效地运行多个VMs的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件在针对最小内存的使用做了相应的优化。同时该虚拟机是基于寄存器的,由JAVA汇编器编译所有的类,最后再通过SDK中的dx工具转化成.dex格式由虚拟机执行。Dalvik虚拟机的使用依赖于linux的一些功能,例如线程机制还有底层内存管理机制。(5)Linux内核Android 核心系统的服务依赖于 Linux 2.6 内核,例如安全性,内存进程管理,网络协议栈以及驱动模型。 Linux 内核也可以作为硬件和软件堆栈之间的硬件抽象层。3.1.2 HTML5技术超文本标记语言HTML在当前网页设计领域中是最基础的应用语言,万维网上最普通的网页形式就是使用HTML语言所编写超文本文件(或称HTML文档)。HTML语言的来源是著名的标准通用标记语言SGML(StandardGeneralizedMarkupLanguage),万维网之父TimBerners-Lee在1990年创建一个基于超文本的分布式应用系统时提出。在继承SGML语言的同时,HTML语言扬长避短,改变了SGML语言过于复杂、不利于信息传递和解析的缺点,开发了最基本的元素标记(Tags)进行超文本描述,使文本变得简化、易懂。将要显示在网页上的一些文档内容和一系列标记组成HTML文档。当使用者浏览HTML文档时,浏览器就会将这些标记翻译成它应有的含义,并且按照一定的格式,将这些被标识的文档内容呈现在浏览器窗口中。在HTML文档中有一些标记必须用“标记”开始,而以“/标记”结束,这些标记叫做“成对标记”;这些标记中有些标记并不需要去确定作用域,称之为“非成对标记”。其基本格式如下:(1)成对标记:标记参数1参数2参数3内容/标记(2)非成对标记:标记参数1参数2参数3内容一个标准的HTML文档具有如下图3.2所示的结构:图3.2 HTML基本结构而HTML5是万维网联盟(W3C)的第五次重大修改版本。在经过接近8年的研究后该规范标准终于在2014年10月29日宣布制定完成。他被W3C称为“开放的Web网络平台的奠基石”。从2012年12月至今,HTML5进行了多达近百项的修改,包括HTML和XHTML的标签,相关的API、Canvas等,同时HTML5的图像img标签及svg也进行了改进,性能得到极大地提升。HTML5具有如下特性:1)更多的描述性标签:HTML5收入了很多的描述性标签,比如用于定义头部(header)、尾部(footer)、导航区域(nav)、侧边栏(aside)等的标签,方便了开发人员的构建页面元素。2)良好的多媒体支持:解决了先前的以插件的方式播放音频、视频带来的问题,audio标签和video标签能够方便的实现应对变化。3)更强大的Web应用:HTML5提供了令人惊叹的功能,某种情况下,你甚至能够完全放弃使用第三方技术。4)跨文档消息通信:Web浏览器能够组织不同域间的脚本来交互或者是影响,但是对于可信任的脚本可能就是问题。HTML5引入了一套安全并且易于实现的应对方案。5)Web Sockets:HTML5提供了对Web Sockets的支持。6)客户端存储:HTML5的Web Storage和Web SQL Database API,可以在浏览器中构建Web应用的客户端持久化数据。7)更加精美的界面:HTML5+CSS3组合有时能够渲染出无比精美绚丽的界面效果。8)更强大的表单:HTML5能够提供有着更强大功能的表单界面控件,并且开发者使用起来非常方便。9)提升可访问性:页面的内容更加清楚明了,让用户操作时更加简单容易,体验提升。10)先进的选择器:CSS3选择器能够简单容易的识别出表格的奇偶行、复选框等,复杂的代码标记更少。11)视觉效果:属于精美界面那一块,有很多种不同的视觉效果,例如阴影、渐变、圆角、旋转等,让用户有更多视觉上与众不同的体验。3.1.3 JavaScript介绍JavaScript是由Netscape公司创造出来的一种脚本语言。为了方便推广,被定为JavaScript,然而JavaScript与java是两门不相干的语言,它们的作用也是截然不同的。作为一门独立的编程语言,JavaScript可以做的事情有很多,但它最主流的应用还是在Web上创建动态网页(即网页特效)。JavaScript在网络上应用非常广泛,几乎所有的动态网页都是用它作为脚本语言的。当前主流的AJAX也是依赖于JavaScript而存在的。另外JavaScript与Jscript也不是一门相同的语言,Jscript和vbscript是微软开发的两种脚本语言,微软,Netscape公司以及其他语言开发商以减少web开发者的兼容麻烦为目的,所以成立ECMA,这个组织是专门为脚本语言的标准和规范而制定的。ECMA制定的标准脚本语言叫做ECMAScript,JavaScript符合ECMA的标准,其实JavaScript也可以叫做ECMAScript.Jscript也ECMA的标准,但用户较少。vbscript仅局限在微软的用户,Netscape不支持。概括地说,JavaScript就是一种基于对象和事件驱动,并具有安全性能的脚本语言,脚本语言简单理解就是在客户端的浏览器就可以互动响应处理程序的语言,而不需要服务器的处理和响应,当然JavaScript也可以做到与服务器的交互响应,而且功能也很强大。而相对的服务器语言像phpjsp等需要将命令上传服务器,由服务器处理后回传处理结果。对象和事件是JavaScript的两个核心。JavaScript可以被嵌入到HTML文件中,它对用户操作做出响应时不需要经过Web服务器,使用户和网页之间可以更好的交互;既可以利用客户端个人电脑性能资源,又能够适当减小服务器端的压力,并减少用户等待时间。3.1.4 CSS技术介绍CSS是CascadingStyleSheets(级联样式表)的缩写。CSS是一种样式表语言,用于为HTML文档定义布局。比如,CSS涉及字体、颜色、边距、高度、宽度、背景图像、高级定位等方面。HTML在用于为网站添加布局效果的同时很容易被误用。可是CSS会提供了更多选择,并且更为精确、完善。当前主流的浏览器都支持CSS,级联样式表(CSS)里用到的许多CSS属性都与HTML属性相似。为HTML文档应用CSS,有三种方法可供选择。第一种是行内样式表(style属性),第二种是内部样式表(style元素),最后一种则是外部样式表(引用一个样式表文件)。CCS的基础属性有如下几种:(1)font-style设置字体font-variant设置字是否斜体font-weight设置字的高度font-size设置字的大小fontfont属性的缩写,以上的font的属性可以在这一个中全部设置以此类推,以下的属性也如此(2)Background背景属性的综合设置Margin边距属性的综合设置Padding填充属性的综合设置Border边框属性的综合设置(3)Color设置字体颜色Width宽度Height高度top距离顶端长度left距离左边长度3.2 系统功能分析本系统利用PhoneGap设计实现一个跨平台rss阅读器系统,主要有以下几个功能:目录查看功能、图片查看功能、歌曲播放功能、视频播放功能。本RSS阅读器放框架主要包括重要模块:首页展示模块、设置模块、新闻阅读模块图3.3 系统功能框架图3.2.1 首页展示模块功能分析点击图标打开该应用,应用打开后会自动进入启动的splash主题图片,经过5秒后自动进入首页,由于是用户第一次使用软件,默认是都不订阅的,而且天气也是默认为南京市,所以首页订阅会显示为空,天气显示为南京。在首页展示模块中,如果用户是第一次进入,将不显示新闻列表,用户需要自己进行订阅操作方可查看新闻。如果用户之前已经订阅了新闻,则可直接查看相应的新闻。图3.4首页模块功能分析3.2.2 设置模块功能分析 在设置模块,主要可见进行一下几个方面的设置:换肤设置、数目设置、更改连接、清空订阅、关于我们。图3.5 设置模块功能分析(1)换肤设置用户可以根据自己的喜好,对整个应用的界面进行换肤操作。本地主要包括四种皮肤:默认的浅灰色,暗灰色,羊皮纸,还有白墙皮肤。(2)数目设置(2)数目设置用户可以根据自己的需要和习惯,更改每一栏目的新闻加载的条数。(3)更改连接用户可以对当前软件的网络连接方式的进行更改。(4)管理订阅 在管理界面进行订阅或者退订。点击百度或腾讯栏目下的每一栏右侧的小文件夹图标。每一栏的右侧显示为“带绿色加号的文件夹”时说明还未订阅,然后可以添加;显示为“带红色减号的文件夹”时,说明已经订阅,根据个人需要可以退订。(5)清空订阅清空用户的数据,恢复初始化设置,可以实现用户清空本地订阅信息,从而进行新的订阅,并且防止用户想清空订阅时误按清除键,为此特别设计了一个确认删除的对话框,只有在用户按下确认清除本地订阅信息的情况下,才会清空本地数据,并反馈,使应用更加人性化。(6)关于我们 在关于我们的界面,可以显示软件的一些基本信息,可以显示开发人员的一些基本信息,可以提供开发人员的邮箱等。3.2.3 新闻阅读模块功能分析图3.6设置模块功能分析在新闻阅读模块中,用户可以阅读自己订阅过的论文,可以预览新闻,在每次进入新闻阅读时,系统将自动及时更新新闻,满足用户对新消息的需求,并且每个新闻栏目都有专门相关的一个本地关联的精致PNG图标。(1)新闻预览用户根据需要点击首页上已订阅的新闻栏目的图标,即可进入新闻预览界面,可以预览该对应栏目下的相应新闻,可以预览到标题,插图,发布时间,新闻描述信息等,以及可以点击“阅读详情”通过调用本地浏览器进入门户进行更详尽的新闻阅读。(2)新闻更新当用户点击主页上的上新闻栏目图标时,此时阅读器便已联网并更新相应栏目的新闻,如果因为网络原因加载失败,用户可以手动点击刷新按钮进行相应页面的新闻列表的刷新。如下图所示,标题栏上会有相应的栏目名称,栏目名称下面便是对应的实时更新的新闻,并且用户可以点击“更新”按钮进行自主的类表更新。(3)本地PNG图标每个新闻栏目都会设计一个相关的本地关联的精美PNG图标,这样可以使用户在根据自己的兴趣爱好的情况下去有针对性地进行订阅。并且在阅读器启动的一开始,加入了自行设计的splash的首页图片。4.系统设计与实现4.1 开发平台搭建使用PhoneGap搭建Android开发的项目整体步骤如下:1.安装android的开发环境并配置环境变量。2.安装Node.js环境并配置环境变量。3.使用npm安装PhoneGap全局环境。4.使用PhoneGap命令创建PhoneGap项目。5.将PhoneGap编译为android项目。6.将上述项目导入ADT进行后续开发。具体步骤如下:1. 安装并配置android开发环境:去下载最新版的ADT到本机,将其解压到相应的目录。接下来需要配置环境变量,将如下两个路径配置到系统PATH中:A、ADT_HOMEsdkplatform-toolsB、ADT_HOMEsdktools至此完成android开发环境的配置。2. 安装配置Node.js:下载和安装windows版本的Node.js。3. 安装PhoneGap环境:使用命令行,执行:Cmd代码 :npm install -g phonegap 该命令将从网络安装和配置phonegap全局环境,请保证网络畅通。4. 创建phonegap项目:使用命令行执行:phonegap create my-app 其中my-a

温馨提示

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

评论

0/150

提交评论