当前位置: 首页 > news >正文

小强的HTML5移动开发之路(21)—— PhoneGap

一、PhoneGap是什么

PhoneGap 是一个用基于 HTML,CSS 和 JavaScript 的,创建移动跨平台移动应用程序的快速开发框架。它使开发者能够利用 iPhone,Android,Palm,Symbian,WP7,Bada 和 Blackberry 智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外 PhoneGap 拥有丰富的插件,可以以此扩展无限的功能。PhoneGap 是免费的,但是它需要特定平台提供的附加软件,例如 iPhone 的iPhone SDK,Android 的Android SDK 等,也可以和 DW5.5 配套开发。使用 PhoneGap 只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是你仍然需要为每个平台分别编译应用程序。PhoneGap 针对不同平台的 WebView 做了扩展和封装,使 WebView 这个组件变成可访问设备本地 API的强大浏览器,所以开发人员在 PhoneGap 框架下可通过 JavaScript 访问设备本地 API。

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


二、PhoneGap的优势

(1)跨平台:PhoneGap 是唯一的一个支持 7 个平台的开源移动框架(PhoneGap 包括地理定位,加速器,联系人,声音和振动等,此外 PhoneGap 拥有丰富的插件,可以以此扩展无限的功能,几乎 Native App能完成的功能他都能完成)。它的优势是无以伦比的:开发成本低——据估算,至多 Native App 的五分之一!

(2)易用性,基于标准的 Web 开发技术 (html + css +js)

(3)提供硬件访问控制(api)

(4)可利用成熟 javascript 框架(JqueryMobile SenchaTouch)

(5)方便的安装和使用

三、PhoneGap的不足

(1) PhoneGap 应用程序的运行是寄托于移动设备上各平台的内置浏览器 webkit 的,受到 webkit 处理速度影响,以及各个平台的硬件与软件的性能制约,其程序运行的速度会比原生的程序稍微慢点,但是笔者认为,这些问题在 1-2 年内都会解决,因为现在的硬件的发展速度太快了。

(2)还有一些底层的功能需要插件来实现比如(推送功能)

(3)平台差异化不同,PhoneGap 应用程序在所有平台上运行界面看起来都一样。即使这个应用程序与原生应用很相像,但对于习惯了 iOS 与 Android 平台的用户来说,会觉得不习惯,他们还是会很快看出差异。通过综合比较 PhoneGap 的优点与不足,我们认为,如果你想快速实现一般的移动 WebApp 或者普通的2D 游戏,那么可以采用 PhoneGap 技术。如果你想要实现需要大量 CPU 计算的应用或者 3D 游戏,或者对用户体验及界面有极致的追求,考虑目前的硬件条件和开发成本,使用原生开发来实现比较适合。

四、PhoneGap 前景

2011 年 10 月 4 日 Adobe 宣布收购了创建了 HTML5 移动应用框架 PhoneGap 和 PhoneGap Build 的新创公司 Nitobi Software。这使得 phonegap 有了坚强的后盾,phonegap 的发展前景也是一片光明。与此同时,PhoneGap 的开源框架已经被累积下载 60 万次,借助 PhoneGap 平台,已有数千应用程序建立在 iOS,android以及其它操作系统之上。

五、Web App, Native APP,Hybird App 介绍

(1)Web App

这个主要是采用统一的标准的 HTML,JavaScript.CSS 等 web 技术开发. 用户无需下载,通过不同平台的浏览器访问来实现跨平台,同时可以通过浏览器支持充分使用 HTML5 特性,缺点是这些基于浏览器的应用无法调用系统 API 来实现一些高级功能,也不适合高性能要求的场合.

(2)Native APP

就是所谓的原生应用.指的是用平台特定的开发语言所开发的应用.使用它们的优点是可以完全利用系统的 API 和平台特性,在性能上也是最好的。缺点是由于开发技术不同,如果你要覆盖多个平台,则要针对每个平台独立开发,无跨平台特性.

(3)Hybird App

则是为了弥补如上两者开发模式的缺陷的产物.分别继承双方的优势.首先它让为数众多的 web 开发人员可以几乎零成本的转型成移动应用开发者;其次,相同的代码只需针对不同平台进行编译就能实现在多平台的分发,大大提高了多平台开发的效率;而相较于 web App,开发者可以通过包装好的接口,调用大部分常用的系统 API。PhoneGap 正是 Hybird APP 的代表开发框架

六、Html5 移动应用软件开发框架 JqueryMobile SenchaTouch 介绍

1.JqueryMobile 介绍

jQuery Mobile 是 jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery 核心库,而且会发布一个完整统一的 jQuery 移动 UI 框架。支持全球主流的移动平台。此框架简单易用。页面开发主要使用标记,无需或仅需很少 JavaScript。此框架简单易用。页面开发主要使用标记,无需或仅需很少 JavaScript。

2.SenchaTouch 介绍

前不久基于 JavaScript 编写的 Ajax 框架 ExtJS,将现有的 ExtJS 整合 JQTouch、Raphaël 库,推出适用于最前沿 Touch Web 的Sencha Touch 框架,该框架是世界上第一个基于 HTML5 的 Mobile App 框架。同时,ExtJS 更名为 Sencha,JQTouch 的创始人 David Kaneda,以及 Raphaël 的创始人也已加盟 Sencha团队

转载于:https://www.cnblogs.com/lanzhi/p/6469310.html

相关文章:

  • dba基础课程-linux操作系统:系统信息命令
  • 定位被选中的select
  • 创新团队中常见的几种“怪人”
  • div/iframe自适应浏览器宽度高度问题
  • Linux下PHP支持oracle,安装oracle instant client,pdo_oci笔记
  • EBS JSP文件编译命令
  • git revert和reset区别
  • Yii防注入攻击笔记
  • 设为首页 和 收藏本站js代码 兼容IE,chrome,ff
  • sublime 个性化设置
  • php示例代码之读取文件
  • zabbix 判断 主机是否存活
  • vsftpd-Note
  • 微软RPC官方教程
  • 如何配置和使用Tomcat访问日志
  • [case10]使用RSQL实现端到端的动态查询
  • 「译」Node.js Streams 基础
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 5、React组件事件详解
  • es6要点
  • JavaScript的使用你知道几种?(上)
  • leetcode讲解--894. All Possible Full Binary Trees
  • mysql_config not found
  • node学习系列之简单文件上传
  • Redux系列x:源码分析
  • spring security oauth2 password授权模式
  • Spring核心 Bean的高级装配
  • tab.js分享及浏览器兼容性问题汇总
  • Webpack 4x 之路 ( 四 )
  • 不上全站https的网站你们就等着被恶心死吧
  • 对象引论
  • 目录与文件属性:编写ls
  • 全栈开发——Linux
  • 深度学习在携程攻略社区的应用
  • 我这样减少了26.5M Java内存!
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • # 安徽锐锋科技IDMS系统简介
  • #每天一道面试题# 什么是MySQL的回表查询
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)学习JVM —— 垃圾回收机制
  • (二十四)Flask之flask-session组件
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (未解决)macOS matplotlib 中文是方框
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)为什么要选择C++
  • *** 2003
  • .NET 中的轻量级线程安全
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args