好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

关于跨平台移动应用开发框架的探索 -- PhoneGap.doc

13页
  • 卖家[上传人]:壹****1
  • 文档编号:403859525
  • 上传时间:2023-02-14
  • 文档格式:DOC
  • 文档大小:397KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 关于跨平台移动应用开发框架的探索 -- PhoneGap背景移动互联时代的高速开展近年来,随着硬件设备和系统平台的不断开展,手持移动设备的计算能力得到了显著的提高,智能 和平板电脑已经越来越多地出现在人们的日常生活之中,加之诸如重力感应、GPS 模块、蓝牙模块、WIFI 接入等特色功能的支持,移动平台的应用领域必将融入并逐渐取代传统的计算机设备;同时,互联网早已深入到了人们生活和工作中的每一个角落,随着新一代 3G 网络技术的普及与开展,基于传统 2.5G 网络的 WAP 应用时代也会逐渐地退出历史舞台在此背景下,移动互联时代便应运而生,所谓移动互联即是指智能的手持移动设备与互联网在高速开展中,相互结合、相辅相成而造就的时代产物移动应用软件开发的现状再好的系统平台都需要有软件来支撑,如果把移动互联网比作新互联时代的骨骼,那么运行于移动平台之上的应用软件就好比血肉一样,是真正表达其价值的载体移动应用软件作为直接与用户交互的窗口,已经逐渐引起了厂商和开发者的重视,开发出具有高认可度的移动应用软件,已经成为了移动平台占据传统市场的主要手段在多厂商的利益竞争下,当前的智能终端平台呈现出了“百家争鸣〞的现象。

      从图 1 中的统计数据可以看出,当前的移动终端系统呈现出较为零散的割据状态,其中,Nokia 主推的 Symbian、Apple 的 iOS、和 Google 的 Android,分别占据了较大的市场份额然而,由于当前主流的移动平台之间互不兼容,针对不同的移动平台系统,当前并没有可以兼容的应用开发接口和语言;当前,使用 C/C++ 的 Symbian、使用 Object C 的 iOS 和使用 Java 的 Android 应用开发技术,几乎是完全无法融合的图 1. 近两年移动平台市场占有率的统计数据 不难发现,这种开发技术的不兼容性,将直接为移动平台应用的开展带来重大的阻碍从应用开发的角度来说,同样的程序逻辑却不得不在多个平台上使用不同的语言和 API 重复编码;从代码维护的角度来说,针对同一个工程需要同时维护多份代码,一旦程序逻辑发生变化,将导致大规模的代码修改与回归测试;另外,从经济角度来说,要同时开发和维护多个平台的应用程序,将花费企业巨大的人力和时间本钱回页首主流跨平台移动应用开发框架的比拟为了解决上述问题,跨平台的移动应用开发技术逐渐地引起了开发者的关注不难看出,面向不同的终端平台和开发语言,要实现应用开发的兼容性,其实只有两条可行之路:其一是采用不同平台都认可的标准技术,其二是采用已被成熟使用的现有技术。

      然而无论采用哪一种方式,当前跨平台应用卡法所缺少的,都是作为平台底层 API 与通用开发技术中间件的跨平台移动应用开发框架随着人们对跨平台应用开发研究的不断深入,当前市场上已出现了假设干致力于跨平台开发的产品级框架其中,PhoneGap、Titanium 和 Rhodes 便是当下开展较为成熟的三款开发框架为了更好地了解当前的跨平台开发框架技术,本文对其三者从如下几个方面进行了比照:目标上述三款框架产品都将目标明确地定位为“一次开发,运行于任何移动终端平台〞这就意味着其必须跨越平台特性和编程语言的界限,可以与任何平台的 SDK API 进行无差异的交互支撑平台Titanium 框架目前只支持 Android 和 IPhone 平台,而 PhoneGap 和 Rhodes 那么均声称支持当前大多数的主流平台,图 2 描述的是 PhoneGap 开发框架当前的兼容平台图 2. PhoneGap 框架的兼容平台 编程语言PhoneGap 和 Titanium 框架均采用了 HTML + CSS + JavaScript 作为其编程语言,同时对 HTML5 和 CSS3 提供了相应的支持;而 Rhodes 那么使用 Ruby + Rails 作为其编程根底,使用 Ruby 来实现移动应用的逻辑。

      不难发现,上述三者都选择了成熟的脚本和 Web 技术作为实现平台兼容的入手点,正如前文所述,这也是目前实现跨平台开发的唯一可行之路实现原理在三者之中,PhoneGap 和 Titanium 框架的实现原理较为相似,编程人员通过使用 CSS 和 HTML 来设计程序 UI 并控制程序的逻辑;同时,使用 JavaScript 来调用 API 与对应平台的 SDK 进行交互,以启动 的 GPS、震动、重力感应等功能使用 PhoneGap 和 Titanium 编写的程序会被打包并安装到 上,在应用运行时载入到 的浏览器控件中解析执行而 Rhodes 那么依赖于 Ruby + Rails 的 Web 框架,在 内部构建了一个完整的 Web App server 环境,使用 Rhodes 开发的应用可以像传统 Web 效劳器一样,接收并处理用户的操作事件,并访问对应平台的 SDK API开源/商业化在上述三种框架中,只有 PhoneGap 是纯粹的开源产品,Titanium 目前还处于其产品化的 Beta 阶段,其正式版本将作为商业化的框架产品而发布,Rhodes 的开展较上述两者那么相对成熟一些,它也是商业化的框架产品。

      其他APhoneGap 和 Titanium 有很多相似之处,但相比 PhoneGap,Titanium 除了提供与 SDK 相对应的功能 API 外,还对相应平台 UI API 提供了一定的支持因而,使用 Titanium 可以开发出更加接近于本地应用的用户体验,但也正因为如此,Titanium 对平台的兼容性不及 PhoneGap 的开展现状其他BRhodes 得益于成熟的 Ruby/Rails 技术及其在移动平台内部构建的相对完整的 Web App 环境,Rhodes 框架天生具备了更好的 Rest Web services 的能力,可以方便地与后端效劳器进行交互;但是,这种基于 Web App 的方式来访问平台 SDK API 的能力也有一定的局限性,如不能良好的支持音频和视频的播放等另外值得一提的是,跨平台的移动应用开发框架均着眼于解决不同平台之间应用开发的兼容性问题,因而讨论某一框架的优劣,不应拿诸如使用该框架是否能开发出 3D 游戏这样的标准来对其进行考量通过上文的比拟,笔者认为开源框架 PhoneGap 的优势更为均衡,具有更好的开展前景因而,下文将针对 PhoneGap 框架进行详细的介绍,并通过实例来讲解如何使用 PhoneGap 框架为 Android 平台开发简单的应用。

      回页首PhoneGap 框架简介从概念上说,PhoneGap 是一款完全开源的跨平台移动应用开发框架通过使用 PhoneGap 框架,开发人员可以采用传统的 Web 开发技术〔HTML + CSS + JavaScript〕来实现待开发应用的 UI 和程序逻辑在开发的过程中,PhoneGap 框架提供了一系列的 API 供开发人员在 JavaScript 代码中调用;通过这些 API 调用,PhoneGap 程序就可以与相应移动平台的 SDK API 进行交互,以调用运行平台本地的功能在运行时,使用 Web 技术编写的资源文件〔html/css/js〕会被打包为类似“镜像文件〞的形成发布到待运行平台之中,在运行时由浏览器解析执行,从而实现了一次开发,跨多平台运行的目的当前,PhoneGap 已经对几乎所有的主流移动平台提供了支持,不过如图 3 所示,受到来自技术和商业竞争的影响,PhoneGap 在每个平台上都有假设干的功能点无法覆盖,有待于进一步完善图 3. PhoneGap 框架对当前主流移动平台的支持细节 回页首PhoneGap 开发实践使用 PhoneGap Build 创立应用本节介绍的是一种相对简单的使用 PhoneGap 开发跨平台应用的方法。

      在 PhoneGap 的官方网站中,提供了一个叫做 PhoneGap Build 的 Web 应用,在 PhoneGap Build 的页面中,用户可以将使用 Web 技术〔html/javascript/css〕开发好的应用上传,PhoneGap Build 会为其支持的平台各自打包一份可安装的应用程序,开发人员可以选择所需的平台,导出相应的应用程序在本节中,我们先编写一个简单的 Hello World 程序,并使用 PhoneGap Build 来将其打包为 Android 平台的应用程序需要说明的是,由于当前 PhoneGap Build 尚处于 Beta 阶段,使用者需要注册并提出 Beta 测试申请,申请者会在一周之内获得一个 Beta Code,只有使用 Beta Code 登陆的用户才能使用该功能翻开 PhoneGap Build 的页面,我们可以看到如图 4 所示的操作界面开发人员可以使用 git 或者 svn 的 url 地址来指向一个已开发好的 Web App;此外,我们也可以将 HTML、CSS 和 JavaScript 文件放在同一个文件夹中,将其统一打包为 zip 文件后上传;最简单的,我们可以直接上传一个名为 index.html 的文件,将相应的程序逻辑都写在该文件中,本节的 Hello World 程序便采用了该方式,感兴趣的读者可以实践一下下文的操作步骤。

      图 4. PhoneGap Build 的操作界面 1. 首先,我们可以使用本地的文本编辑工具,创立一个名为 index.html 的文件,并将清单 1 中的 html 代码参加到该文件中并保存清单 1. 创立一个名为 index.html 的文件 PhoneGap

      Hello World!

      Hello PhoneGap!

      2. 如下图 5 所示,我们从本地选择并上传已编辑好的 index.html 文件;同时,我们可以为自己的应用起一个名字,例如“Hello World〞,点击 Create 按钮进入下一页图 5. 上传已创立的 index.html 文件 3. 在成功上传之后,PhoneGap Build 会采用默认的配置来 Build 我们的应用程序如图 6 所示,开发人员也可以点击链接“Edit〞翻开配置页面来编辑我们的应用属性:如为应用设置名称、包名、版本号和描述等信息;此外,iOS 应用的开发人员,可以在该页面配置开发许可的 Key 文件。

      图 6. PhoneGap Build 的配置页面 4. 如图 7 所示,在等待一段时间之后,可以看到 PhoneGap Build 页面中对应不同平台的图标发生了变化:由于 iOS 平台开发需要相应的 license key,所以我们得到了一个显示警告信息的图标;而 Android、webOS 和 Symbian 平台那么顺利的编译成功;对于 BlackBerry 平台,笔者尝试屡次都未能成功的编辑应用程序,其图标一直停留在如下图的等待状态图 7. PhoneGap Build 的结果页面 5. 最后,通过点击相应平台的图标,即可将 build 好的应用程序下载到本地在实践中,笔者成功创立了名为“HelloWorld-debug.apk〞的应用;读者可以将其安装到 Android 中进行测试,应用启动后,可以在 屏幕打印出相应的文字基于 PhoneGap 和 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.