Professional Documents
Culture Documents
平台技術概況
陳鵬宇 (float)<a13524000@gmail.com>
MOSUT 2
概念
● The idea is essentially to have all user-
accessible software running on the
phone be a Web app that uses advanced
HTML5 techniques and device APIs to
access the phone's hardware directly via
JavaScript.
MOSUT 3
系統介紹
● Gaia
● Gecko
● Gonk
MOSUT 4
Gaia
● The user interface of b2g. Everything
drawn to screen after b2g starts up is
some part of Gaia. Gaia implements a
lock screen, home screen, telephone
dialer, text-messaging application,
camera app, ... and many more.
MOSUT 5
Gaia
● Gaia is written entirely in HTML, CSS,
and JavaScript. Its only interface to the
underlying operating system is through
Open Web APIs, which are implemented
by Gecko. Gaia works well when run on
top of b2g; however, since it only uses
standard web APIs, it works on other
OSes and in other web browsers.
MOSUT 6
Gaia
MOSUT 7
可能會有人想問
MOSUT 8
可能會有人想問
為什麼只有一張圖?
MOSUT 9
因為 ... 改版了
MOSUT 10
MOSUT 11
Gecko
● The "application runtime" of b2g. At a
high level, Gecko implements the open
standards for HTML, CSS, and JS and
makes those interfaces run well on all
the OSes that Gecko supports.
MOSUT 12
Gonk
● The lower-level "operating system" of
b2g. Gonk consists of a linux kernel and
userspace hardware abstraction layer
(HAL).
MOSUT 13
…......
Gecko
b2g
Gonk
kernel
MOSUT 14
比較
MOSUT 15
Boot
MOSUT 16
Userspace process architecture
MOSUT 17
Gecko: Processing input events
● input-device drivers
● Gonk app shell
● EventHub
● DOM
MOSUT 18
Gecko: Graphics
● At the very lowest level, Gecko uses
OpenGL ES 2.0 to draw to a glcontext
that wraps the hardware framebuffers.
● Gecko draws directly to VRAM.
MOSUT 19
MOSUT 20
Web app
● Web apps are apps built using standard
Web technologies.
● manifest.json
MOSUT 21
manifest.json
https://developer.mozilla.org/en/Apps/Manifest
MOSUT 22
Intsall app
● navigator.mozApps.install(manifestURL)
or
MOSUT 23
Marketplace
https://marketplace.mozilla.org/
MOSUT 24
Demo
MOSUT 25
MOSUT 26
Run B2G
MOSUT 27
Firefox Nightly + gaia
http://alivedise.github.com/blog/2012/05/05/gaia/
MOSUT 28
Emulator
● QEMU Emulator
http://www.figuiere.net/hub/blog/?2012/03/13/818-building-b2g-on-fedora-field-notes
MOSUT 29
Device
● Samsung Galaxy S2
● Samsung Nexus S
MOSUT 30
Reference
● https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko
● https://wiki.mozilla.org/B2G/Architecture
● http://pydoing.blogspot.com/2010/12/javascript-example.html
● http://mozlinks-zh.blogspot.com/2012/05/gaia-mozilla-b2g.html
● http://www.slideshare.net/robhawkes/mdn-hackday-london-boot-
to-gecko-the-future-of-mobile
MOSUT 31
Thank you
Question?
MOSUT 32