主流跨平台移动应用开发框架比较

近年来,随着硬件设备和系统平台的不断发展,手持移动设备的计算能力得到了显著的提高,智能手机和平板电脑已经越来越多地出现在人们的日常生活之中,加之诸如重力感应、GPS 模块、蓝牙模块、WIFI 接入等特色功能的支持,移动平台的应用领域必将融入并逐渐取代传统的计算机设备;同时,互联网早已深入到了人们生活和工作中的每一个角落,随着新一代 3G 网络技术的普及与发展,基于传统 2.5G 网络的 WAP 应用时代也会逐渐地退出历史舞台。在此背景下,移动互联时代便应运而生,所谓移动互联即是指智能的手持移动设备与互联网在高速发展中,相互结合、相辅相成而造就的时代产物。
      由于当前主流的移动平台之间互不兼容,针对不同的移动平台系统,当前并没有可以兼容的应用开发接口和语言;当前,使用 C/C++ 的 Symbian、使用 Object C 的 iOS 和使用 Java 的 Android 应用开发技术,几乎是完全无法融合的。
      从应用开发的角度来说,同样的程序逻辑却不得不在多个平台上使用不同的语言和 API 重复编码;从代码维护的角度来说,针对同一个项目需要同时维护多份代码,一旦程序逻辑发生变化,将导致大规模的代码修改与回归测试;另外,从经济角度来说,要同时开发和维护多个平台的应用程序,将花费企业巨大的人力和时间成本。

      为了解决上述问题,跨平台的移动应用开发技术逐渐地引起了开发者的关注。不难看出,面向不同的终端平台和开发语言,要实现应用开发的兼容性,其实只有两条可行之路:其一是采用不同平台都认可的标准技术,其二是采用已被成熟使用的现有技术。然而无论采用哪一种方式,当前跨平台应用卡法所缺少的,都是作为平台底层 API 与通用开发技术中间件的跨平台移动应用开发框架。
      随着人们对跨平台应用开发研究的不断深入,当前市场上已出现了若干致力于跨平台开发的产品级框架。其中,PhoneGap、Titanium 和 Rhodes 便是当下发展较为成熟的三款开发框架。为了更好地了解当前的跨平台开发框架技术,本文对其三者从如下几个方面进行了对比:
      上述三款框架产品都将目标明确地定位为“一次开发,运行于任何移动终端平台。”这就意味着其必须跨越平台特性和编程语言的界限,可以与任何平台的 SDK API 进行无差别的交互。但Titanium项目的负责人之一Haynie说,Titanium并非是“一次编写,随处运行”的。开发者仍然需要针对不同平台做一定的适应性修改。Haynie说,很多坏的产品就是在“一次编写,随处运行”的名义下写出来的。“我们认为这其中存在着80/20比例,即这个工具的80%都是可以跨平台的,但另外20%必须人工完成。”
      一、支撑平台
      Titanium 框架目前只支持 Android 和 IPhone 平台,而 PhoneGap 和 Rhodes 则均声称支持当前大多数的主流平台,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 的发展较上述两者则相对成熟一些,它也是商业化的框架产品。
      PhoneGap 和 Titanium 有很多相似之处,但相比 PhoneGap,Titanium 除了提供与 SDK 相对应的功能 API 外,还对相应平台 UI API 提供了一定的支持。因而,使用 Titanium 可以开发出更加接近于本地应用的用户体验,但也正因为如此,Titanium 对平台的兼容性不及 PhoneGap 的发展现状。跨平台的移动应用开发框架均着眼于解决不同平台之间应用开发的兼容性问题,因而讨论某一框架的优劣,不应拿诸如使用该框架是否能开发出 3D 游戏这样的标准来对其进行考量。
      这时会有人提出那现在的jQuery Mobile和Sencha Touch呢,在讨论这两个移动应用框架之前,大家先弄清两个概念:网页移动应用程序和本地移动应用程序。
      网页移动应用程序运行于浏览器之上,而且其所调用的资源几乎都是远程的、存储于服务器端的。当然不排除有些信息也会出现本地存储的情况,但归根结底,它的本质是网站应用程序;本地应用程序运行于我们的设备上,其全部资源都安装在我们的本地设备中,本地应用程序使用该设备的平台、语言以及特殊的本地API以与设备通信。
      Sencha Touch和jQuery Mobile都是网页移动框架,我们可以使用这些技术以创建基于网页的移动应用程序。它们无法访问任何本地API。它们二者的运行都基于JavaScript。并且尽管它们是以完全独立的方式处理类似的问题,但其仍然具有共同点,即它们为移动页面服务,都可以使应用程序表面外观和界面上看起来像本地应用程序,但将Sencha Touch或jQuery Mobile进行本地化包装并不能使其成为真正的本地应用程序。Sencha Touch与jQuery Mobile是运行在浏览器上的。
    但是可以在PhoneGap及Titanium上使用Sencha Touch与jQuery Mobile。PhoneGap及Titanium都允许我们在特定设备的浏览器中运行程序,所以它们其实是通过这种方式实现了对Sencha Touch及jQuery Mobile的支持。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值