HTML5开发框架PhoneGap实战

2015年02月12日 13:49 0 点赞 0 评论 更新于 2025-11-21 16:18

如果把移动互联网比作新互联时代的骨骼,那么运行于移动平台之上的应用软件就如同血肉,是真正体现其价值的载体。

PhoneGap框架概述

从概念上讲,PhoneGap 是一款完全开源的跨平台移动应用开发框架。开发人员借助该框架,能够运用传统的 Web 开发技术(HTML + CSS + JavaScript)来实现待开发应用的用户界面(UI)和程序逻辑。

在开发过程中,PhoneGap 框架提供了一系列 API,供开发人员在 JavaScript 代码中调用。通过这些 API 调用,PhoneGap 程序可以与相应移动平台的软件开发工具包(SDK)API 进行交互,从而调用运行平台的本地功能。

在运行时,使用 Web 技术编写的资源文件(HTML、CSS、JS)会被打包成类似“镜像文件”的形式,发布到待运行平台中,由浏览器解析执行,进而实现一次开发、跨多平台运行的目标。

Web App 与 Native App 解析

Web App

Web App 无需安装,对设备碎片化的适应能力优于原生应用(App)。它仅需通过 XHTML、CSS 和 JavaScript 就可以在任意移动浏览器中执行。随着 iPhone 带来的 WebKit 浏览体验升级,专为 iPhone 等具备 WebKit 浏览内核的移动设备开发的 Web 应用,也能拥有如原生应用一般流畅的用户体验。

Web App 的优势

  1. 开发成本低:相较于 Native App,Web App 的开发技术较为通用,开发周期可能更短,从而降低开发成本。
  2. 适配多种移动设备成本低:由于基于 Web 技术,只需进行少量的适配调整,就能在不同移动设备上运行。
  3. 跨平台和终端:可以在多种操作系统和设备类型上访问,不受特定平台的限制。
  4. 迭代更新容易:开发人员只需更新服务器端的代码,用户下次访问时即可使用最新版本。
  5. 无需安装成本:用户无需下载和安装应用,直接通过浏览器访问即可。

Web App 的劣势

  1. 浏览体验短期内难以超越原生应用:在图形处理、动画效果等方面,Web App 的性能可能不如 Native App。
  2. 不支持离线模式(HTML5 可解决此问题):在没有网络连接的情况下,Web App 可能无法正常使用。
  3. 消息推送不够及时:消息推送机制相对不够完善,可能导致信息传递不及时。
  4. 调用本地文件系统的能力弱:对本地文件的读写和操作权限有限。

Native App

Native App 位于平台层上方,向下访问和兼容的能力较好,支持在线或离线使用、消息推送、本地资源访问以及摄像、拨号等功能的调取。然而,由于设备碎片化问题,Native App 的开发成本较高,维持多个版本的更新升级较为麻烦,用户的安装门槛也相对较高。不过,App Store 培养了良好的用户付费模式,在 Apple 的生态圈里,开发者的盈利模式较为明朗,其他应用市场也在向此方向发展。

Native App 的优势

  1. 提供最佳的用户体验:具备最优质的用户界面和最华丽的交互效果,能够充分利用设备的硬件性能。
  2. 针对不同平台提供不同体验:可以根据不同平台的特点和用户习惯,进行定制化开发。
  3. 可节省带宽成本:部分数据可以本地存储和处理,减少网络数据传输。
  4. 可访问本地资源:能够直接访问设备的摄像头、麦克风、相册等本地资源。
  5. 盈利模式明朗:可以通过应用内购买、广告、付费下载等多种方式实现盈利。

Native App 的劣势

  1. 移植到不同平台上比较麻烦:需要针对不同的操作系统(如 iOS 和 Android)进行单独开发。
  2. 维持多个版本的成本比较高:需要对不同版本的应用进行维护和更新。
  3. 需要通过应用商店或市场的确认:应用的发布和更新需要经过应用商店的审核,可能会影响发布时间。
  4. 盈利需要与第三方分成:应用商店通常会抽取一定比例的收入作为分成。

融合发展

乔布斯曾谈到,Web 是未来,尽管现阶段 Native App 能给用户更好的体验。开发者若不有效利用 Web 技术,将会落伍;但过分依赖 Web 而完全不使用 Native 技术也未必是好事。

在 iOS 平台上,App 分为三类:Web App 通过浏览器访问;Native App 通过 App Store 安装;第三类是 Hybrid App,它看似是 Native App,但只有一个 UI WebView,里面访问的是 Web App。例如,街旁网最初的应用是封装了客户端外壳,实际内部是 HTML5 网页,后来才推出真正的原生应用。更为彻底的例子是掌上百度和淘宝客户端 Android 版,采用的也是 Hybrid App 路线,不过掌上百度封装的不是 WebView,而是自己的浏览内核,因此在体验上更接近客户端,效率更高。

谷歌的 Chrome OS 和 Android 虽同为操作系统,但发展方向不同。Chrome OS 走的是 Web App 的路线,从 Chrome OS 大会上发布的 Chrome Web App 可以看出,谷歌希望为未来的 Chrome OS 做铺垫,鼓励开发者开发出具有应用程序体验的 Web App,正如 Chrome OS 官网上所说——“Nothing but the web”。而 Android 则侧重于 Native App 开发,作为手机平台的操作系统,更注重应用程序的开发,这从 Android Market 可见一斑。前微软首席架构师 Ray Ozzie 评价道:“谷歌的战略中 Android(以 App 为主)是在赌过去,而 Chrome OS(完全基于 Web)则是在赌未来。”

由此我们得到启发,要服务于未来,必须紧跟技术发展的步伐,提供更好的网页服务和体验。但考虑到当下用户的需求,又必须提供现阶段浏览体验最佳的客户端产品。然而,客户端较为笨重且更新迟缓,不能像传统网页那样灵活变化,只能规划好功能点,逐步迭代,因为用户的升级成本较高。因此,出现了 Web App + Native App 的架构,在现有条件下为用户提供最佳的浏览体验和升级迭代方案。

作者信息

boke

boke

共发布了 3994 篇文章