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

27 sec read

一、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

三、参考资料

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

C语言学习:size_t

在学习C语言的时候,遇到了一个新的数据类型size_t,截止目前也没有完全理清这个类似的具体场景及出现的原因。
44 sec read

C语言学习:main()函数的正确写法

C语言虽然是一门古老的语言,但是其标准一直在完善,所以很多以前支持的语法在到当前已经不能在使用了。 C语言的版
41 sec read

Scipy数学函数的Scala实现

最近在推进项目的时候,遇到需要将线下的Python代码转化成线上的集群代码,由于机器代码环境是Scala,所以
4 min read

发表评论

电子邮件地址不会被公开。 必填项已用*标注