初识PhoneGap

标签: 系统架构 | 发表时间:2012-04-12 13:34 | 作者:josson
出处:http://www.blogread.cn/it/

标签:   PhoneGap

     一、PhoneGap是什么?

    PhoneGap是一个标准的开源框架,用PhoneGap开发移动应用是免费的,无论是商业或是开源;一个用基于HTML,CSS和JavaScript的,创建跨平台移动应用的 快速开发平台。它使开发者能够利用iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能。

    PhoneGap由Nitobi 公司创建,并于2011.10被Adobe收购,并捐赠给Apache基金组织,PhoneGap是唯一的一个支持7个平台的开源移动框架。框架提供了丰富接口用于访问移动设备本地API,能够让你用javascript轻松调用。当前最新版本:1.5。

    目前开发移动程序框架选择很多,如PhoneGap、Titanium、MonoTouch、Native App,兼容性越强的技术,成本越低,性能越差;兼容性越差的技术,成本越高,性能越好。PhoneGap是目前最被看好的:

  •  兼容性:完全做到了Written Once,Run Everywhere!
  • 标准化:PhoneGap采用W3C标准,Web App直接运行!
  • 采用普通web开发技术:JavaScript+HTM5+CSS3。
  •     存在不足:

  • 性能,正常操作速度流畅,频繁操作响应会变慢。
  • 稳定性及资源占用方面,手动频繁操作会引起,响应速度变慢,webkit的WebView不能很好释放内存,导致内存占用上升,甚至会引起应用的crash。
  •     二、PhoneGap如何工作?

        PhoneGap架构拥有强大的跨平台访问设备能力,但是其工作原理并不神秘,iPhone和Android平台共同点是都有内置的WebView组件,其具备两个特性:

  • WebView组件实质是移动设备的内置浏览器
  •     WebView这个内置浏览器特性是Web能被打包成本地客户端的基础,可方便的用HTML5、CSS3页面布局,这是移动Web技术的优势相对于原生开发。

  • WebView提供Web和设备本地API双向通信的能力
  •     PhoneGap针对不同平台的WebView做了扩展和封装,使WebView这个组件变成可访问设备本地API的强大浏览器,所以开发人员在PhoneGap框架下可通过JavaScript访问设备本地API。

        

    PhoneGap与设备本地API通信图

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

        

    PhoneGap架构图

        三、API指南

    Accelerometer点击进入设备的运动传感器。 Events通过JavaScript截获本地事件。
    Camera使用设备的摄像头采集照片。 File通过JavaScript截获本地文件系统。
    Capture使用设备的媒体采集应用程序采集媒体文件。 Geolocation使得你的应用程序可以访问地理位置信息。
    Compass获取设备指向的方向。 Media录制和播放音频文件。
    Connection快速检查WiFi或蜂窝网络的信息。 Notification设备的视觉、声音和触觉提醒。
    Contacts和设备联系人数据库相关操作。 Storage截获设备的本地存储选项。
    Device收集设备的具体信息。

        四、参考资料

         1 、Javascript移动开发框架

  • jQuery Mobile: http://jquerymobile.com/
  • jQTouch: http://jqtouch.com
  • Sencha Touch: http://mobile.51cto.com/Sencha-278623.htm
  •     PhoneGap + 合适的javascript开发框架,轻松开发出原生风格的移动应用。选择哪种js框架,你可以通过:《 三大移动Web开发框比较分析》一文,选择适合的框架。

         2 、PhoneGap社区

  • PhoneGap官网: http://phonegap.com/
  • PhoneGap中国社区: http://www.phonegap.cn
  • PhoneGap中国: http://www.phonegapcn.com/
  • 51CTO专题(跨平台移动web中间件PhoneGap开发入门) : http://mobile.51cto.com/hot-273792.htm
  • 您可能还对下面的文章感兴趣:

    1. Phonegap + HTML5 开发经验小结 [2012-03-18 23:38:56]
    2. PhoneGap应用开发的那些坑爹事儿 [2011-12-14 13:40:46]
    3. 基于 PhoneGap 与 Java 开发的 Android 应用的性能对比 [2011-11-21 00:06:25]


    相关 [phonegap] 推荐:

    初识PhoneGap

    - - IT技术博客大学习
    标签:   PhoneGap.      一、PhoneGap是什么.     PhoneGap是一个标准的开源框架,用PhoneGap开发移动应用是免费的,无论是商业或是开源;一个用基于HTML,CSS和JavaScript的,创建跨平台移动应用的 快速开发平台. 它使开发者能够利用iPhone、Android、Palm、Symbian、WP7、Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以以此扩展无限的功能.

    Phonegap踩过的坑

    - - snoopyxdy的博客
    最近2个月一直在做一个Phonegap(现改名为cordova,其实我用的cordova来做的,但是叫惯了phonegap)的手机app项目,目前已经debug完毕,准备发布上线了,发现真印证了网上流传的一句话:. 如果你恨一个人,让他去开发PhoneGap应用;如果你爱一个人,让他去开发PhoneGap应用.

    Android + Eclipse + PhoneGap 环境配置

    - - CSDN博客推荐文章
    用了3天的时间,终于把环境搭建完毕,郁闷了N天,终于完成了. 这里我只是讲述我安装的过程,仅供大家参考. 环境搭建首先要去下载一些安装包:. (下载前注意一下,电脑是32位还是64位的请注意选择安装包). java环境的JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html.

    phonegap 框架详解 - Blue Sky ......

    - - 博客园_首页
    首先, 来看一下phonegap 初始化流程以及Native 与 JS 交互流程图. 说明:socket server模式下, phonegap.js 源码实现的采用1 毫秒执行一次XHR请求,  当Native  JS 队列里面有JS语句数据时,才是真正的1毫秒调用一下;  当没有数据, scoket server 会阻塞10毫秒, 也就是XHR 要等10秒钟才能收到结果,并进行下一次的轮询.

    PhoneGap现已完全支持WP7

    - - HTML5研究小组
    PhoneGap现已完全支持Windows Phone 7所有的原生功能,其支持力度达到了iOS与Android的水平. 微软在去年7月帮助Nitobi将PhoneGap移植到了Windows Phone Mango上,并在9月 发布了 该框架的一个可用版本. 很多原生特性都得到了支持,包括Accelerometer、Camera、Contacts、Geolocation、 Notification与MediaCapture,但团队希望能找到一些Bug.

    关于Phonegap的一些看法

    - - SweetRiver
    呃, phonegap今年发展不错啊,至少“跨平台”一个词就是多少人无法拒绝的一个诱惑,而且使用HTML+CSS+JS开发,可灰常有吸引力. 网易轻博LOFTER的移动客户端就是用phonegap开发的,但是目前只有iOS版本,Android版本似乎还在开发中. 试用了下iOS下phonegap做出来的LOFER,应该说UI效果非常接近原生APP,但不如原生APP流畅,可以感觉到网易LOFTER团队付出了很多的努力.

    Phonegap + HTML5 开发经验小结

    - - Miller
            去年曾对 Phonegap做过一次调研,当时还是1.1版本,印象也一般. 对他的性能以及真实的跨平台能力都不太确定. 今年过完春节至今正好有机会参与了一个纯Phonegap + HTML5开发的项目,项目至今已经完成了一期的App Store提交,所以也正好能抽时间来小结一下. 一个月左右的开发过程让我对这种开发模式有了更深的认识,这对于前端开发人员而言绝对是一个大的机会.

    HTML5漫谈(4)–HTML5应用平台:PhoneGAP

    - - HTML5研究小组
    (  程宝平 chengbp @gmail.com). http://phonegap.com)按官方说法,是HTML5移动应用平台,它包括两部分:. 1)       应用开发框架:采用Web/HTML5技术编写应用,支持设备能力(如GPS、重力感应等)调用;支持能力插件灵活扩展. 图1 PhoneGAP支持设备能力API列表.

    phonegap利用百度地图sdk定位

    - - snoopyxdy的博客
    近期的一个phonegap项目把我做的焦头烂额,最让人蛋疼的就是安卓4.1.x对html5的定位获取经纬度有个无比巨大的坑,一般我们利用如下代码进行html5的定位. 另外一个巨坑也直接影响了我对这个问题的判断,如果我重启了安卓4.1的机器,那么上述代码将能够正常跑大约几小时,甚至半天,可是到了第二天又会出现同样的问题,无尽的timeout.

    基于phonegap开发app的实践

    - - CSDN博客Web前端推荐文章
    app开发告一段落,期间遇到不少问题,写篇文章记录一下. 为虾米要用phonegap. 开发app,至少要考虑android和ios两个版本吧,android偶可以应付,ios表示完全木有接触过,于是时间成本、开发成本上去了. phonegap则解决了这个问题,而且对po主而言,用web开发的方式来搞app很爽啊有木有.