初探B2G平台:采用部分Android技术 可塑性大
- UID
- 863148
|
初探B2G平台:采用部分Android技术 可塑性大
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的同类用户界面元素很相似。
查看homescreen.html页面的源代码,就能看到包括锁屏在内的界面内容是由HTML div标签以及一些JavaScript代码创建的。网页内容既简单又没有新奇之处。
应用:网络浏览器本身也是网页
应用程序都在主屏幕界面的架构内部运行。我们测试了几款应用程序,包括一款电话拨号器、一款网络浏览器、一款地图应用。和主屏幕一样,这些应用程序都是用HTML和CSS实现的。那款网络浏览器其实就是一个网页,带有一个用于网址栏的HTML input元素,还嵌入了用于页面内容加载的iframe元素。
可塑性极大,易受硬件厂商欢迎
目前的Gaia系统环境依然过于简单、不够完善,但是它所展示的智能手机用户体验相当有吸引力,因为它完全由网页内容打造,颠覆了传统的网页概念。在B2G用户界面内可以实现所有能用HTML和CSS实现的功能,所以其样式与主题有着极大的可塑性。这种与生俱来的可塑性让B2G对硬件厂商极具吸引力,因为它能简化创建品牌个性化定制用户界面的过程。
Mozilla尚未创建出基于HTML的应用开发窗口工具包。目前包含在Gaia内的应用还都只是用CSS设计的直接标记。但是理论上讲,在B2G内使用jQuery Mobile和Sencha Touch等现有HTML窗口工具包也是有可能实现的。
还有一件值得一提的事:B2G项目是完全开放的。艾希指出,B2G项目从它开始的第一天就实行公开化管理,并且公开了源代码。B2G也受益于Mozilla的工程师人才和潜在合作伙伴。B2G平台有望成为打破现有移动平台竞争格局的有力竞争者。 |
|
|
|
|
|