PhoneGap技术介绍

jopen 12年前

PhoneGap 


PhoneGap是一个开源项目,并且是跨平台的。有了它,JavaScript 工程师能够轻松地利用网页技术(HTML/CSS/JavaScript)来开发手机应用(包括安卓和苹果的)。PhoneGap号称是“唯一开源的手机 框架,并且支持7个平台”! 它支持的平台有Android, iOS, Windows Phone7, Web OS, Symbian, 和 BADA。
phonegap 简单来说是一个中间件,为移动前端提供访问移动终端设备及资源的接口。采用统一的标准的html、javascript、css等web技术开发。通过不 同平台的浏览器访问来实现跨平台。通过javascript脚步代码调用系统资源,以降低开发难度,所以受到广大web开发人员的青睐。
开 发一个具有相同业务的应用Natural-Application需要使用到不同平台的框架和开发语言。使用 C/C++ 的 Symbian、使用 Object C 的 iOS 和使用 Java 的 Android 应用开发技术,几乎是完全无法融合的。 PhoneGap跨平台移动应用开发框架正是应运而生
         
我们需要搞清楚几个概念:Web App,Native App,Hybird App移动平台Application几个概念:         

Web App 这个主要是采用统一的标准的 HTML,JavaScript。CSS等web技术开发。通过不同平台的浏览器访问来实现跨平台。同时可以通过浏览器支持充分使用HTML5特性,缺点 是这些基于浏览器的应用无法调用系统API来实现一些高级功能,也不适合高性能要求的场合。         
Native APP 就是所谓的原生应用。指的是用平台特定的开发语言所开发的应用。使用它们的优点是可以完全利用系统的API和平台特性,在性能上也是最好的。缺点是由于开发技术不同,如果你要覆盖多个平台,则要针对每个平台独立开发,无跨平台特性。 
Hybird App 则是为了弥补如上两者 开发模式的缺陷的产物。分别继承双方的优势。首先它让为数众多的web开发人员可以几乎零成本的转型成移动应用开发者;其次,相同的代码只需针对不同平台 进行编译就能实现在多平台的分发,大大提高了多平台开发的效率;而相较于web App,开发者可以通过包装好的接口,调用大部分常用的系统API。         
而PhoneGap正是Hybird APP目前框架中集大成者

phonegap优缺点评估        
日前,phonegap框架热度如火如荼。一项技术当然会有其优缺点,我们是选用phonegap还是选择Native APP,要先分析两者的利弊,再根据具体应用选择,        
1 phonegap优点:        
1.1、可跨平台。它的原理如下:PhoneGap通过调用JavaSCript调用API库实现和各个平台的SDK进行无差别的交互 以达到调用不同平台手机上摄像头,文件系统,重力感应GPS定位等功能        
1.2 易用性。
1.3 提供硬件访问控制。比起传统的Web程序,PhoneGap提供了一些列的JS 的类,可以直接访问硬件。比如加速,相机,指南针,GPS,文件访问等,可以让你用JS方便地调用系统的硬件。以弥补传统Web程序的一块错误。        
1.4 可利用成熟javascript框架。web的发展,诞生了许多javascript框架。著名的有Ext js、jQuery。随着移动应用的需求越来越大,jQuery出现了jQuery mobile版本。它的体积小,为移动应用量身定制。使用javascript框架也降低了开发难度,使得移动应用更美观。        
1.5 方便的安装和使用。PhoneGap,只用很简单的配置就可以搭好环境。只用专注写好自己的Web页面,拷贝进去就可以了。
2 phonegap不足之处        
2.1 运行速度慢。PhoneGap集成多了个平台。程序的载入和UI界面的反应都比原生的程序慢,UI反应延时—— 这是个致命伤 。它实际上还是在展示Web页面,所以载入、页面刷新等肯定是需要一定时间的。这在用户体验上来说PhoneGAp依然无法替代原生应用程序。另 外,html、javascript、css都运行在各平台内置浏览器webkit之上,受到webkit处理速度影响。目前来说运行速度比较慢,性能较 差。        
2.2 不适合部分程序。如果你的程序需要3D功能,或者对界面刷新有较高的要求,比如类似于游戏的程序现在来说还只是用原生的语言会比较好。
2.3 调用平台资源差。phonegap应用程序对平台资源的使用依赖于phonegap框架本身,由于phonegap是第三方框架,做不到100%调用平台资源。比如说,现在版本未能支持视频解码与播放等    
2.4 内存消耗大。有测试表明,用phonegap于android java开发同一个应用。运行phonegap应用内存消耗远大于原生态android java应用。对于频繁操作,释放内存较慢,从而导致内存消耗量飙升。        
2.5 调试难度大。目前phonegap可以在控制台输出简单的JS调试日志,但是并不方便。调试js只能选择firefox firebug调试。        

结语
phonegap的目标就是快速开发移动应用实现written once, run everywhere跨平台。phonegap一定程度上降低了移动开发的门槛,特别是ios开发。类似于phonegap这样的框架的出现,并不能取代 Native APP原生态应用。phonegap有它的不足之处,运行速度较慢、操作平台资源不灵活、操作移动设备不方便,这些都依赖着phonegap框架本身的升 级与发展。