时至今日,智能手机越来越成为手机的代名词,除了三分天下的 iOS、Andriod、Windows Phone 外,还有年迈不服老的 BlackBerry、Symbian, 出师未捷身先死的 webOS、MeeGo。让人眼花缭乱的系统平台不仅使用户难以选择,更让开发者疲于各个平台的选择和适配吐血不已。这还不算,最近 Mozilla 不甘心自己没有操作系统的事实,联合西班牙电信、德国电信和高通等打算用 Boot to Gecko (B2G)革掉 iOS、Andriod 的命。
Boot to Gecko 是什么?
从字面上,Gecko 是 FireFox 的内核(之于 Chrome、Safari 的 Webkit),Boot to Gecko 意思就是在浏览器中通过WebAPI 直接调用硬件运行系统,可以类比于谷歌的 Chrome OS 手机版(相应的就会被叫做 Boot to WebKit )。相比于传统移动平台操作系统(iOS、Andriod 和 Win Phone)的 App 应用程序层、中间层&框架层、硬件层来说 B2G 是一个基于浏览器的操作系统,直接用 HTML 调用硬件,用浏览器替代操作系统的功能,实现操作系统的网络化。
从 webOS 到 Boot to Gecko
说到这肯定会想起当年 Palm 的 webOS ,后来被惠普收购然后惨遭放弃,到现在还不知最终是死是活的杯具。那么从 Palm webOS 到 Mozilla 的 Boot to Gecko 又有哪些不同呢?
1. 内核不同
这应该是最明显也是最简单的不同了,Palm webOS 是基于 WebKit 做为网页渲染引擎(浏览器内核)的,而 B2G 当然是 Gecko 了。
2. WebAPI 标不标准
在浏览器调用的 API 上,Palm webOS 是自定义的 API,这意味着为 Palm webOS 编写的应用只能用于 Palm webOS 设备,而 B2G 与 W3C 的紧密合作推进了 WebAPI 的标准化,为 B2G 编写的 Web 应用可以运行在包括 Firefox for Mobile 在内的任何浏览器和手持设备上。
3. 是否为真正的 webOS
Palm webOS 是由传统操作系统向 WebOS 迈出的第一步,因此很多地方并未完全摆脱传统操作系统的影子。此外对于游戏类应用,Plam webOS 并不是通过浏览器实现的,而是独立发布对应 SDK(PDK)用 C/C++ 来编译后调用系统原生 API,可以说算是 Native App,而非 WebOS 标准的 Web App。而 B2G 是准备成为完全的 HTML5 Web OS。
Boot to Gecko 意味着什么?
比 Palm webOS 更近一步的 B2G 所倡导的 Web 平台的理念将彻底摆脱操作系统的限制,对于开发者来说,他们只需用 HTML5 标准开发即可,不用浪费资源重复开发各种平台的版本。而对于用户来说,只要有浏览器,就不用担心某个应用与平台的兼容性问题。甚至通过结合之前 Mozilla 的 Persona (Browser ID),用户可以不再因为更换手机而重新购买新平台的相同应用。进步后的 B2G 意味着是它是真正的移动 Web 操作系统。
Boot to Gecko 的优势
1. 开发容易
对于开发者来说,进行 webOS 的 Web App 开发不仅开发环境简易,开发难度更是降低。因为只需要了解 HTML+JavaScript+CSS 就足够了,webOS 原本就旨在将移动设备应用开发扩展到目前最常用最成熟的 Web 开发技术。哪个手机能吸引更多开发者,它就能获得更多更好的应用程序,而哪个手机能拥有更多好的应用程序,它的市场前景就更广阔。使用 C/C++ 语言的开发者人数, 不如 Java 的多,而使用 Java 的开发者,不如 HTML+CSS+JavaScript 的多,毕竟 Web 开发已经发展和经受了十多年的考验。
2. 跨平台跨终端
平台和终端的适配绝对是开发者最头疼的问题之一,拿最流行的 iOS 来说还要分 iPhone 和 iPad,最近 iPad 还要再细分支持 Retina DisPlay 和不支持 Retina DisPlay,至于令人眼花缭乱的安卓手机和平板就更不用说了。还有即将三分天下的 Windows Phone 和 Windows Table,以及市场依旧不小的黑莓、塞班等等。
而 webOS 开发出的 App 可以让开发者不再头疼上面的问题(考虑到不同浏览器渲染机制不同最终可能依旧会需要进行偏差调整,但比起完全重新规划好多了),一次开发可以延伸到所有平台和设备。而 UI 和逻辑的彻底分离,即用浏览器的渲染模块(内核)来处理应用程序的 UI 部分,可以让应用程序开发者避免适配不同型号不同平台的工作负担,把精力集中到应用逻辑的实现上去。此外,用浏览器来负责 UI 的渲染和事件捕捉的话,开发起来不仅更简单,效果更丰富,例如只需修改对应 CSS 就可以提供个性化皮肤。
3. 成本降低
除了开发成本降低外,对于硬件厂商来说,开源的 B2G 和 Andriod 一样授权是免费的,也可以降低硬件商的成本压力。
4. 更新迭代容易
应用的更新迭代在传统移动操作系统上是一件很繁琐的事情,不仅对于开发者,连用户都得重新下载安装。而 Web 应用的迭代更新要简单容易的多,还可以省去安装成本。
Boot to Gecko 的劣势
1. 应用功能偏弱
因为在 WebOS 中的应用(Web App)功能的实现是通过 WebAPI 直接调用硬件的,而配套的标准现在还没有一个标准,部分设备硬件的访问接口调用是无法调用的,如陀螺仪、NFC 等。此外,对于 WebOS 来说,一个个应用就像是一个个网站,虽然可以通过 URL 链接快速定向切换但是应用间的数据通信很难进行,对于像读取通讯录、发图片、加附件等访问存储数据的读写支持上将会很痛苦,消息的推送实现也较困难,这也会使得应用功能变得更加薄弱。
对于以上应用间通讯和通知目前 Google 有初步的方案,不过还没成熟。
2. 应用体验较差
我们知道应用程序的开发除了功能底层外还涉及 UI 的实现和工作流 程的组织,而开发者利用 HTML+CSS+JavaScript 虽然可以通过让UI 的渲染由浏览器内核(渲染机)实现,业务逻辑(功能实现)由 JavaScript 引擎处理来大大降低工作难度,但是将浏览器内核作为 GUI 管理基石的同时也带来了无法让产品像 Native App 那样更酷更炫更动感更性感。例如 iPhone 上最普遍的 黑色毛玻璃透明特效、Cover Flow 和 Srolling Lists 等效果。如果说对于一些简单的阅读网址类应用如 FT 等还好,但是对于需要与用户有大量交互动作的应用来说,Web App 现在很难达到 Native App 的成效。也可以说现阶段移动设备浏览器的性能还不能支持与 Native App 体验媲美的 Web App 。
当然这也并不是无解的,Palm webOS 曾经的解决方案是采用NPAPI(类似 IE 的 ActiveX 技术)来兼容 Adobe 的 Flash Player 到其 WebKit 框架中去。
相信对于 Mozilla 的 Gecko 也是可以通过相应的插件技术来弥补部分体验不足的缺点,但是终归还是达不到本地应用的效果。而未来随着 HTML5 的逐渐强大会一点点追上,但是暂时只能如此了。
3. 源代码保护问题
玩过 Palm webOS 都知道 ROM 下有 /usr/palm/applications 这么一个目录,里面是什么呢?源代码。只要启动开发者模式,安装免费的 Palm webOS SDK 连上数据线就可以看到 webOS 里面所有的一切。应用程序有两种:商业的和开源的,两者的区别只是源代码级别的,它们都可以收费。不过由于应用程序是使用 HTML+JavaScript + CSS 写的,没有编译,没有加密,甚至连简单的混淆器等初步保护都没有,任何人都可以轻易的得到源代码,不管你是商业的还是开源的。就像网页里右键查看源代码一样简单。
因为 webOS 里的 App 其实就是一个功能完善的网站,所以一旦安装应用后,所有的 HTML、JavaScript 、CSS 就像赤裸的羔羊一样任你查看修改蹂躏,甚至连 API 的 Key 和登录信息都是可见的。这对于像付费盈利的开发者来说绝对是一个噩梦。因此在 Palm webOS 里,应用缺少也就显而易见了,连 Foursquare 在上面都不得不开源。这个致命的缺点是所有 Web 开发的通病, B2G 暂时也是无法避免的,除非能在编译和部署之间找到一个完美的解决方案,像 Google 的 Native Client 那样借助 LLVM 编译,布署二进制编译码。这方面,还需等待 Mozilla 更好的解决方法。
4. 盈利模式
Mozilla 已经宣布将建立 Mozilla MarketPlace,同时与电信运营商的联合也表明 B2G 可能会让运营商负责解决包括 OEM 在内的支付、付费等问题,毕竟 Mozilla 做为一个非盈利性组织,它的使命是保持互联网的开放和免费,而不是运营商业盈利机制。因此,对于一个开源的系统如何收费,如何解决支付问题都是摆在 B2G 面前的难题。
WebOS 的前车之鉴
有着相同理念的 Palm webOS 虽然在技术上大受赞扬,但是在商业上的表现绝对算是失败的,不管你承不承认。在 webOS 推出后,没能短期内发布一批重量级的 App, 也没能按时发布多款 webOS 设备,而且当时没有像现在一样开源的 webOS 也不可能像安卓那样授权硬件厂商。既吸引不到用户,又争取不到厂商,因此惠普在收购 Plam 后的第 16 个月,也是 TouchPad 刚刚上市一个月的时候宣布放弃 webOS 设备,之后又决定将 webOS 开源,按照计划今年 9 月份 webOS 1.0 将会发布。 一个较好却不叫座的 Palm webOS 现在就处于这样的一个状态,虽然未来依旧不可期,但惠普希望借助开放和开源来重新激发 webOS 活力的算盘不会打得太响,毕竟连你自家的产品都不亲不爱兴趣寥寥的,如何让凉透心的众多开发者和用户重新任可你呢。所以它只能注定成为粉丝群津津乐道各种折腾的很 high 的平台,远远无法成为移动设备的主流平台系统。 而未来我们看到的是它的创新和优势会一点点的被别人慢慢吸收消化掉,而自己却落得一个好听的先烈称号。
Mozilla 的 Boot to Gecko 会成功吗?
可以说 Palm webOS 算是失败了,那么作为 webOS 的继承者会落得一个和 Plam webOS 一样的下场吗?
在用户角度上, B2G 的 Web App 在体验上还是无法与 Native App 相比,想完全依赖于 Web 技术,将手机中从拨号到游戏的所有应用都用 HTML5 开发的 Mozilla 来说真的不是一件容易的事。对于开发者,B2G 好坏是半数之分,不过 B2G 在硬件厂商方面有着先天的优势。
综合来看,对于 Mozilla 的 Boot to Gecko 将移动操作系统网络化的实质是押宝 HTML 5 (连 Google 的 Chrome OS 也在赌未来),在非智能手机和低端智能手机市场上或许能够满足用户不多的需求从而能够获得一定市场,但是在中高端智能手机上不容乐观,毕竟 Web 标准和网络情况还没有到达支持它充分发挥出自身能力的时刻,Boot to Gecko 还是有点超前。
虽然未来的趋势是手机浏览器会演化为承载移动互联网应用的平台,但当下 Boot to Gecko 更多的还是充当着探路者的角色,当然至于会不会像 Palm webOS 那样成为先烈就不一定了,但是 B2G 对标准化和开源化的推进却使得我们向未来的移动操作系统网络化更近一步。
投稿:极客公园 原文链接。