什么是B2G?B2G欲打破移动平台竞争格局

2012-02-20 09:53:45来源:Ars Technica作者:Ryan Paul

科技博客网站Ars Technica日前发表莱恩•保罗(Ryan Paul),对Mozilla正在开发的B2G移动平台做了较为深入的介绍,称这款完全基于浏览器的平台可以实现丰富的用户体验,有望打破现有移动浏览器竞争格局。

科技博客网站Ars Technica日前发表莱恩•保罗(Ryan Paul),对Mozilla正在开发的B2G移动平台做了较为深入的介绍,称这款完全基于浏览器的平台可以实现丰富的用户体验,有望打破现有移动浏览器竞争格局。

以下是原文:

Mozilla快马加鞭,平台渐具雏形

Mozilla去年启动了一个名为“Boot2Gecko”(简称B2G)的新项目,目标是开发移动操作系统。该平台的用户界面与应用程序栈完全采用标准化网络技术创建,并且在火狐(Firefox)网络浏览器所采用的Gecko HTML页面渲染引擎上运行。B2G项目今年快马加鞭地推进,平台正在渐具雏形。

Mozilla的B2G团队正准备在即将召开的移动世界大会(Mobile World Congress,简称MWC)上以一段短片展示该平台的用户体验。Mozilla的布伦丹•艾希(Brendan Eich)通过Twitter告诉我们,B2G项目已经吸引到了合作伙伴,其中还包括正在研发自定义主屏幕的公司。这说明,可能有很多公司特别是硬件厂商有意采用B2G平台。

根据Mozilla最近发布的一份路线图,B2G项目可能会在2012年6月底之前推出成型的产品。这一目标可谓雄心勃勃,但是从该项目非同寻常的进展速度来看,它应该还是可以实现的。HTML和JavaScript的广泛采用,无疑一路加速了该项目用户界面和应用程序栈的构建过程。网络技术非常有利于软件的快速开发。

采用部分Android技术,不会运行Android应用

B2G平台主要由三个层次构成。底层被称为Gonk,包括Linux内核、硬件抽象层(HAL)、电话协议栈以及其他低级系统构件。中层是经过改进的Gecko页面渲染引擎,其新型API可显示设备性能。顶层是B2G的用户界面Gaia,它是完全用HTML和JavaScript创建的。

据悉,Gonk中采用的Linux内核与上游Linux“相当接近”。来自Mozilla的文件显示,Gonk采用了Android开源项目的某些底层设计,包括内核定制方面的一些细节,这样能让B2G更容易在Android硬件设备上运行。然而,B2G既不是基于Android的平台,也不会运行Android应用。目前已经有可能在三星的Galaxy S II智能手机上以B2G取代Android环境。

Gecko和Gonk两层之间的互动大多由一个B2G进程来调解,该进程拥有很高的优先级,作用有些像Gecko的服务器。该B2G进程会渲染至帧缓冲,并且会与内置GPS天线或摄像头等硬件元件互动。

无线接口层守护进程(RIL Daemon)具有无线调制解调器功能,通过一个简单代理进程与B2G互动。实际的网络内容与多媒体重播,都由与B2G进程相连的独立进程分别处理。

WebAPI让网页内容实现应用功能

Mozilla的目标是:用原生的HTML和JavaScript构建整个B2G用户界面和应用程序栈。为了实现这一目标,Mozilla启动了WebAPI项目,它通过JavaScript API向网络内容显示设备功能。Mozilla此前已经推出了用于连接特定设备功能的API,如移动版火狐浏览器所支持的加速计与地理定位API等等。

WebAPI项目进一步添加了更多功能,例如用内置摄像头拍照、打电话、查看电池状态、发送及管理SMS短消息、查看用户的地址簿、产生振动等等。这些功能大多都是通过一组JavaScript API在网页内容上实现的。以B2G拨号界面为例,它其实只是一个利用JavaScript功能来拨打电话的网页。

Mozilla正在通过W3C设备API工作组来实现以上API的标准化。理论上讲,用于实现B2G平台基本功能的基础JavaScript API,最终也能被其他平台所装载的网络浏览器默认支持。

围绕设备API进行的标准化尤其重要。如果这些API被广泛采用,那么标准化的B2G用户体验和应用程序栈(它们在本质上只不过是网页内容)就有可能被推广到其他平台的网络浏览器上。Mozilla的B2G项目包涵了一种对未来的愿景——将来那些用标准HTML和JavaScript构建的、基于浏览器的移动应用,可以通过原生的移动应用开发架构,来实现现有应用的所有功能。

Gaia用户界面:下载代码后即开即用

由于B2G的Gaia用户界面层是通过HTML和JavaScript实现的,所以从技术上说,它也能在常规桌面网络浏览器中运行。当然,只有在支持WebAPI的环境中运行网页内容时,那些与设备相关的功能才会生效。

在火狐浏览器的一次每日构建中,我们测试过Gaia的主屏幕用户界面以及一些该平台的应用程序。我们只需从GitHub开源代码库下载相关代码,然后在火狐浏览器中打开homescreen.html文件,即可运行Gaia。

当网页加载时,B2G屏幕处于锁定状态,显示当前日期和时间。将锁屏向上方拖动即可进入主屏幕界面。主屏幕界面显示呈方格排列的应用启动项,顶部有一个通知栏。通知栏内的通知滑块可以被拖动下来,和Android的同类用户界面元素很相似。

图1:B2G锁屏界面 
图1:B2G锁屏界面

图2:B2G主屏幕界面
图2:B2G主屏幕界面

查看homescreen.html页面的源代码,就能看到包括锁屏在内的界面内容是由HTML div标签以及一些JavaScript代码创建的。网页内容既简单又没有新奇之处。

应用:网络浏览器本身也是网页

应用程序都在主屏幕界面的架构内部运行。我们测试了几款应用程序,包括一款电话拨号器、一款网络浏览器、一款地图应用。和主屏幕一样,这些应用程序都是用HTML和CSS实现的。那款网络浏览器其实就是一个网页,带有一个用于网址栏的HTML input元素,还嵌入了用于页面内容加载的iframe元素。

图3:B2G地图应用
图3:B2G地图应用 

图4:B2G网络浏览器应用
图4:B2G网络浏览器应用

可塑性极大,易受硬件厂商欢迎

目前的Gaia系统环境依然过于简单、不够完善,但是它所展示的智能手机用户体验相当有吸引力,因为它完全由网页内容打造,颠覆了传统的网页概念。在B2G用户界面内可以实现所有能用HTML和CSS实现的功能,所以其样式与主题有着极大的可塑性。这种与生俱来的可塑性让B2G对硬件厂商极具吸引力,因为它能简化创建品牌个性化定制用户界面的过程。

Mozilla尚未创建出基于HTML的应用开发窗口工具包。目前包含在Gaia内的应用还都只是用CSS设计的直接标记。但是理论上讲,在B2G内使用jQuery Mobile和Sencha Touch等现有HTML窗口工具包也是有可能实现的。

还有一件值得一提的事:B2G项目是完全开放的。艾希指出,B2G项目从它开始的第一天就实行公开化管理,并且公开了源代码。B2G也受益于Mozilla的工程师人才和潜在合作伙伴。B2G平台有望成为打破现有移动平台竞争格局的有力竞争者。

赞助商链接: