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