B2G系统简介(部分资料来源于网上)

来源:互联网 发布:手机查看路由器mac地址 编辑:程序博客网 时间:2024/06/05 08:38

一、      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 系统开发者体验

  • 使用 Boot-to-Gecko 的设备将会非常便宜,约为 iPhone 的十分之一。
  • 设备启动速度非常快,冷启动 14s。
  • 对于开发者来说,可以随时查看任何程序的代码
  • 和 Telefonica 合作的参考设备将会使用开源硬件产品。
  • 针对 Mozilla Marketplace 设计的程序将不局限于 B2G 系统,可以运行在任何 Firefox 可以运行的平台。在 Android 平台亦可创建独立的启动器。
  • 暂时没有计划提供如同 WebOS 上的 NodeJS 一样的服务层结构,不过欢迎应用程序开发者提出自己的观点。

 

二、      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

描述

进度

WebTelephony

允许拨打和接听电话以及建立呼叫界面

Security Design Complete

Vibration API

控制设备振动,诸如游戏中的触感反馈。不包括为通知而振动

在B2G和android上完成。标准化进行中

Security Design Complete

WebSMS

发送/接收短消息以及短消息存储于设备

在B2G上完成。但android上完成,但由于安全原因可能ship there

Security Design Complete

Idle API

当用户处于空闲状态时得到通知

Implemented

Security Design Complete

Screen Orientation

屏幕方向改变时得到通知,并能控制屏幕方向改变

Implemented

Security Design Complete

Settings API

设置永久保存在设备上的系统配置

内容实施完成,chrome进行中

Security Design Complete

Power Management API

打开/关闭屏幕、CPU和设备等的电源。监听和检查资源锁事件

API设计和实施进行中

Security Design Complete

Mobile Connection API

显示GSM和其他移动网络的信号强度、运营商等信息。不包括wifi

完成

Security Design Complete

TCP Socket API

底层的TCP socket API。包括SSL支持。

实施中

Security Design Complete

Geolocation API

地理信息API,与Firefox3.5的API相同

需要应用程序权限模型

Security Design Complete

Sensor API

访问设备的传感器,如加速度计,磁场(指南针),感应,环境光线等

完成

Security Design Complete

WiFi Information API

特权API来获取可用的WiFi网络列表。还可以获取当前连接网络的信号强度和名称等

API起草

Security Design Complete

Device Storage API

添加/读取/修改存储设备上的central location上的文件。例如桌面平台上的“图片”文件夹或者移动设备上的照片存储

Security Design Complete

Contacts API

添加/读取/修改设备联系人地址簿

Security Design Complete

Mouse Lock API

锁定鼠标。获得movement deltas,而不是坐标

 

Open WebApps

安装web应用,并管理已安装的web应用。并允许已安装的应用获取付费信息。这些都需要建立一个开放的应用程序商店

Security Design Complete

WebBluetooth

对蓝牙硬件的底层访问

Security Design Complete

Network Information API

获取当前网络连接的基本信息。例如当前连接的网速

Security Design Complete

Battery Status API

有关电池电量的信息,如果设备已插上

Security Design Complete

Alarm API

安排的通知,或在特定时间开启应用程序

Security Design Complete

Browser API

启动一个应用网络技术的完整的浏览器

Security Design Complete

Time/Clock API

设置当前时间。时区在Settings API中设置

Security Design Complete

Web Activities

委派一个活动到另一个应用程序

 

Keyboard/IME API

启动虚拟键盘

 

Push Notifications API

允许平台发送消息给特定应用

 

Permissions API

允许Settings app在一个集中的位置管理所有应用程序的权限

Security Design Complete

FM Radio API

FM收音机功能

FileHandle API

写文件锁定

 

Network Stats API

监控数据的使用并对特权应用程序公开数据

 

Resource lock API

防止资源被关闭,例如屏幕,wifi关闭,CPU进入睡眠模式等

完成

Security Design Complete

UDP Datagram Socket API

底层UDP API

计划中

USB file-reading API

当启用时,允许安装连接在计算机上的USB文件系统存储设备

 

Camera API

WebRTC的一部分

Security Design Complete

Peer to Peer API

WebRTC的一部分

 

WebNFC

访问NFC硬件的底层API。当前主要是NDEF支持

Security Design Complete

WebUSB

访问USB硬件的底层API

Security Design Complete

HTTP-cache API

查询存储在浏览器的HTTP缓存中的内容。添加/删除条目。更新过期时间。直接从缓存中获取数据。

 

Calendar API

添加/读取/修改设备日历

 

Spellcheck API

启用webpage来检查文本拼写是否正确以及给出更正建议

 

Background services

启用后台Web应用程序,同步执行任务或响应传入的消息

Security Design Complete

LogAPI

允许将用户活动注册到手机

 

 

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)

· 核心功能:

  • 用户可以通过在地址栏输入URL而轻松快捷的打开浏览器
  • 用户可以通过前进和后退来选择网页
  • 当页面完成加载后,用户可以在任何时候进行重新加载
  • 用户可以在任何时候停止加载网页
  • 可视的指示符来通知用户页面加载进度
  • 当向下滚动页面时, 浏览器会隐藏顶部操作栏并使内容最大化
  • 用户可以设置并保存书签
    • 用户可以设置书签名
    • 用户可以删除书签
  • 用户可以阅览特定类型的文档:
    • .pdf
  • 当网络连接不可用时将通知用户
  • 锁形指示符通知用户该站点经过加密,是安全的。

·  手势:

    • 用户可以通过手势来滚动页面
    • 用户可以缩放页面中的某些区域和对象(除去被优化的站点)
      • 输入框/图片/section: double-tap
      • 普通区域: pinch-to-zoom
      • 用户可以通过手势来显示/隐藏标签托盘
  • 标签页:
    • 用户可以创建新的标签页
    • 用户可以通过打开标签页来快速跳转
    • 用户可以取消/关闭任何打开的标签页
  • AwesomeScreen:
    • 当在地址栏键入时,会提示用户曾经访问过的站点
    • 没有键入时,会提供给用户最后访问过的网站
    • 选择“书签”,可以打开书签列表
    • 选择“历史”,可以打开最近访问过的站点列表
  • 设置:
    • 清空历史
    • 清空Cookies和数据
    • 取消追踪 (this is tied to the main Settings app and permissions model)
    • 开启Cookies
    • 发送性能数据

·  起始页是一个可视页面提供 AwesomeScreen 的功能

    • 类似于Fennec的起始页, it offers a 'speed dial' like experience

·  地址栏提供搜索功能

·  用户可以将书签变成一个应用图标加入主界面中

2.    浏览器功能介绍(gaia v2)

  • 用户可以通过特定的应用分享站点链接:
    • Email
    • SMS
    • 第三方应用 (如社交应用)
  • 用户可以阅览特定类型的文档:
    • .doc
    • .xls
    • .ppt
  • 手势:
    • 用户可以通过手势打开网页或对象的context菜单
      • 例如, 一副图片的 context 菜单提供给用户“保存图片”到图片库的功能
    • 用户可以通过手势来选择文本
    • 用户可以通过手势来前进或后退
  • AwesomeScreen:
    • 提供给用户“搜索建议”
    • 用户管理/组织与其他客户端同步浏览器数据的选项
      • 书签
      • 密码
      • 表单
  • 设置:
    • 用户主密码
    • 记住密码
    • 通过'New Tab' or 'In Background'打开连接
    • 私人浏览模式

原创粉丝点击