Android网络开发之WebKet引擎基础
Android浏览器的内核是Webkit引擎,WebKit的前身是KDE小组的KHTML。
Apple公司推出的Safari浏览器,使用的内核是装备了KHTML的WebKit引擎。
WebKit内核在手机上应用十分广泛。
WebKit 是一个开源浏览器网页排版引擎,类似的引擎有:
Gecko作为Mozilla, Firefox的内核,
Trident作为IE的内核(也称MSHTML)。
WebKit所包含的WebCore排版引擎和JSCore排版引擎来自于KDE的KHTML和KJS。
Apple公司选择WebKit作为内核是因为它拥有清晰的源码结构、极快的渲染速度。
WebKit由3个模块组成:JavaScriptCore, WebCore, WebKit。
1. JavaScriptCore: JavaScript解释器。
2. WebCore: 项目的核心,用来实现Render引擎。解析Web页面,生成一个DOM树和一个Render树。
3. WebKit: 整个项目的名称。
WebCore的主要功能有:
1. Page, 与外框相关的内容,包括Frame, Page, History, Focus, Window.
2. Loader, 加载资源及Cache。
3. HTML, DOM HTML 内容及解析。
4. XML, XML内容及解析。
5. DOM, DOM CORE 内容。
6. Render, 排版功能。
7. CSS, DOM CSS 内容。
8. Binding, DOM和JavaScriptCore绑定的功能。
9. Editing, 所有与编辑相关的内容。
JavaScriptCore的主要功能有:
1. API, 基本JavaScript功能。
2. Binding, 与其他功能的绑定,如DOM, C, JNI。
3. DerviedSource, 自动产生的代码。
4. ForwordHeads, 头文件,无实际意义。
5. PCRE, Perl-Compatible Regular Expressions.
6. KJS, JavaScript内核。
7. WTF, KDE的C++模型库。
WebKit的解析过程
1. CURL得到Stream。
2. 解析拆分字符串。
3. 通过DOM Buider按合法的HTML规范生成DOM树。
4. 如果有JavaScript, JSEngine就通过ECMA-262标准完善DOM树。
5. 把DOM传给LayoutEngine进行布局,如果有CSS样式,就通过CSSParser解析。
6. 最后Rendering渲染出来。
Google对WebKet进行了封装,为开发者提供了丰富的API,其中最重要的是android.webkit.WebKit控件。
相关文章
- android onresume方法,非静态方法’onResume’Android Studio
- 加密狗android,Android系统加密狗的设计与实现
- 基于chromium for android开发Android浏览器
- Android 中文 API (29) —— CompoundButton[通俗易懂]
- android 读取本地数据库db文件(Android sqlite)
- strictmode android,(十三)Android 性能优化 StrictMode
- android androidmanifest需要检测的安全问题
- iphone4装android,iPhone4可安装Android实现双系统启动.pdf
- android scaleanimation动画,Android 的ScaleAnimation 缩放动画基本运用
- android toast显示时间,Android Toast自定义显示时间「建议收藏」
- Android触摸事件_android设置按钮点击事件
- android 设置系统dialog 样式
- 【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 获取 tombstone_0X 崩溃日志信息 )
- 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )
- 【Android 逆向】IDA 工具使用 ( 同步指定的 IDA View 视图 | Hex View 数据格式 | 过滤设置 )
- 【错误记录】未安装该应用 ( 在 Android 12 之后 组件设置 android:exported=“false“ 属性 )
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )
- Android侧滑菜单DrawerLayout详解编程语言
- Android图片处理实例介绍(图)
- Android开发笔记之:返回键的复写onBackPressed()介绍
- Android中访问证书有问题的SSL网页的方法
- Android中创建多线程管理器实例
- Android开场动画类完整实现代码