Introduction to Android Webkit
来源:互联网 发布:淘宝联盟怎么分享链接 编辑:程序博客网 时间:2024/05/17 18:29
整理:徐建祥(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
- Introduction to Android Webkit
- Introduction to WebKit Objective-C Programming Guide
- Introduction to Android RILD
- Introduction to Android --1.1
- Introduction to Android Espresso
- API Guides -> Introduction -> Introduction to Android
- Introduction to Android Building System.
- Introduction to Android Power Management
- Introduction to Android Power Management
- Introduction to Android Theme Customization
- Android API Guides – Introduction to Android
- Introduction to Android(Android简介)
- Android Lesson Five: An Introduction to Blending
- Introduction to AQuery – Android Query 翻译
- Introduction to Model View Presenter on Android
- Introduction to Model View Presenter on Android
- INTRODUCTION TO COORDINATOR LAYOUT ON ANDROID
- How to support scroll bar in webkit of android platform
- POJ 1308 Is It A Tree?
- 从网上淘的 感觉不错 ==与equals的对比
- 优柔寡断的人必读忠告
- linux 2.6.32 在arm9(s3c2440)平台的移植2 -- Kconfig和Makefile(2)
- Introduction to Android Power Management
- Introduction to Android Webkit
- SqlServer2000(2005) 数据库同步方案详解
- Introduction to Android RILD
- 我回来了
- 汇编中常见的一些错误信息
- 汇编中常见的错误2
- exit 、_exit、 return的区别
- cout格式化输出 详解
- C++ String class Examples and Tutorial