整理:徐建祥(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-12-14 22:43
Xu Jianxiang 阅读(343)
评论(0) 编辑 收藏 所属分类:
Android