zoukankan      html  css  js  c++  java
  • 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控件。

  • 相关阅读:
    MultipartFile(文件的上传)
    JSONObject.fromObject--JSON与对象的转换
    Map集合与转化
    java读取excel文件
    Java中的Arrays类使用详解
    Arrays 类的 binarySearch() 数组查询方法详解
    JDK8 特性详解
    关于Java堆、栈和常量池的详解
    深入java final关键字
    杯酒人生
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3185870.html
Copyright © 2011-2022 走看看