Submit Search
猫でも分かる Android WebKit
19 likes
9,000 views
Naruto TAKAHASHI
1 of 42
Download now
Downloaded 61 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
More Related Content
PPTX
201312クラウド女子会
Yasuhiro Araki, Ph.D
PDF
Amazon Web Services 最新事例集
SORACOM, INC
PDF
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
Amazon Web Services Japan
PDF
03_AWS IoTのDRを考える
Amazon Web Services Japan
PDF
01_2021年上半期 AWS IoT サービスアップデート
Amazon Web Services Japan
PDF
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
Amazon Web Services Japan
PDF
製造業向けSmart Factoryデモと 関連AWSサービスのご紹介
Amazon Web Services Japan
PDF
20120206 aws meister-reloaded-direct-connect-public
Amazon Web Services Japan
201312クラウド女子会
Yasuhiro Araki, Ph.D
Amazon Web Services 最新事例集
SORACOM, INC
Amazon FreeRTOSを用いた量産向けIoTマイコンデバイス開発プロトタイピング
Amazon Web Services Japan
03_AWS IoTのDRを考える
Amazon Web Services Japan
01_2021年上半期 AWS IoT サービスアップデート
Amazon Web Services Japan
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
Amazon Web Services Japan
製造業向けSmart Factoryデモと 関連AWSサービスのご紹介
Amazon Web Services Japan
20120206 aws meister-reloaded-direct-connect-public
Amazon Web Services Japan
What's hot
(20)
PDF
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
PDF
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
Amazon Web Services Japan
PDF
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
Amazon Web Services Japan
PPTX
いまさら、AWSのネットワーク設計
Serverworks Co.,Ltd.
PDF
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
Amazon Web Services Japan
PDF
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
Amazon Web Services Japan
PDF
AWS の IoT 向けサービス
Amazon Web Services Japan
PDF
02B_AWS IoT Core for LoRaWANのご紹介
Amazon Web Services Japan
PDF
Tealium+AWS Analytics サービスで実現する Customer Experience(CX)
Amazon Web Services Japan
PPTX
AWS社員による怒涛のLTチャレンジ! なかなか飛行機に乗れてないので、Ruby on Jetsで飛んでみよう!
Amazon Web Services Japan
PDF
Cloud9で試すAWS IoT Greengrass V2
Jun Ichikawa
PDF
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
Amazon Web Services Japan
PPTX
Aws IoT Security101
Shogo Matsumoto
PDF
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
Amazon Web Services Japan
PDF
デバイスの運用で使える AWS IoTサービスの紹介
Amazon Web Services Japan
PDF
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて
Amazon Web Services Japan
PDF
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤
Amazon Web Services Japan
PDF
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
Amazon Web Services Japan
PDF
AWS IoT サービス アップデートのご紹介
Amazon Web Services Japan
PDF
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
Amazon Web Services Japan
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
AWS IoT Device Defender による IoT デバイスのセキュリティ管理
Amazon Web Services Japan
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
Amazon Web Services Japan
いまさら、AWSのネットワーク設計
Serverworks Co.,Ltd.
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
Amazon Web Services Japan
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
Amazon Web Services Japan
AWS の IoT 向けサービス
Amazon Web Services Japan
02B_AWS IoT Core for LoRaWANのご紹介
Amazon Web Services Japan
Tealium+AWS Analytics サービスで実現する Customer Experience(CX)
Amazon Web Services Japan
AWS社員による怒涛のLTチャレンジ! なかなか飛行機に乗れてないので、Ruby on Jetsで飛んでみよう!
Amazon Web Services Japan
Cloud9で試すAWS IoT Greengrass V2
Jun Ichikawa
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
Amazon Web Services Japan
Aws IoT Security101
Shogo Matsumoto
IoT@Loft #4 - IoT製品の量産化および運用を効率化させるためのAWS サービスの使い方
Amazon Web Services Japan
デバイスの運用で使える AWS IoTサービスの紹介
Amazon Web Services Japan
[20210519 Security-JAWS] AWS エッジサービス入門ハンズオンの紹介と AWS WAF のアップデートについて
Amazon Web Services Japan
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤
Amazon Web Services Japan
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
Amazon Web Services Japan
AWS IoT サービス アップデートのご紹介
Amazon Web Services Japan
Gaming on aws 〜ゲームにおけるAWS最新活用術〜
Amazon Web Services Japan
Ad
Viewers also liked
(20)
PDF
Tizen & Crosswalk
Naruto TAKAHASHI
PDF
Report of linuxcon japan 2013
Naruto TAKAHASHI
PDF
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
PDF
Tizen の未来と可能性
Naruto TAKAHASHI
PDF
Tizenについて
Naruto TAKAHASHI
PDF
How to add nfc web api to android by using npapi
Naruto TAKAHASHI
PDF
Rust samurai lightning talk
Naruto TAKAHASHI
PDF
Tizen web app を FireFox OS へ移植する方法を考えた
Naruto TAKAHASHI
PDF
Japanese input environment on Tizen 2.0 Alpha
Naruto TAKAHASHI
PDF
せっかくだから俺はこの NPAPI の話をするぜ
Naruto TAKAHASHI
PDF
Tizen 2.0 overview
Naruto TAKAHASHI
PDF
20150530 無名の会社が、大規模サイト(スマホ対応)相手に、構築・運用でやってること
uenoyuuki
PDF
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
Kosuke Ogawa
PDF
freeCodeCamp Tokyo meetup 19
健太 田上
PPT
Kelompok 4 fismod rustam
Rustam Wabula
PDF
Klíma 7 előnye
LNA Group Kft Klímaszerelés
PPTX
Get a Seat at the Table: Utah's Legislature and How it Impacts Nonprofit Orga...
Parsons Behle & Latimer
DOCX
Paper4 jefri using firebug
Jefri Fahrian
DOCX
Teknik presentasi
Mario Norman
PPTX
Actividad n1 yoselin barrera
Yoselin Barrera
Tizen & Crosswalk
Naruto TAKAHASHI
Report of linuxcon japan 2013
Naruto TAKAHASHI
NPAPIを使ったandroid標準ブラウザの拡張方法
Naruto TAKAHASHI
Tizen の未来と可能性
Naruto TAKAHASHI
Tizenについて
Naruto TAKAHASHI
How to add nfc web api to android by using npapi
Naruto TAKAHASHI
Rust samurai lightning talk
Naruto TAKAHASHI
Tizen web app を FireFox OS へ移植する方法を考えた
Naruto TAKAHASHI
Japanese input environment on Tizen 2.0 Alpha
Naruto TAKAHASHI
せっかくだから俺はこの NPAPI の話をするぜ
Naruto TAKAHASHI
Tizen 2.0 overview
Naruto TAKAHASHI
20150530 無名の会社が、大規模サイト(スマホ対応)相手に、構築・運用でやってること
uenoyuuki
iOS 8のWebKit Frameworkでアプリ内ブラウザがどう変わる?
Kosuke Ogawa
freeCodeCamp Tokyo meetup 19
健太 田上
Kelompok 4 fismod rustam
Rustam Wabula
Klíma 7 előnye
LNA Group Kft Klímaszerelés
Get a Seat at the Table: Utah's Legislature and How it Impacts Nonprofit Orga...
Parsons Behle & Latimer
Paper4 jefri using firebug
Jefri Fahrian
Teknik presentasi
Mario Norman
Actividad n1 yoselin barrera
Yoselin Barrera
Ad
Similar to 猫でも分かる Android WebKit
(20)
PDF
Firefox OS - Blaze Your Own Path
dynamis
PDF
Kilimanjaro Event
dynamis
PDF
PhoneGapで作るハイブリッドアプリケーション
Masahiko Tachizono
PDF
JavaScript And Keywords
uupaa
PDF
Web os最新動向20130209
Akira Sasaki
PPTX
cordova/electronの構造を知る
Yasuharu Seki
KEY
Web制作者がandriodのcddを読んでみた
Masakazu Muraoka
PPTX
node-webkit
Takuji Shimokawa
PDF
Firefox mobile for android internals
Makoto Kato
PDF
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
decode2016
PPTX
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
PDF
NDS31 はじめてChrome App
civic Sasaki
PDF
モバイルOSとWeb標準とそれらへのアプローチ
Kisato
KEY
Android webブラウザのhtml5対応状況
Masakazu Muraoka
PDF
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
PDF
Webエンジニアのためのandroidアプリ開発
Soudai Sone
PDF
Mobile Web
Makoto Kato
PPTX
HTML5最新動向
Shumpei Shiraishi
PDF
Kddi mugen lab
Kazuya Hiruma
PDF
TV・車・ゲームに搭載されているブラウザってどうなっているの?
Masashi Umeda
Firefox OS - Blaze Your Own Path
dynamis
Kilimanjaro Event
dynamis
PhoneGapで作るハイブリッドアプリケーション
Masahiko Tachizono
JavaScript And Keywords
uupaa
Web os最新動向20130209
Akira Sasaki
cordova/electronの構造を知る
Yasuharu Seki
Web制作者がandriodのcddを読んでみた
Masakazu Muraoka
node-webkit
Takuji Shimokawa
Firefox mobile for android internals
Makoto Kato
DEV-008_Developing on the Edge. ~Web プラットフォームと Cordova~
decode2016
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
NDS31 はじめてChrome App
civic Sasaki
モバイルOSとWeb標準とそれらへのアプローチ
Kisato
Android webブラウザのhtml5対応状況
Masakazu Muraoka
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
Webエンジニアのためのandroidアプリ開発
Soudai Sone
Mobile Web
Makoto Kato
HTML5最新動向
Shumpei Shiraishi
Kddi mugen lab
Kazuya Hiruma
TV・車・ゲームに搭載されているブラウザってどうなっているの?
Masashi Umeda
More from Naruto TAKAHASHI
(11)
PPTX
CMake multiplatform build-tool
Naruto TAKAHASHI
PDF
Tizen API
Naruto TAKAHASHI
PDF
猫でも分かる Android WebKit ice break
Naruto TAKAHASHI
PDF
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
PDF
Tizen 2.0 alpha でサポートされなかった native api icebreak
Naruto TAKAHASHI
PDF
Tizen application
Naruto TAKAHASHI
PPTX
Tizen web app
Naruto TAKAHASHI
PDF
Tizen native application
Naruto TAKAHASHI
PPTX
Html5 でアプリを作るということ
Naruto TAKAHASHI
PPTX
Tizen web app について調べたよ
Naruto TAKAHASHI
PPTX
Linux ユーザーからみた tizen
Naruto TAKAHASHI
CMake multiplatform build-tool
Naruto TAKAHASHI
Tizen API
Naruto TAKAHASHI
猫でも分かる Android WebKit ice break
Naruto TAKAHASHI
Tizen 2.0 alpha でサポートされなかった native api
Naruto TAKAHASHI
Tizen 2.0 alpha でサポートされなかった native api icebreak
Naruto TAKAHASHI
Tizen application
Naruto TAKAHASHI
Tizen web app
Naruto TAKAHASHI
Tizen native application
Naruto TAKAHASHI
Html5 でアプリを作るということ
Naruto TAKAHASHI
Tizen web app について調べたよ
Naruto TAKAHASHI
Linux ユーザーからみた tizen
Naruto TAKAHASHI
猫でも分かる Android WebKit
1.
猫でも分かる Android
WebKit Naruto TAKAHASHI(tnaruto@gmail.com) Turbo Systems Co, Ltd. 横浜Androidプラットフォーム部第26回勉強会
2.
Agenda
WebKit Android WebKit
3.
WebKit
Knowledge of WebKit
4.
WebKit とは OSSのHTMLレンダリングエンジンライブラリ
HTML CSS Javascript SVG
5.
WebKit とは(cont) 言語は C++ KDE
プロジェクトの KHTML から fork した KHTML は Qt がベースになっている。 構造がしっかりしているとのうわさが!
6.
ライセンス ライセンスは
LGPL と BSD-style KHTML のものは LGPL それ以外は BSD-style
7.
動作プラットフォーム Mobile platform
Desktop platform • iPhone • MacOSX(Safari) • Modern UI • Windows • BREW • Linux(X11) • Android • GTK • Qt • EFL
8.
Web”Kit” ≒Web レンダリングを いろんなプラットフォー ムで動かす”キット”です。
9.
WebKit アーキテクチャ
10.
WebKit API or
WebKit2 API • WebKit の 外部 API 宣言 • 各プラットフォームで使うための実装を行う レイヤー • 例: EFL -> evas_object • 例: GTK -> GObject
11.
WebKit API vs.
WebKit2 API
12.
WebKit API vs.
WebKit2 API(cont) • WebKit API はシン グルプロセスで WebKit WebKit2 WebCore の実行は関 数コール プロセス シングル マルチプ モデル プロセス ロセス API タイ ブロッキ ノンブ • WebKit2 API はマル プ ング ロッキン チプロセスで UI プ API(関数 グAPI(IPC ロセスと WebCore コール) 通信) プロセスを分離 • タッチパネルと相性 バツグン
13.
WebKit API と
WebKit2 API の採用 実績 • WebKit API • Chrome • Android • WebKit2 API • Tizen 2.0 • safari
14.
WebCore •
HTML レンダリング担当 • WebKit の中核(Core) • どんなプラットフォームでも WebCore の差異 は少ない。 • Android も 4.1 以降はそんなに手を入れないスタイ ルになりました。
15.
WebCore 処理フロー 1. HTMLをパースして
DOM ツリーを構成 2. レンダリングツリーを構成 3. レンダリングツリーのレイアウト 4. レンダリングツリーの描画
16.
WebCore 処理フロー(cont) • WebCore
の処理に興味があればこちらをど うぞ • ブラウザの仕組み: 最新ウェブブラウザの内部 構造 • http://www.html5rocks.com/ja/tutorials/in ternals/howbrowserswork/
17.
WebCore/platform • WebCore のプラットフォーム依存処理の実
装 • プラットフォームでの描画処理 • WebCore 処理フローの描画のブロック • 各プラットフォームで実装が異なる箇所
18.
Javascript •
Javascript 評価 • DOM API と Javascript エンジンとの繋ぎ込みを担当 • JavaScriptCore(WebKit 標準エンジン Tizen, Android 4.0) • V8(Android 4.1 over) • Nitro(iOS) • じゃあ DOM API の宣言や実装はどこでやってるの?
19.
WebKitIDL •
DOM API は WebKitIDL を用いて定義 • http://trac.webkit.org/wiki/WebKitIDL • 拡張子は .idl • WebCore の至るところへ散らばっている • 独立した API もすべて WebKitIDL で定義 • GeoLocation API • File API
20.
Example: alert() (IDL
記述) • IDL ファイルで alert() を宣言 • WebCore/page/DOMWindow.idl module window { interface DOMWindow { void alert(in DOMString message); } }
21.
Example: alert() (ヘッダ宣言) •
対応する処理をヘッダに宣言 • WebCore/page/DOMWindow.h namespace WebCore { class DOMWindow { void alert(const String& message); } }
22.
Example: alert() (処理) •
処理をソースに記述 • WebCore/page/DOMWindow.cpp void DOMWindow::alert(const String& message) { Page* page = m_frame->page(); page->chrome()->runJavaScriptAlert(m_frame, message); }
23.
WebKit 各レイヤーまとめ •
WebKit API or WebKit2 API • 各プラットフォームのための外部 API 宣言 • WebCore • HTML レンダリング処理 • WebCore/platform • 各プラットフォームへのレンダリング処理 • Javascript • Javascript エンジンとの繋ぎ込み
24.
WebKit のポーティングガイド • WebKit
をプラットフォームへ移植したい • WebKit あるいは WebKit2 を実装しましょう • WebCore の platform を実装しましょう • 独自 Javascript API がほしい • WebKitIDL で実装しましょう
25.
Android
Knowledge of WebKit Android WebKit
26.
Android WebKit •
WebKit の Java 実装ソース • ${Android_Src}/framework/base/core/java/android/w ebkit • Android のブラウザは WebKit の Java API で作られて いる • 例外 • Google chrome(アプリ自身が WebKit を持っている) • Firefox(アプリ自身が Gecko を持っている)
27.
Android の定番のお約束 • Android
Platform は Java なのに、C++ で 作られた WebKit の API はどうやって実行 するの? • JNI(Java Native Interface)を使用
28.
Android の Native
WebKit • Android プロジェクトでソース管理 • ${Android_Src}/external/webkit • WebKit 本家の変更点をマージ • プラットフォーム依存の処理は android ディレクトリへ 実装を書いている。 • WebKit 本家に android ディレクトリはなし • 本家へのフィードバックはしてない模様
29.
Android Webkit アーキテクチャ
30.
Android.WebKit • Java から
WebKit を使うためのクラス • WebView • http://developer.android.com/reference/android /webkit/WebView.html • API の宣言と native WebKit のつなぎ合わ せをしている
31.
Android.WebKit(cont) • Android はなぜタッチパネルと相性の良い
WebKit2 を採用していない? • Android.WebKit で UI 処理とレンダリング処 理を分離しているため
32.
Android WebKit の
UI とレンダリン グの分離方法 • Android.Handler • Android.WebKit で Handler で UI 処理とレン ダリング処理を分けている。 • Native WebKit は 関数コールでレンダリング 処理をするほうが都合がよい。 • 余計な処理されるとむしろ困る
33.
Native WebKit API •
Android.WebKit が使用する API の実装 • Android.WebKit と WebCore を繋ぐための ブリッジ • JNI の定義がほとんど(むしろ全部)
34.
Native WebCore • WebCore
部分は本家のオリジナルとほぼ一 緒 • 例外的にプラットフォーム依存の処理が追加 されている • Video タグのジェスチャー処理(Android 4.1)
35.
Native WebCore (cont) •
Platform 層 • Skia への描画 • Android リソースへのアクセス • JNI(C->Java)
36.
Skia • グラフィックライブラリ • http://code.google.com/p/skia/
37.
Javascript 層 • Native
WebKit と変わらないので省略 • Android 4.1 以降はエンジンが V8 になりま した。
38.
まとめ
まとめます
39.
WebKit と Android
WebKit の比較 WebKit Android WebKit WebKit API or Android.WebKit WebKit2 API JNI WebCore Native Native WebKit WebCore API WebCore/platform Native Native WebCore WebCore
40.
所感 • Android WebKit
を触るためには • Android Platform についての知識 • WebKit 自体の知識 • 上記二つを繋ぎ込む根気! • 正直、複雑
41.
最後に猫から大切なお知らせ
ソースの見かた分かった?
42.
おしまい
Download