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控件。

  • 相关阅读:
    Euclid's Game (简单博弈)
    “科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛(部分题解)
    牛客小白月赛4 (B 博弈论)
    博弈--尼姆博弈
    C# .net中获取台式电脑中串口设备的名称
    打印出C# 中float ,double 在内存中的存放形式
    VS2010 C++ 创建COM组件
    .net 中两个日期算经过的月份数
    一种计算MD5的实现方法
    将文件从程序集中复原
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3185870.html
Copyright © 2011-2022 走看看