Suche senden
Hochladen
Firefox OSアーキテクチャクイックツアー
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
1,083 views
Masami Yabushita
Folgen
FIrefox OS Architecture quick tour. Lecture at WANKUMA Seminar Oosaka #63.
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 53
Jetzt herunterladen
Empfohlen
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
Masami Yabushita
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
Masami Yabushita
ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例
Yasutomo Uemori
ぼくはきみの盾 ツール-データ編
ぼくはきみの盾 ツール-データ編
勝成 鈴江
turbolinks攻略
turbolinks攻略
basicinc_dev
Ma11 kintoneハンズオン tokyo
Ma11 kintoneハンズオン tokyo
Kyouhei Kitagawa
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
Game Tools & Middleware Forum
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
Empfohlen
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
Masami Yabushita
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
Masami Yabushita
ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例
Yasutomo Uemori
ぼくはきみの盾 ツール-データ編
ぼくはきみの盾 ツール-データ編
勝成 鈴江
turbolinks攻略
turbolinks攻略
basicinc_dev
Ma11 kintoneハンズオン tokyo
Ma11 kintoneハンズオン tokyo
Kyouhei Kitagawa
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン(株式会社インフィニットルー...
Game Tools & Middleware Forum
watchOS 2 新機能の細かい話
watchOS 2 新機能の細かい話
Shuichi Tsutsumi
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
Garyuten
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり
Study Group by SciencePark Corp.
Firefox OS アプリ開発
Firefox OS アプリ開発
Yoshitomo Akimoto
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
Masami Yabushita
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
できる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリ
Masami Yabushita
Application insights で行ってみよう
Application insights で行ってみよう
Kazushi Kamegawa
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
Ryo Iinuma
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
敦志 金谷
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code
Yukihiko SAWANOBORI
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Android 開発, 運用時に使いたいライブラリやサービスの紹介
健一 辰濱
20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld
Noritada Shimizu
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
tsukasamannen
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
ryoheiseki1
さくらのクラウドフォーメーション with Chef [XEgg session]
さくらのクラウドフォーメーション with Chef [XEgg session]
Yukihiko SAWANOBORI
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
Takuya Kawabe
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
SYUE-SIANG SU
Firefox と Mozilla のテクノロジー
Firefox と Mozilla のテクノロジー
dynamis
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
Study Group by SciencePark Corp.
Idlリーディング xpidl編
Idlリーディング xpidl編
Masami Yabushita
Idlリーディング webidl編
Idlリーディング webidl編
Masami Yabushita
Weitere ähnliche Inhalte
Ähnlich wie Firefox OSアーキテクチャクイックツアー
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
Garyuten
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり
Study Group by SciencePark Corp.
Firefox OS アプリ開発
Firefox OS アプリ開発
Yoshitomo Akimoto
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
Masami Yabushita
Robotium を使った UI テスト
Robotium を使った UI テスト
健一 辰濱
できる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリ
Masami Yabushita
Application insights で行ってみよう
Application insights で行ってみよう
Kazushi Kamegawa
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
Ryo Iinuma
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
敦志 金谷
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code
Yukihiko SAWANOBORI
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Android 開発, 運用時に使いたいライブラリやサービスの紹介
健一 辰濱
20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld
Noritada Shimizu
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
tsukasamannen
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
ryoheiseki1
さくらのクラウドフォーメーション with Chef [XEgg session]
さくらのクラウドフォーメーション with Chef [XEgg session]
Yukihiko SAWANOBORI
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
Takuya Kawabe
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
SYUE-SIANG SU
Firefox と Mozilla のテクノロジー
Firefox と Mozilla のテクノロジー
dynamis
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
Study Group by SciencePark Corp.
Ähnlich wie Firefox OSアーキテクチャクイックツアー
(20)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
自社製品のバージョン管理 進化と問題解決の道のり
自社製品のバージョン管理 進化と問題解決の道のり
Firefox OS アプリ開発
Firefox OS アプリ開発
できる!スマホアプリ:Webからはじまるアプリ for CMU16
できる!スマホアプリ:Webからはじまるアプリ for CMU16
Robotium を使った UI テスト
Robotium を使った UI テスト
できる!スマホアプリ:Webからはじまるアプリ
できる!スマホアプリ:Webからはじまるアプリ
Application insights で行ってみよう
Application insights で行ってみよう
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
a-blogcsm な寺子屋 2 in Okazaki
a-blogcsm な寺子屋 2 in Okazaki
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
2014年のChefとInfrastructure as code
2014年のChefとInfrastructure as code
Android 開発, 運用時に使いたいライブラリやサービスの紹介
Android 開発, 運用時に使いたいライブラリやサービスの紹介
20150118 firefoxos-handson-helloworld
20150118 firefoxos-handson-helloworld
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
20201107 jjug ccc Spring Boot ユーザーのための Quarkus 入門
さくらのクラウドフォーメーション with Chef [XEgg session]
さくらのクラウドフォーメーション with Chef [XEgg session]
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
Firefox と Mozilla のテクノロジー
Firefox と Mozilla のテクノロジー
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
Mehr von Masami Yabushita
Idlリーディング xpidl編
Idlリーディング xpidl編
Masami Yabushita
Idlリーディング webidl編
Idlリーディング webidl編
Masami Yabushita
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
Masami Yabushita
FxOSコードリーディングミートアップ#16 Contacts API読んでみた
FxOSコードリーディングミートアップ#16 Contacts API読んでみた
Masami Yabushita
Meetup11 contacts api読んでみた
Meetup11 contacts api読んでみた
Masami Yabushita
20141018 osc tokyo_fall_firefox osってなぁに?
20141018 osc tokyo_fall_firefox osってなぁに?
Masami Yabushita
マンガで覚える視線誘導 おかわり
マンガで覚える視線誘導 おかわり
Masami Yabushita
ちょっとapiかいてみた
ちょっとapiかいてみた
Masami Yabushita
Fx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめ
Masami Yabushita
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
Masami Yabushita
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
Masami Yabushita
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
Masami Yabushita
バッテリー監視のためにバックグラウンドタスクについて調べたらなくなってたから泣く泣くタイマーApiを使ってみた話
バッテリー監視のためにバックグラウンドタスクについて調べたらなくなってたから泣く泣くタイマーApiを使ってみた話
Masami Yabushita
N29 aoitan firefox osことはじめ
N29 aoitan firefox osことはじめ
Masami Yabushita
Fx osコードリーディングの紹介
Fx osコードリーディングの紹介
Masami Yabushita
ちょっとapiかいてみた
ちょっとapiかいてみた
Masami Yabushita
Mehr von Masami Yabushita
(16)
Idlリーディング xpidl編
Idlリーディング xpidl編
Idlリーディング webidl編
Idlリーディング webidl編
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
FxOSコードリーディングミートアップ#16 Vibration APIも読んでみた
FxOSコードリーディングミートアップ#16 Contacts API読んでみた
FxOSコードリーディングミートアップ#16 Contacts API読んでみた
Meetup11 contacts api読んでみた
Meetup11 contacts api読んでみた
20141018 osc tokyo_fall_firefox osってなぁに?
20141018 osc tokyo_fall_firefox osってなぁに?
マンガで覚える視線誘導 おかわり
マンガで覚える視線誘導 おかわり
ちょっとapiかいてみた
ちょっとapiかいてみた
Fx OS n2_aoitan_firefox osことはじめ
Fx OS n2_aoitan_firefox osことはじめ
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
T82 aoitan あおいたんのパズルを数学しましょうか_修正版
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
わんくま勉強会東京#82 あおいたんのパズルを数学しましょうか
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視のためにバックグラウンドタスクについて調べたらなくなってたから泣く泣くタイマーApiを使ってみた話
バッテリー監視のためにバックグラウンドタスクについて調べたらなくなってたから泣く泣くタイマーApiを使ってみた話
N29 aoitan firefox osことはじめ
N29 aoitan firefox osことはじめ
Fx osコードリーディングの紹介
Fx osコードリーディングの紹介
ちょっとapiかいてみた
ちょっとapiかいてみた
Firefox OSアーキテクチャクイックツアー
1.
わんくま同盟 大阪勉強会 #63 Firefox
OSアーキテクチャクイックツアー 株式会社グローバルサイバーグループ マネージャ 藪下 正美
2.
わんくま同盟 大阪勉強会 #63 はじめに
3.
わんくま同盟 大阪勉強会 #63 自己紹介 •
藪下正美 – わんくまでは普段あおいたんとか名乗ってる人 – 大阪は#45以来ですおひさしぶりです • 株式会社グローバルサイバーグループから来ました • Firefox OSコミュニティから来ました • Codezineで記事書きました – Firefox OSアプリ開発が楽しくなるハードウェアAPIの概要と、 センサーAPIや音声APIを使った楽器アプリの作例 – http://codezine.jp/article/detail/8540
4.
わんくま同盟 大阪勉強会 #63 会社紹介 •
株式会社グローバルサイバーグループ – 関西出身の組み込み系の会社 • 携帯電話とか業務用コピー機とかデジカメとかの中の人やってます • 最近はAndroidのすごい下の方か各モバイルOS向けアプリを主にやって ます – Firefox OSの勉強会を支援する事業やってるので興味があればご 相談ください • http://www.gcg.bz/labo_blog/?page_id=943 – 各種モバイルOSの質問も受け付けてます。ブログで回答します • http://www.gcg.bz/labo_blog/?page_id=945
5.
わんくま同盟 大阪勉強会 #63 コミュニティ紹介 •
Firefox OSコミュニティで各種イベントのスタッフとかス ピーカとかやってます – FxOSコードリーディングというコミュニティのいいだしっぺ • http://reading.fxos.org/ • 大体毎月Mozilla Japanのオフィスでソースコードを読む会やってます • 年三回ぐらい成果発表会的なセミナーやってます • ほかにもHTML5j Webプラットフォーム部とかWoT的なソ フト/ハードを味見するコミュニティもやってます
6.
わんくま同盟 大阪勉強会 #63 今日のアジェンダ1 •
Firefox OSの全体像 – Gaia – Gecko – Gonk
7.
わんくま同盟 大阪勉強会 #63 今日のアジェンダ2 •
Gaiaについて少し詳しく – Gaiaの全体像 – アプリの権限 – ChromeプロセスとContentプロセス – Chromeプロセスで動くアプリ – Contentプロセスで動くアプリ
8.
わんくま同盟 大阪勉強会 #63 今日のアジェンダ3 •
Geckoについて少し詳しく – Gecko概要 – 三大機能と三つのツリー
9.
わんくま同盟 大阪勉強会 #63 今日のアジェンダ4 •
Gonkについて少し詳しく – HAL – AOSP Linux • 全体まとめ • さいごに
10.
わんくま同盟 大阪勉強会 #63 Firefox
OSの全体像 • Firefox OSは大別して三つのモ ジュールで構成される
11.
わんくま同盟 大阪勉強会 #63 Firefox
OSの全体像 • Firefox OSは大別して三つのモ ジュールで構成される – Gaia • UIやプリインアプリなど ユーザに見える基本機能を 提供する • すべてHTML5で書かれている
12.
わんくま同盟 大阪勉強会 #63 Firefox
OSの全体像 • Firefox OSは大別して三つのモ ジュールで構成される – Gecko • Gaiaやユーザアプリが 使用するAPIやHTML5の ランタイムを提供する • C++、JS、IDLなど多くの 言語で実現されている
13.
わんくま同盟 大阪勉強会 #63 Firefox
OSの全体像 • Firefox OSは大別して三つのモ ジュールで構成される – Gonk • OS、HALなどを含む層 • C/C++で書かれている
14.
わんくま同盟 大阪勉強会 #63 Gaia •
UIやプリインアプリなどでデ バイスの基本的な操作を提供 する • すべてHTML5で書かれている • Geckoに依存するがプラット フォームに依存しない – B2Gデバイス、デスクトップ、 シミュレータなどGeckoが動作 する環境であれば広く動作する • Gaiaはプロファイルに応じて 提供する機能やUIの変更が多 い
15.
わんくま同盟 大阪勉強会 #63 Gecko •
Gaiaやユーザアプリが使用す るAPIやHTML5のランタイムを 提供する • C++、JS、IDLなど多くの言語 で実現されている • FirefoxやThunderbirdなどの Mozilla製品で共通のランタイ ム
16.
わんくま同盟 大阪勉強会 #63 Gonk •
OS、HALなどを含む層 • WindowsやMac OS XなどのOS と同等にGeckoの移植対象プ ラットフォームの一つとして 定義されている • Gonkは現状唯一B2Gの要求を 満たすプラットフォーム – 他のOSでは必要な権限が得られ ない • Gonkで使用されるOSはAOSP Linux
17.
わんくま同盟 大阪勉強会 #63 GAIAについて少し詳しく
18.
わんくま同盟 大阪勉強会 #63 Gaiaの全体像 •
Gaiaのアプリ (以下内部アプ リ) はUIや基本機能を提供する • 内部アプリは大きく分けて Chromeプロセスで動くアプリ とContentプロセスで動くアプ リに分けられる
19.
わんくま同盟 大阪勉強会 #63 アプリの権限 •
アプリには利用できるAPIの範 囲が異なる権限タイプが存在 する – web権限 (ホスト型アプリ/単純 なパッケージ型アプリ) – trusted権限 (信頼されたホスト型 アプリ) – privileged権限 (特権型アプリ) – certified権限 (内部アプリ) 権限 概要 Web権限 基本的な権限 ハードウェアにアクセスするAPIやプライ バシーにかかわるAPIが使えない Trusted権限 V2.1から追加された権限 一部のユーザに許可を求めるタイプの APIを使用できる Privileged権限 事業者に関わる課金、重大なプライバ シー/セキュリティインシデントが予想さ れるものを除いたAPIが使用できる権限 Certified権限 キャリアやメーカがプリインアプリでのみ 使用可能な権限 すべてのAPIを使用できる
20.
わんくま同盟 大阪勉強会 #63 ChromeプロセスとContentプロセス •
内部アプリは特権的な機能を 利用するため認証 (certified) 権 限を持つ • Geckoの制約上特権的APIは特 権的なプロセスでないと実行で きない • この特権的なプロセスを Chromeプロセスと呼ぶ Gaia Gecko Chrome プロセス Content プロセス APIs (Interface) APIs (Implement) API呼び出し
21.
わんくま同盟 大阪勉強会 #63 ChromeプロセスとContentプロセス •
内部アプリの大部分を含む一 般的なアプリでは特権的でな いContentプロセスで動作する • Contentプロセスで動作するア プリでもアプリマニフェスト で宣言し、ユーザに許可され た機能についてはAPIの使用を 許可される Gaia Gecko Chrome プロセス Content プロセス APIs (Interface) APIs (Implement)
22.
わんくま同盟 大阪勉強会 #63 アプリのヒエラルキー •
Firefox OSのアプリは少数の Chromeプロセスアプリと多数 のContentプロセスアプリから なる • Firefox OSで実行されるアプリ はSystemアプリの子プロセス として実行される • 子プロセスはContentプロセス として起動される Gaia Gecko Chrome プロセス Content プロセス APIs (Interface) APIs (Implement)
23.
わんくま同盟 大阪勉強会 #63 Chromeプロセスで動くアプリ •
Chromeプロセスで動くアプリ としては以下のものが挙げら れる – Systemアプリ – Settingsアプリ – ブラウザアプリ – キーボードアプリ – 検索アプリ • これらのアプリにはSystemア プリの一部として動作するも のもある System Settings ブラウザ キーボード 検索
24.
わんくま同盟 大阪勉強会 #63 Systemアプリ •
アプリの管理とか共通して使 われるUIを管理するアプリ • Firefox OSで見た目のあるアプ リすべての親 – 見た目がないアプリもいくつか ぶら下がっている • アプリ起動時のアニメーショ ンやアプリの切り替えなども Systemアプリの管轄 Settings ブラウザ キーボード 検索 System
25.
わんくま同盟 大阪勉強会 #63 Settingsアプリ •
特定のアプリによらない設定 を行うアプリ • 端末設定を変更するのは特権 的機能なのでChromeプロセス で動作する • Systemアプリが提供している 機能の設定はSettingsアプリの 仕事となる ブラウザ キーボード 検索 System Settings
26.
わんくま同盟 大阪勉強会 #63 ブラウザアプリ •
その名の通りブラウザアプリ • webブラウズだけでなくアプ リのインストール経路にもな るので特権的な位置づけにあ る Settings キーボード 検索 System ブラウザ
27.
わんくま同盟 大阪勉強会 #63 キーボードアプリ •
ユーザが文字入力を行うため のアプリ • ここではキーボードそのもの ではなくキーボードが動作す るフレームワークになる部分 を指している • 実際操作される部分はユーザ が選択可能であり作成可能で ある Settings ブラウザ 検索 System キーボード
28.
わんくま同盟 大阪勉強会 #63 検索 •
ホーム画面上部にある検索 ボックス • v2.1からはアプリ起動中もス テータスバーに常駐するよう になった • 検索ボックスもアプリのイン ストール経路になるので特権 的な位置づけになる Settings ブラウザ キーボード System 検索
29.
わんくま同盟 大阪勉強会 #63 Contentプロセスで動くアプリ •
Contentプロセスで動くアプリ は多数あるが大別すると以下 の二つ – プリインアプリ (内部アプリ) – ユーザアプリ プリインアプリ ユーザアプリ
30.
わんくま同盟 大阪勉強会 #63 プリインアプリ •
ダイアラやメッセージングな どの工場出荷状態でインス トール済みのアプリ • 一部の特権アプリを除いてほ ぼ認証権限を持つ • 一般の開発者によるアプリも 採用されることがある ユーザアプリ プリインアプリ
31.
わんくま同盟 大阪勉強会 #63 ユーザアプリ •
ユーザアプリは出荷後にユー ザによってインストールされ るアプリ • 基本的には検索やマーケット プレイスを通して入手する プリインアプリ ユーザアプリ
32.
わんくま同盟 大阪勉強会 #63 GECKOについて少し詳しく
33.
わんくま同盟 大阪勉強会 #63 Geckoの全体像 •
ざっくり分けてブラウザ機能、 通信系、レンダラ、描画系、 スクリプトエンジン、プラグ インコンテナ、プラット フォーム固有層、プラット フォーム抽象化層で構成され る • 全部は話せないのでざっくり 分けた機能について一言ずつ と代表的な機能の中でも密接 な関係を持っている部分につ いて述べる Gecko プラットフォーム固有層 プラットフォーム抽象化層 プラグインコンテナ スクリプトエンジン レンダラ 通信系 ブラウザ機能
34.
わんくま同盟 大阪勉強会 #63 Gecko概要 •
ブラウザ機能 – 履歴やブラウザコンテキストの 管理、トップレベルオブジェク トの提供などを行う • 通信系 – 主にプロトコルに応じた処理へ ディスパッチするプロトコルハ ンドラ、サーバとの通信を行う チャネル、URI文字列の構文 チェックや正規化を行うURIオブ ジェクトを中心概念として構成 される Gecko プラットフォーム固有層 プラットフォーム抽象化層 プラグインコンテナ スクリプトエンジン レンダラ 通信系 ブラウザ機能
35.
わんくま同盟 大阪勉強会 #63 Gecko概要 •
レンダラ – CSSやstyle属性、JSからの操作に よって決定されるDOMツリーの 表示表現を作り描画系に指示を 与える • 描画系 – プラットフォームに依存しない 抽象化された描画フレームワー クMoz2D、旧フレームワークの Thebes、レイヤシステム、APZ (Asynchronous Pan and Zoom) な どからなる Gecko プラットフォーム固有層 プラットフォーム抽象化層 プラグインコンテナ スクリプトエンジン 通信系 ブラウザ機能 レンダラ
36.
わんくま同盟 大阪勉強会 #63 Gecko概要 •
スクリプトエンジン – JavaScriptエンジン、XPConnect (XPCOM)、WebIDLバインディン グなど数種類の言語処理系を持 つ • プラグインコンテナ – Flashプレイヤーなどのサード パーティプラグインやDRMシス テム、ビデオハードウェア、そ の他埋め込みオブジェクトなど をブラウザ本体のプロセスから 切り離し影響を最小化するため のコンテナ機能を提供する Gecko プラットフォーム固有層 プラットフォーム抽象化層 レンダラ 通信系 ブラウザ機能 プラグインコンテナ スクリプトエンジン
37.
わんくま同盟 大阪勉強会 #63 Gecko概要 •
プラットフォーム抽象化層 – NSPR、XPCOMなどのクロスプ ラットフォーム用抽象化ライブ ラリや文字列、数などのプラッ トフォームによらず表現を一定 にしたいプリミティブなデータ 表現を提供する • プラットフォーム固有層 – ウィジェット、ファイル、ソ ケット、ヒューマンインター フェイスなど低レイヤ機能 Gecko プラグインコンテナ スクリプトエンジン レンダラ 通信系 ブラウザ機能 プラットフォーム固有層 プラットフォーム抽象化層
38.
わんくま同盟 大阪勉強会 #63 三大機能と三つのツリー •
ここからはブラウザ機能、レ ンダラ、描画系、スクリプト エンジンにまたがるGeckoの 主要機能について述べる Gecko プラットフォーム固有層 プラットフォーム抽象化層 プラグインコンテナ 通信系 スクリプトエンジン レンダラ ブラウザ機能
39.
わんくま同盟 大阪勉強会 #63 三大機能と三つのツリー •
Geckoはブラウザの機能とし てHTMLパーザ、JSエンジン、 CSSレンダラを持つ • これらはそれぞれDOMツリー、 JSオブジェクトツリー、レン ダリングツリーという密接に 関係した三つのツリー構造を 持つ Gecko プラットフォーム固有層 プラットフォーム抽象化層 プラグインコンテナ 通信系 スクリプトエンジン レンダラ ブラウザ機能 HTMLパーザ JSエンジン CSSレンダラ
40.
わんくま同盟 大阪勉強会 #63 三大機能と三つのツリー •
HTMLがパースされDOMツ リーになると、DOMツリーと 対応したJSオブジェクトのツ リー、DOMツリーにCSSやJS による操作を適用して描画を 行うためのレンダリングツ リーも連動して生成される <html> <head> <title> <meta> … <body> <header> … <section> … … HTMLElement HTMLHeadEle ment HTMLTitleEle ment HTMLMetaEle ment … HTMLBodyEle ment Element … Element … … <html> <body> <head> … <section> … …
41.
わんくま同盟 大阪勉強会 #63 HTMLパーザとDOMツリー •
パーザはHTMLを解釈すると DOMと呼ばれるツリー上の データ構造を構築する • DOMツリーはHTMLとして記 述された木構造とその構造上 のオブジェクトに対する操作、 状態を表したオブジェクト – JavaScriptから操作することに よってHTMLの状態や見た目の状 態を変更することができる HTMLElement HTMLHeadEle ment HTMLTitleEle ment HTMLMetaEle ment … HTMLBodyEle ment Element … Element … … <html> <body> <head> … <section> … … <html> <head> <title> <meta> … <body> <header> … <section> … …
42.
わんくま同盟 大阪勉強会 #63 JSエンジンとJSオブジェクトツリー •
JSエンジンはHTMLから参照さ れているJavaScriptのソース コードやscriptタグ内に記述さ れたJavaScriptを読み込んで実 行する <html> <head> <title> <meta> … <body> <header> … <section> … … <html> <body> <head> … <section> … … HTMLElement HTMLHeadEle ment HTMLTitleEle ment HTMLMetaEle ment … HTMLBodyEle ment Element … Element … …
43.
わんくま同盟 大阪勉強会 #63 <html> <body> <head> … <section> …
… JSエンジンとJSオブジェクトツリー • この時DOMツリーとして構築 された木構造と関連して JavaScriptから操作可能なオブ ジェクトを構築していく – その結果JavaScriptからDOMツ リーを操作したり、何らかの要 因で変更されたDOMツリーに対 応してJavaScriptから参照できる オブジェクトの状態も変化する 関係が作られる <html> <head> <title> <meta> … <body> <header> … <section> … … HTMLElement HTMLHeadEle ment HTMLTitleEle ment HTMLMetaEle ment … HTMLBodyEle ment Element … Element … …
44.
わんくま同盟 大阪勉強会 #63 レンダラとレンダリングツリー •
レンダラはCSS、style属性、 JavaScriptによる操作などの結 果DOM要素がどのように描画 されるかを計算する <html> <head> <title> <meta> … <body> <header> … <section> … … HTMLElement HTMLHeadEle ment HTMLTitleEle ment HTMLMetaEle ment … HTMLBodyEle ment Element … Element … … <html> <body> <head> … <section> … …
45.
わんくま同盟 大阪勉強会 #63 レンダラとレンダリングツリー •
レンダラやスタイルシステム はDOMツリーをもとにスタイ ルやJavaScriptによる操作を適 用した描画計算に基づくツ リー構造を作る – これをレンダリングツリーと呼 ぶ • レンダラにはパイプライン構 造があり、各要素の矩形フ レーム生成、レンダリングツ リーの構築、レイアウト、リ フロー、描画と進む HTMLElement HTMLHeadEle ment HTMLTitleEle ment HTMLMetaEle ment … HTMLBodyEle ment Element … Element … … <html> <body> <head> … <section> … … <html> <head> <title> <meta> … <body> <header> … <section> … …
46.
わんくま同盟 大阪勉強会 #63 GONKについて少し詳しく
47.
わんくま同盟 大阪勉強会 #63 Gonk概要 •
GonkはOSや低レベル機能を含 む層 • 基礎的なOSとしてはAOSP Linuxを使っている • WindowsやLinux、Mac OS Xの ようなGeckoの移植対象の一 つとして開発されている Gonk Daemon Interfaces HAL Drivers Linux
48.
わんくま同盟 大阪勉強会 #63 Gonk概要 •
現状Geckoの移植対象OSの中 では唯一特権的機能にアクセ スできるため、他のOSでは実 現不可能なAPIなども実装され ている • ここからHAL層とAOSP Linux について少し述べる Gonk Daemon Interfaces Drivers Linux HAL
49.
わんくま同盟 大阪勉強会 #63 HAL •
その名の通りハードウェアを 抽象化する層 – GeckoのHALラッパー層で上位に 提供するAPI仕様を満たす制御を 行い、GonkのHAL層はGeckoの HALラッパーが要求するイン ターフェイスを提供する – 多くの場合GeckoのHALラッパー 層で非同期処理の制御を行い、 GonkのHAL層では同期的なAPIを 提供している Gonk Daemon Interfaces Drivers Linux HAL
50.
わんくま同盟 大阪勉強会 #63 AOSP
Linux • Android Open Source Projectに よってホストされているLinux • GonkはAOSP Linuxから不要な モジュール (SurfaceFlingerな ど) を取り除きGeckoの要求す るHALインターフェイスを実 装したOSである Gonk Daemon Interfaces HAL Drivers Linux
51.
わんくま同盟 大阪勉強会 #63 AOSP
Linux • ブートの仕組みはAndroidと同 様にinitがinit.rcを読み込んで記 述にしたがって順次プロセス を起動する – Firefox OSの場合はinit.b2g.rcと いう固有の設定ファイルがinit.rc から参照されている – init.b2g.rcの記述にしたがって Geckoを起動しshell.jsという起動 用のスクリプトをGeckoに処理 させることでFirefox OSを起動す る Gonk Daemon Interfaces HAL Drivers Linux
52.
わんくま同盟 大阪勉強会 #63 全体まとめ •
Firefox OSはGaia、Gecko、Gonkの三層からなる • Gaiaはユーザの目に触れる部分、ユーザが直接触れる体験 を提供する • Geckoはデスクトップブラウザにも使われてるエンジン。 ブラウザに必要な機能を一通り備えた (=OSの要件を備え た) エンジンをミドルウェアとして利用している • GonkはFirefox OSのために作られたOSコア部分。Geckoの 移植対象OSでもある
53.
わんくま同盟 大阪勉強会 #63 さいごに •
ものすごく駆け足でFirefox OSの全体を一攫いしました • 各部分だけで何セッションかできる骨太機能の集まりなの でどこを見ても楽しいですよ! • Firefox OSコミュニティはまだ若い世界です • あなたも一緒に盛り上げてみませんか?
Hinweis der Redaktion
Gecko以下はプロファイルに対してほぼ差がない v2.2時点でphone、tablet、tvのプロファイルが存在する
ブラウザアドオンなどの世界ではUIを制御したりブラウザ内部でのみ使用を許されているAPIを実行するためのプロセスをChromeプロセスと呼んでいる
権限については後述 この場合も実際にはChromeプロセスへの要求であり、APIの実行はChrome権限を持ったプロセス上で行われる この構造はContentプロセスのアプリがプラグインコンテナのような仕組みで動いていることに由来する
マーケットにプリインアプリとして使用していいアプリとして申請するとメーカーへの採用がPRできる
通信系:Neckoとも呼ばれる
描画系:詳しい話をするとここだけでセッション一つできちゃう楽しい機能 描画系:非同期描画向けの部分にいろいろあって闇が深い
プラットフォーム抽象化層:NSPRはプラットフォーム固有機能をラップし抽象化された低レベル操作を提供するライブラリ プラットフォーム抽象化層:XPCOMはMSCOMのようなオブジェクトモデルを提供する。オブジェクトの検索、ガーベージコレクトなどの機能を備える プラットフォーム固有層:ここで言うウィジェットはwindowオブジェクトの汎化概念
HTMLはツリー構造のシリアライゼーションでありDOMはそのメモリ上の表現
Firefox OSでは多くのハードウェアアクセスAPIを提供しているのでGeckoのHALラッパー、プラットフォーム固有のHALのお決まりの作りを知っておくのは悪いことではない
Jetzt herunterladen