一、 B2G介绍
B2G是“Boot To Gecko”的缩写,是Mozilla公司基于Web标准开发的完全开放的移动操作系统,从系统本身到应用程序完全由HTML5、CSS和JS来写的。
B2G将为用户提供一个基于网络的操作平台,该平台将直接和设备的内核进行交互,而系统 上的所有应用和内容都是基于网络的。在这个Web平台上提供和优化蓝牙、短信等原生App的功能,与原生HTML5应用紧密联系在一起。用户开机即进入到 Gecko内核,用户看到的应用全部都是基于Web的应用。
B2G全部基于开放标准的JavaScript和HTML5进行设计和开发,并且同 Mozilla的其他产品一样,是完全开源的。B2G在移动平台上帮助Mozilla完成它的使命:创建一个开放的、为用户所掌控的更好 的互联网环境。与此同时,Mozilla也在和W3C共同商讨制定新的移动互联网平台标准。
B2G建立Linux内核之上的,看起来好像是用于Android操作系统。事实上,虽然B2G的底层采用了Android开源项目的某些底层设计,包括 内核定制方面的一些细节,这样能让B2G更容易在Android硬件设备上运行。但B2G既不是基于Android的平台,也不会运行Android应 用。B2G路线图显示该操作系统已经支持加内置摄像头拍照、打电话、查看电池状态、发送及管理SMS短消息、查看用户的地址簿、振动等。但没有整合蓝牙、 USB与NFC等功能。B2G将使 用Mozilla的Gaia UI,并使用自己的浏览器和应用程序商店,电子书阅读器,媒体播放器,以及相机/图片库。
B2G和OpenwebOS有什么不同?
webOS 使用 Enyo,固然也是基于 HTML5 + JavaScript 实现的,具有一定的跨平台跨浏览器功能,但是对于设备特殊功能(比如拨号、蓝牙传输等)的访问是通过自定义的 API 实现的,并未标准化。这意味着若是 Web 程序使用了这些特殊功能的话,将只能在 webOS 设备上运行。而 Mozilla 和 W3C 紧密合作推进 WebAPI 意味着针对 B2G 编写的 Web 程序将可以运行在包括 Firefox for Mobile 在内的任何浏览器和手持设备上。此外,webOS 使用 WebKit 做为网页渲染引擎,而 B2G 使用的是 Gecko。
对于普通用户B2G有什么意义?
对于普通用户来讲 B2G 代表未来与设备和平台无关的移动互联网体验,购买的一个 Web 程序,将可以在任何通过 Persona 授权的设备上运行,不再会因为更换手机操作系统而不得不购买新平台的相同程序。
MozillaB2G 系统开发者体验
二、 B2G高级特性
1. B2G系统层次
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进程相连的独立进程分别处理。
2. 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构建的、基 于浏览器的移动应用,可以通过原生的移动应用开发架构,来实现现有应用的所有功能。
WebAPI列表
API | 描述 | 进度 |
允许拨打和接听电话以及建立呼叫界面 | ||
控制设备振动,诸如游戏中的触感反馈。不包括为通知而振动 | 在B2G和android上完成。标准化进行中 | |
发送/接收短消息以及短消息存储于设备 | 在B2G上完成。但android上完成,但由于安全原因可能ship there | |
当用户处于空闲状态时得到通知 | Implemented | |
屏幕方向改变时得到通知,并能控制屏幕方向改变 | Implemented | |
设置永久保存在设备上的系统配置 | 内容实施完成,chrome进行中 | |
打开/关闭屏幕、CPU和设备等的电源。监听和检查资源锁事件 | API设计和实施进行中 | |
显示GSM和其他移动网络的信号强度、运营商等信息。不包括wifi | 完成 | |
TCP Socket API | 底层的TCP socket API。包括SSL支持。 | 实施中 |
Geolocation API | 地理信息API,与Firefox3.5的API相同 | 需要应用程序权限模型 |
Sensor API | 访问设备的传感器,如加速度计,磁场(指南针),感应,环境光线等 | 完成 |
特权API来获取可用的WiFi网络列表。还可以获取当前连接网络的信号强度和名称等 | API起草 | |
添加/读取/修改存储设备上的central location上的文件。例如桌面平台上的“图片”文件夹或者移动设备上的照片存储 | ||
添加/读取/修改设备联系人地址簿 | ||
锁定鼠标。获得movement deltas,而不是坐标 |
| |
安装web应用,并管理已安装的web应用。并允许已安装的应用获取付费信息。这些都需要建立一个开放的应用程序商店 | ||
对蓝牙硬件的底层访问 | ||
获取当前网络连接的基本信息。例如当前连接的网速 | ||
有关电池电量的信息,如果设备已插上 | ||
安排的通知,或在特定时间开启应用程序 | ||
Browser API | 启动一个应用网络技术的完整的浏览器 | |
Time/Clock API | 设置当前时间。时区在Settings API中设置 | |
委派一个活动到另一个应用程序 |
| |
Keyboard/IME API | 启动虚拟键盘 |
|
允许平台发送消息给特定应用 |
| |
Permissions API | 允许Settings app在一个集中的位置管理所有应用程序的权限 | |
FM Radio API | FM收音机功能 | |
写文件锁定 |
| |
Network Stats API | 监控数据的使用并对特权应用程序公开数据 |
|
防止资源被关闭,例如屏幕,wifi关闭,CPU进入睡眠模式等 | 完成 | |
UDP Datagram Socket API | 底层UDP API | 计划中 |
USB file-reading API | 当启用时,允许安装连接在计算机上的USB文件系统存储设备 |
|
WebRTC的一部分 | ||
WebRTC的一部分 |
| |
访问NFC硬件的底层API。当前主要是NDEF支持 | ||
访问USB硬件的底层API | ||
HTTP-cache API | 查询存储在浏览器的HTTP缓存中的内容。添加/删除条目。更新过期时间。直接从缓存中获取数据。 |
|
添加/读取/修改设备日历 |
| |
Spellcheck API | 启用webpage来检查文本拼写是否正确以及给出更正建议 |
|
启用后台Web应用程序,同步执行任务或响应传入的消息 | ||
允许将用户活动注册到手机 |
|
3. 可塑性极大,易受硬件厂商欢迎
目前的Gaia系统环境依然过于简单、不够完善,但是它所展示的智能手机用户体验相当有吸引力,因为它完全由网页内容打造,颠覆了传统的网页概 念。在B2G用户界面内可以实现所有能用HTML和CSS实现的功能,所以其样式与主题有着极大的可塑性。这种与生俱来的可塑性让B2G对硬件厂商极具吸 引力,因为它能简化创建品牌个性化定制用户界面的过程。
Mozilla尚未创建出基于HTML的应用开发窗口工具包。目前包含在Gaia内的应用还都只是用CSS设计的直接标记。但是理论上讲,在B2G内使用jQuery Mobile和Sencha Touch等现有HTML窗口工具包也是有可能实现的。
还有一件值得一提的事:B2G项目是完全开放的。艾希指出,B2G项目从它开始的第一天就实行公开化管理,并且公开了源代码。B2G也受益于Mozilla的工程师人才和潜在合作伙伴。B2G平台有望成为打破现有移动平台竞争格局的有力竞争者。
三、 B2G浏览器功能及高级特性
1. 浏览器功能介绍(gaia v1)
· 核心功能:
· 手势:
· 起始页是一个可视页面提供 AwesomeScreen 的功能
· 地址栏提供搜索功能
· 用户可以将书签变成一个应用图标加入主界面中
2. 浏览器功能介绍(gaia v2)