`
heicx_sudo
  • 浏览: 7058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Phonegap技术分析

 
阅读更多

Phonegap介绍

phonegap是一个免费开源框架。它可以为前端开发提供访问移动终端设备的各种接口,目前最新版本为3.40。可以方便的用它来构建跨平的HTMLCSSjavascript的应用程序。

Phonegap 的优点

1、phonegap作为跨平台框架,很容易实现written once, run everywhere,由于各移动平台的差异较大,phonegap帮我们解决了差异性问题,javascript与平台系统的交互对接都由phonegap完成。因此它是连接移动终端的适配器,或者说是中间件。

2、开发成本低。

3、易用性强,开发人员无需直接操作平台资源,只需要用javascript调用phonegap API就可以完成对移动平台设备资源的操作。

4、phonegap提供了一些列JS 类库,可以直接调用并访问系统硬件。例如加速,相机,指南针,GPS,文件访问等。

5、可以支持并使用成熟javascript框架。例如JQuerySencha TouchJQM等等。使用javascript框架也降低了开发难度,使得移动应用更美观。

6、对于大多数开发者来说,并不需要了解phonegap内部架构,只需要针对不同的移动平台做相应的配置就可以搭建环境。大部分开发精力可以倾向于Web端。

 

Phonegap 的缺点

1、phonegap集成多了个平台, 程序的载入和UI界面的反应都比原生的程序慢,UI反应延时这是个致命伤。它实际上还是在展示Web页面,所以载入、页面刷新等肯定是需要一定时间的。 这在用户体验上来说phonegap依然无法替代原生应用程序,另外,htmljavascriptcss都运行在各平台内置浏览器webkit之上,受到webkit处理速度影响。与原生应用相比页面解析速度比较慢,性能较差。

2、hybrid app运行phonegap应用内存消耗远大于原生态android应用。由于对移动平台资源设备的频繁操作,释放内存较慢,从而导致内存消耗量提升。

3、目前phonegap可以在控制台输出简单的JS调试日志,但是并不方便于开发。调试js只能选择firefox firebug调试。

 

Phonegap  Android Native性能对比

应用类型

Html5(phonegap)

Android Native

功能实现

Html+JQuery基础库+Webview

ListView组件

文件大小

159KB

23KB(只用了系统的原生界面)

内存占用

45.37MB

27.02MB

数据通信

Ajax

Apache http Java功能包

启动速度

打开相同订阅源2.7

打开相同订阅源2.3

操作响应速度

正常操作速度流畅,频繁操作响应会变慢

操作速度流畅

稳定性

手动频繁操作会引起,整个应用会处于空白无响应状态。有连接超时情况发生。响应速度变慢,webkitWebView不能很好释放内存,甚至会引起应用的crash

能较好处理Activity切换延时等待。运行较为流畅。能够比较好的释放内存,没有出现过应用crash的情况。

资源占用

对于频繁操作时,内存释放不够理想,导致内存占用上升。

内存占用相对比较稳定。

开发成本

运用html + css + javascript开发,适合前端人员开发。由于webkit在不同的终端机发行版本不一样,所以需要针对不同的机型进行适配。同时对于不同屏幕大小在适配上也只能通过Javascript进行控制实现。

适合有Java开发经验的程序员,可以充分利用Android提供的组件进行开发。但是开发学习成本较高。

开发难度

目前phonegap只使用一个WebView,开发时需要使用OPOA的模式,对代码的组织方式及开发方式有较高要求。同时介于手机的资源有限,对如何管理和分配内存提出了要求。目前phonegap可以在控制台输出简单的JS调试日志,但是并不方便。

需要有Java开发经验,同时对Android开发体系有较深入的了解。

多人协作

OPOA模式并不利于多人协作并行开发,只能通过基础的javascript的设计模式来解决多人协作的问题。

比较方便支持多人协作并行开发。

 

Phonegap API – Events

1、deviceready 事件

2、pause 事件

3、resume 事件

4、online 事件

5、offline 事件

6、backbutton 事件

7、menubutton 事件

8、batterycritical 事件

9、batterylow 事件

10、batterystatus 事件

 

一、deviceready 事件

在使用phonegap开发应用时,这一事件在设备的本地环境和页面完全加载完成之后才触发,此事件一般晚于jQueryready事件,jQueryready事件是在DOM 完全加载完成后触发,deviceready则是设备的本地环境和页面完全加载完成之后才触发。当native加载的时候,自定义的一些图片会被调用,而JavaScript需要在DOM加载后就会被加载。这时可能会造成JavaScript在图片加载前就已经被调用了。使用deviceready事件可以保证phonegap是在完全加载完成后,才会被触发。

二、pause 事件

phonegap应用被置为后台时触发。

三、resume事件

phonegap应用重新从后台置为前台时触发。

四、 online事件

phonegap应用连接因特网时触发。

五、offline 事件

phonegap应用断开因特网时触发。

六、backbutton事件

当单击退回按钮时触发。

七、menubutton 事件

当单击菜单按钮时触发。

八、batterycritical事件

phonegap应用监控到电池达到警告时触发(20% batterycritical的处理程序将会调用一个对象,该对象包含以下两个属性:level:电池剩余电量的百分比,取值范围是0-100(数字类型)isPluggedboolean型的值,表示设备是否接通电源。

九、batterylow事件

在电量非常低的情况下触发(5% batterylow的处理程序将会调用一个对象,该对象包含以下两个属性:level:电池剩余电量的百分比,取值范围是0-100(数字类型)isPluggedboolean型的值,表示设备是否接通电源。

十、batterystatus事件

phonegap应用监控到电池状态有改变时触发(每当电量变化1%的时候触发一次)batterystatus的处理程序将会调用一个对象,该对象包含以下两个属性: level:电池剩余电量的百分比,取值范围是0-100(数字类型isPluggedboolean型的值,表示设备是否接通电源。

 

Phonegap API – Events使用

首先需要确保是在deviceready的状态下对事件进行监听,否则设备监听会失败。同时通过document.addEventListener(“deviceready”, deviceReadyCallBack, false)进行监听。若使用第三方base库时,如jQuery,需要在dom ready后进行事件监听。

 

Phonegap Plugin-APIs

1、Battery Status

监测设备的电池状态。

2、Camera

使用设备摄像头捕获照片。

3、Contacts

使用移动设备通讯录。

4、Device

收集移动设备相关的重要信息。

5、Device Motion (Accelerometer)

捕获移动设备的运动传感器功能。

6、Device Orientation (Compass)

捕获移动设备的指向的方向(指南针)

7、Dialogs

提供具备UI元素的原生对话框。

8、FileSystem

提供文件的上传,下载。

9、File Transfer

提供对文件的操作,集合html5 File API

10、Geolocation

可以使App获取地理位置信息。

11、Globalization

特定语言环境设置。

12、InAppBrowser

模拟window.open() ,添加监听事件loadstart,在 web browser中打开。

13、Media

对已有媒体流地址进行操作与数据获取。

14、Media Capture

对移动设备的音频、图像、视频进行捕获。

15、Network Information (Connection)

对网络状态及蜂窝网络进行检测。

16、Splashscreen

用来显示或隐藏应用程序启动时的启动页面。

17、Vibration

 提供移动设备的震动。

分享到:
评论

相关推荐

    phonegap完整例子!

    "是针对Android平台的一个示例项目,特别适合在pad设备上运行,并且包含了自定义插件的实现,这对于深入理解和使用PhoneGap技术尤其有帮助。 1. **PhoneGap基础概念** - PhoneGap基于Apache Cordova,是一个让...

    IONIC+PhoneGap项目源码

    通过分析这些源码,开发者可以学习到如何将IONIC的UI组件和交互与PhoneGap的本地功能结合,创建一个功能完备的混合移动应用。 【文件名称列表】 1. "深入浅出 phonegap 代码.zip" - 这个文件可能是关于PhoneGap的...

    phonegap源码+示例

    1. **架构**:PhoneGap的核心架构基于WebView,它将Web应用封装在一个本地应用容器中,通过JavaScript桥接技术与设备的原生API交互。Cordova2.9的源代码中,我们可以看到这些桥接机制的实现,以及如何在不同平台上...

    PhoneGap实例

    通过学习和分析`phonegap100_apidemo`中的代码,开发者不仅能理解PhoneGap的工作原理,还能掌握如何将这些技术应用到实际项目中,从而构建出功能丰富的跨平台移动应用。在实践中,不断调试和优化这些示例,有助于...

    PHONEGAP入门经典源码

    3. **社区支持**:Stack Overflow、GitHub和PhoneGap论坛等社区可以找到丰富的技术讨论和问题解答。 4. **示例应用**:通过分析开源的PhoneGap应用源码,可以了解实际项目中的设计模式和最佳实践。 总之,"PHONEGAP...

    PhoneGAP实例源码

    PhoneGap是一种跨平台的移动应用开发框架,它允许开发者使用HTML、CSS和JavaScript来构建原生的移动应用程序。PhoneGap的核心理念是...每个实例都可以独立分析和调试,以便更深入地理解和掌握PhoneGap开发的核心技巧。

    ionic+phonegap 案例源码

    这个源码项目是一个综合了Ionic和PhoneGap技术的移动应用实例,可以帮助开发者了解如何使用Web技术构建跨平台的移动应用。通过分析提供的文件,我们可以学习到如何组织一个完整的Ionic项目结构,使用Cordova插件来...

    phonegap入门经典源码

    通过分析`chapter9b.html`,我们可以逐步掌握PhoneGap的基本用法,从而为开发跨平台的移动应用打下坚实的基础。这个过程中,还会涉及到HTML5、CSS3和JavaScript的最佳实践,以及如何优化应用性能和用户体验。在实际...

    Phonegap_API_中文版

    PhoneGap的核心理念是通过Web技术实现与移动设备硬件功能的交互,使得开发者无需掌握每个平台的原生编程语言,如Java(Android)、Swift(iOS)或Kotlin,就能开发出功能丰富的应用。 本资源"Phonegap_API_中文版...

    PhoneGap简单示例

    PhoneGap是一种开源框架,它允许开发者使用HTML5...通过分析这些文件,你可以了解PhoneGap项目的组织方式,以及如何利用PhoneGap API进行设备交互。这是一个很好的起点,帮助你深入理解PhoneGap的工作原理和开发流程。

    phonegap开发插件合集

    PhoneGap的核心理念是通过Web技术实现跨平台的移动应用开发,同时能够访问设备的硬件功能,如摄像头、GPS、存储等。这个"phonegap开发插件合集"是一个包含了多种PhoneGap插件的资源包,覆盖了Android和iOS等多个平台...

    phonegap+jqueryMobilejs源码项目

    通过学习和分析这个项目,开发者不仅可以掌握PhoneGap和jQuery Mobile的基础知识,还能了解到如何将两者结合,实现跨平台的移动应用开发。这对于想要进入移动开发领域的前端工程师来说是一份宝贵的资源。

    phonegap api中文手册

    PhoneGap是一款基于HTML、CSS和JavaScript的技术栈,允许开发者构建适用于多个移动操作系统(如iOS、Android等)的应用程序。 #### 二、PhoneGap API功能模块概述 PhoneGap API提供了丰富的功能模块来扩展HTML、CSS...

    phonegap_test1

    PhoneGap 是一个开源框架,它允许开发者使用标准的HTML、CSS 和 JavaScript 技术来构建跨平台的移动应用。这个名为 "phonegap_test1" 的压缩包文件可能包含了一个使用PhoneGap开发的移动应用的测试版本。从描述中的...

    phonegap离线缓存

    PhoneGap离线缓存是移动应用开发中的一个重要概念,它主要应用于使用PhoneGap框架构建的混合应用程序。...开发者可以通过分析该项目的代码和配置文件,了解如何在自己的PhoneGap应用中实现离线缓存。

    phonegap从入门到精通-配套源码

    PhoneGap 是一个开源框架,它允许开发者使用标准的 web 技术,如 HTML、CSS 和 JavaScript,来构建跨...通过探索这些源码,你可以深入了解 PhoneGap 如何将 web 技术与移动设备功能相结合,创建出原生体验的混合应用。

    Phonegap-LocalNotification-master

    通过对这些文件的分析和学习,开发者可以掌握PhoneGap在Android平台上实现本地通知的完整流程和技术细节。 总之,PhoneGap的LocalNotification插件为Web开发者提供了一个简便的途径,让他们能够在不接触原生代码的...

    phonegap 源码 下载

    PhoneGap 是一个开源框架,它允许开发者使用标准的 web 技术,如 HTML5、CSS3 和 JavaScript 来构建跨平台的移动应用。这个“phonegap_android_src”压缩包很可能是 PhoneGap 的 Android 平台源代码,对于深入理解 ...

    Phonegap登陆及九宫格示例Android源码下载

    你可以通过分析这个项目来学习如何在PhoneGap中组织文件结构,如放置HTML、CSS、JavaScript文件,以及配置配置文件(config.xml)来设置应用的元数据和权限。 总之,这个示例项目涵盖了PhoneGap的基础知识,包括...

Global site tag (gtag.js) - Google Analytics