移动应用快速开发平台:PhoneGap

jopen 10年前

一、PhoneGap是什么?

PhoneGap是一个基于HTML、CSS和JavaScript创建跨平台移动应用程序的快速开发平台。与传统Web应用不同的是,它使开发者 能够利用iPhone、Android等智能手机的核心本地功能——包括地理定位、加速器、联系人、声音和振动等,此外它还拥有非常丰富的插件,并可以凭 借其轻量级的插件式架构来扩展无限的功能。PhoneGap由Nitobi 公司创建,并于2011.10被Adobe收购,并捐赠给Apache基金组 织,PhoneGap是唯一的一个支持7个平台的开源移动框架。框架提供了丰富接口用于访问移动设备本地API,能够让你用javascript轻松调 用。

需要区分的是PhoneGap既不是JavaScript框架,也不是类似jQuery Mobile这样的移动应用框架,PhoneGap也不提供IDE环境。开发者仍然需要依赖类似JQuery Mobile,Sencha Touch这样的第三方Web移动应用开发框架开发基本的Web移动应用。

PhoneGap的优点:

  1. 简单:使用普通的Web技术(JavaScript+HTM+CSS)进行开发,无需从零开始学习IOS开发及Android开发技术。
  2. 省事:一份代码,多份应用。相同的代码只要通过编译后就能在不同的设备上运行,做到了Written Once,Run Everywhere! 避免了重复劳动。
  3. 强大:相比传统的Web程序,可以直接访问硬件。比如地理定位,联系人,重力感应,文件访问等。

PhoneGap的缺点:

  1. 运行速度慢,相对于原生呈现,PhoneGap的程序载入和UI界面的反应相对较慢,它实际上还是在展示WEB页面,所有页面的载入、刷新都需要一定的时间,另外由于程序是运行在内置的webkit浏览器上,所以速度是受webkit影响的。
  2. 内存消耗大,由于webkit的WebView不能很好释放内存(内存释放较慢),对于频繁操作会导致内存占用上升,影响响应速度,甚至有可能会引起程序的崩溃。
  3. 调试不方便,目前phonegap可以在控制台输出简单的JS调试日志,但是并不方便。调试js只能选择firefox firebug调试。

PhoneGap的目标就是快速开发移动应用实现written once, run everywhere跨平台。PhoneGap一定程度上降低了移动开发的门槛。传统web开发人员不需要学习object-c、android java就可以开发普通的移动应用。PhoneGap并不能取代Native APP原生态应用。phonegap有它的不足之处,运行速度较慢、操作平台资源不灵活、操作移动设备不方便,这些都依赖者PhoneGap框架本身的升 级与发展。

是否采用PhoneGap要取决于移动产品本身特性与企业对产品的要求。一般的移动web应用可以采用PhoneGap技术,但是用户体验就没有原生应用好;接近于游戏的应用,经常刷新界面的应用,使用PhoneGap就不太合适了。采用何种技术,要看产品的侧重点。

二、PhoneGap的运行逻辑是什么?

PhoneGap架构拥有强大的跨平台访问设备能力,提供了丰富的API来帮助移动应用开发者方便地获取移动设备的信息。打开PhoneGap官方网站的API文档,可以看到目前PhoneGap拥有如下移动设备本地API。

  • Accelerometer。加速计,也就是我们常说的重力感应功能。
  • Camera。用于访问前置摄像头和后置摄像头。
  • Capture。提供了对于移动设备音频、图像和视频捕获功能的支持。
  • Compass。对于罗盘的访问,由此可以获取移动设备行动的方向。
  • Connection。能够快速检查并提供移动设备的各种网络信息。
  • Contacts。能够获取移动设备通讯录的信息。
  • Device。能够获取移动设备的硬件和操作系统信息。
  • Events。能够为应用提供各种移动设备操作事件,例如暂停、离线、按下返回键、按下音量键等。
  • File。能够访问移动设备的本地文件系统。
  • Geolocation。能够获取移动设备的地理位置信息。
  • Media。提供了对于移动设备上音频文件的录制和回放功能。
  • Notification。提供了本地化的通知机制,包括提示、声音和振动。
  • Storage。提供了对于SQLite嵌入式数据库的支持。

要实现上诉功能,其实靠的是iPhone和Android平台内置的WebView组件,它具备有两个特性:

  • WebView组件实质是移动设备的内置浏览器。这个特性是Web能被打包成本地客户端的基础,可方便地用HTML5和CSS3页面布局,这是移动Web技术相对于原生开发的优势。
  • WebView提供Web和设备本地API双向通信的能力。PhoneGap针对不同平台的WebView做了扩展和封装,使 WebView这个组件变成可访问设备本地API的强大浏览器,所以开发人员在PhoneGap框架下可通过JavaScript访问设备本地API。

一个成熟的PhoneGap技术客户端运行状况:应用运行在WebView组件上 -> 通过PhoneGap在各平台的扩展 -> 最终访问设备本地资源。

移动应用快速开发平台:PhoneGap

三、参考资料

引用地址:http://www.biaodianfu.com/phonegap.html