整理:徐建祥(
netpirate@gmail.com)
日期:2009/09/09
網(wǎng)址:
http://www.anymobile.org
市面上主流的瀏覽器:
a. IE,內(nèi)核Trident;
b. FireFox,內(nèi)核:Gecko;
c. Safari, Google Chrome,內(nèi)核:Webkit;
d. Opera,內(nèi)核 Presto。
Webkit Architecture
Android Browser 主要分成三個(gè)部分:
1. Webkit Engine (C++):JavascriptCore,WebCore,Webkit;
2. Framework WebView (Java);
3. Browser app (java).
1. JavaScriptCore;
Javascript 引擎
KJS進(jìn)化到Squirrel Fish
基本的模板庫(kù)WTF
基本的正則表達(dá)式解析模塊PCRE
基本編碼轉(zhuǎn)換模塊,依賴ICU進(jìn)行
JS解析/編譯引擎
JS運(yùn)行庫(kù)
2. WebCore----render engine;
解析頁(yè)面,生成DOM tree 和 render tree,最終render整個(gè)頁(yè)面到background。
網(wǎng)絡(luò)接口封裝
HTML解析引擎
XML解析引擎
CSS解析引擎
JS 客戶端對(duì)象封裝
網(wǎng)頁(yè)渲染引擎
BackEnd封裝與實(shí)現(xiàn)
SVG
HTML Editing
Plugins
網(wǎng)頁(yè)內(nèi)容處理,Image/Icon
。。。
3. Webkit-------和平臺(tái)相關(guān)的background實(shí)現(xiàn);
里面包括了android 平臺(tái)的實(shí)現(xiàn),具體是通過JNI和framework 里面的webview。
WebCore的高層封裝
提供與BackEnd一直的平臺(tái)支撐
提供給WebCore用戶操控相關(guān)的支撐接口
source analysis:
1. bindings ---將javaScript 中對(duì)象和DOM對(duì)象進(jìn)行綁定,比如window對(duì)象和document對(duì)象
2. bridge ----將javascript對(duì)象和自定義的對(duì)象綁定
3. css -------實(shí)現(xiàn)了css 2.0 的標(biāo)準(zhǔn)
4. dom-------DOM樹的相關(guān)對(duì)象
5. editing-------所有于Edit相關(guān)功能,比如html中的編輯框
6. html -------html 語(yǔ)言的解析
7. loader ------- 加載網(wǎng)頁(yè)資源以及Cache,F(xiàn)rameLoader ImageLoader
8. platform----- 和平臺(tái)有關(guān)的,比如 圖像decoder,圖形的繪制,網(wǎng)絡(luò)操作,字體等
9. plugin------實(shí)現(xiàn)了基于Netscape的 NPAPI (Netscape Plugin Application Programming Interface ) 的框架
10. rendering--------- render tree 相關(guān)對(duì)象
11. resource ------PC 瀏覽器safair 用到的資源,對(duì)于android來說沒用
12. svg ---------- svg 語(yǔ)言的解析
13. wml----------- wml 語(yǔ)言的解析
14. xml------------xml 語(yǔ)言的解析以及XSLT 轉(zhuǎn)換,需要libxslt
軟件應(yīng)用
Browsers
-Safari
-Google Chrome/Chromium
-OmniWeb
-Osb-browser – Nokia
-Web Browser for S60 – Nokia
-QT Browser Engine
E-mail Clients:使用Webkit 作Web 內(nèi)容處理
-Entourage 2008 – Microsoft (for Mac)
-Mail-Apple
-Mailplane 特定的Gmail終端
Instant Messenger/Chat Clients:使用Webkit對(duì)消息進(jìn)行渲染和樣式化
-iChat AV – Apple
-MSN Messenger – Microsoft (Mac)
-Yahoo! Messenger
RSS Readers:使用Webkit來處理和現(xiàn)實(shí)新聞?wù)?,以及Feed連接到的完整文檔
-MiNews
-NetNewsWire
-NewsFire
-PixelNews
posted on 2010-08-12 02:57
Xu Jianxiang 閱讀(1711)
評(píng)論(1) 編輯 收藏 所屬分類:
Android