`
jobs2010
  • 浏览: 27229 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
最近访客 更多访客>>
社区版块
存档分类
最新评论

Webkit内核探究【1】——Webkit简介

阅读更多

注:【转载请注明文章来源、保持原样】

出处:http://www.cnblogs.com/jyli/archive/2010/01/31/1660355.html 
作者:李嘉昱

研究Webkit内核已经有一段时间了,在这期间我花了很多时间去研读webkit代码,并在网上查阅了不少的资料。在这之后,我开始尝试对Webkit内核进行剪裁,以便得到自己所需的部分。

俗语有言,“独学而无友 则孤陋而寡闻”,遂本着交流的态度拿出来与大家分享之,顺便回顾一下自己这段时间以来走过的路。到目前,本人虽不能说是精 通Webkit内核 ,但也总算是在Webkit内核中游历过了一番,并获得了不少Webkit内核代码的直接经验。

在此,我将以Webkit内核代码为基础,详细介绍Webkit内核的组成以及其各个模块的功能和实现。文章写到哪算哪,有了新的认识也会更新,补充。

 

什么是Webkit


Wekbit是一个开源的Web浏览器引擎,也就是浏览器的内核。Apple的Safari, Google的Chrome, Nokia S60平台的默认浏览器,Apple手机的默认浏览器,Android手机的默认浏览器均采用的Webkit作为器浏览器内核。Webkit的采用程度由 此可见一斑,理所当然的成为了当今主流的三大浏览器内核之一。另外两个分别是Gecko和Trident,大名鼎鼎的Firefox便是使用的Gecko 内核,而微软的IE系列则使用的是Trident内核。虽然目前市场上IE内核浏览器仍然占据大多数市场份额,但其他内核浏览器也大有后来居上之势。其 中,Webkit作为一款优秀的浏览器内核,它众多优秀的特性引起业内的的广泛关注。尤其是近来,google的加入更是让Webkit有所升温,从 Goole Chrome浏览器, Goole Anroid手机操作系统内置浏览器均采用Webkit作为内核, 近来推出的Chrome OS更是让人期待。从实现角度来讲,据说其比Gecko代码更为整洁清晰,我目前还没研究过Gecko的代码,所以还无从比较。

 

Wekbit做了什么?


作为浏览器的内核,Webkit做了哪些工作?为了了解这些,先让我们来看下一个Web浏览器究竟做了什么。我们可以从输入输出的角度来看一个 Web浏览器为我们做了哪些工作。先看一个简单的例子,Web浏览器的输入是一个HTML文档,输出则是一个我们用眼睛所看到的一个Web页面, 就普通用户而言它的输入和输出就是这么简单,如下图所示。

那么Webkit的输入和输出又是什么呢?如果能明白这个,那我们就能很清楚的知道Webkit到底是做什么的了。不过现在要说清楚这个还有点困 难,因为Webkit的输出就要复杂些了,因为它的输出本来就非直接面向用户,现在简单点来说,Webkit的输入是web 文档,输出是一些看不见的模型,浏览器上层借助于这些模型来绘制出我们所看到的实际页面。后面适当的时候会更具体的探讨这些模型。

 

Wekbit组成

 

Webkit实际上包含三大部分,至少从代码结构上来说是这样的,当然,如果细分的话还能够划分出更多的模块。如下图所示

 

其中,WebCore是Webkit的核心部分,它实现了对文档的模型化,包括了CSS, DOM, Render等的实现, JavaSript Core显然是对JavaSript支持的实现。而橘黄色标注的Webkit部分包含了很多不同平台对Webkit封装的实现,即抽象出了与浏览器所能直 接对应的一些概念的实现,如,WebView,WebPage, WebFrame等。这三部分共同构成了Webkit, 在源码中,它们分别对应这个这三个目录, 即Webkit三大部分为WebCore, JavaSript Core,Webkit。

 

应用程序如何利用Webkit的

 

从下图可以看出,利用Webkit的应用程序的位置处于Webkit模块之上,应用程序并不直接和WebCore以及JavaScript Core来打交道,也不需要和它们打交道,而是同我前面提到过的Webkit模块来交互,从而屏蔽了WebCore和JavaSript Core部分。Webkit模块实际上抽象出了大多数应用程序所需要的那一部分,这里所说的大多数应用程序其实就是指的浏览器, 对于实现一个浏览器而言,Webkit模块所提供的接口已经足够。不过对于某些应用,可能得对其实施一定的改造,但是话又说回来,Webkit本来就是被设计成为Browser的内核而被实现的。

看到这里,也就是说如果我们要想利用Webkit来实现一个功能完善Browser或其他类浏览器应用程序的话,你只需要了解Webkit模块部分 就足够了,更确切的说只需要了解它所提供的接口就够了。事实上,大多数平台,如果采用了Webkit内核作为浏览器内核组件的话,所提供的对应文档部分都 是关于Webkit模块所提供的接口的描述。很多平台都提供了Browser组件,其使用方法就像是其他可视组件一样,在应用程序中应用起来非常方便。比 如,某平台提供了叫做WebView的可视化组件,我们就可以通过如下几行代码来展示一个网页, 使用的代码仅仅三行。

WebView *view = new WebView();

view->load(Url("http://www.google.cn"));

view->show();

以Webkit作为浏览器组件的平台有不少,包括Symbian S60, Android, Qt, GTK等等,前不久看到消息,好像Black Berry也准备在自家的手机上使用Webkit了。

 



分享到:
评论

相关推荐

    duilib webkit内核浏览器控件

    duilib webkit内核浏览器控件,基于BlaFans的wke内核 duilib webkit内核浏览器控件,基于BlaFans的wke内核 duilib webkit内核浏览器控件,基于BlaFans的wke内核

    易语言调webkit内核多页面浏览器

    转webkit内核多页面浏览器,自动填表功能还没实现!请大家测试修改

    VB webkit内核 利用控件操作网页内元素

    在VB(Visual Basic)中,我们可以通过利用Webkit内核的控件来实现对网页内容的操作,从而创建出能够与网页交互的桌面应用程序。本篇文章将深入探讨如何在VB中使用Webkit内核以及如何控制网页内的元素。 首先,要...

    webkit内核浏览器.rar

    WebKit 内核是苹果2005年先开发并提出开源的,后面 Google 也以此为基础,并独立开发出 Chromium 的,2008年 Google 为 WebKit 为内核创建了一个新项目 chormium ,后来 Google 的 chrom 占领了浏览器的大部分市场。

    duilib webkit内核浏览器控件 duilib webkit内核浏览器控件,基于BlaFans的wke内核

    Duilib WebKit内核浏览器控件是用于Windows平台上的一个用户界面库,它提供了一种高效、便捷的方式来集成WebKit内核,实现具有现代Web浏览功能的桌面应用程序。这个控件基于BlaFans的Wke内核,Wke是一个轻量级、高...

    duilib webkit内核浏览器控件(修复select标签bug)

    在描述中提到的“duilib webkit内核浏览器控件”是Duilib库的一个组件,它集成了WebKit内核,使得开发者可以在Duilib应用程序中嵌入一个功能完善的Web浏览器。然而,原版的WebKit内核可能存在一些问题,如“select...

    WebKit技术内幕——朱永盛

    《WebKit技术内幕——朱永盛》是一本深入探讨WebKit技术的专业书籍,对于想要学习和理解WebKit的同学来说,这本书无疑是一个宝贵的资源。WebKit是开源的网页渲染引擎,被广泛应用于Chrome、Safari等浏览器,以及iOS...

    C#WinFrom窗体集成Webkit内核 webkit.net包+教程+源码 全包

    C#WinFrom窗体集成Webkit内核 webkit.net包+教程+源码 全包

    WebKit内核源代

    **WebKit内核源代码分析** WebKit 是一个开源的网页渲染引擎,被广泛应用于各种操作系统和浏览器,如苹果的Safari和谷歌的Chrome。在Android平台上,WebKit被用作原生浏览器和其他应用的网页显示组件。深入理解...

    webkit内核源代码分析

    webkit开发学习笔记(全面)_第一版 webkit内核源代码分析(1)

    Webkit内核,含导入WebKit.Interop.dll

    1. **Webkit内核介绍** - Webkit是一个开放源代码的项目,基于KHTML和JavaScriptCore,最初由KHTML(Konqueror浏览器的渲染引擎)发展而来。 - Webkit内核以其高性能、稳定性以及对Web标准的良好支持而受到青睐,...

    android webkit 内核

    **一、WebKit简介** WebKit起源于KDE项目的KHTML渲染引擎,后来发展成为开源的网络浏览器项目,支持多种操作系统,包括iOS、macOS以及Android等。Android上的WebKit内核则专门针对移动设备进行了优化,以适应小屏幕...

    Webkit内核的浏览器默认CSS属性

    ### Webkit内核浏览器默认CSS属性详解 #### 引言 在前端开发中,了解不同浏览器内核的默认样式设置对于实现跨浏览器兼容性至关重要。WebKit作为一款流行的浏览器引擎,被广泛应用于Safari、Google Chrome等浏览器...

    webkit内核浏览器

    1. 这是一个基于webkit内核的浏览器。它只有简单的功能,直接调用一个html文件。 2. 使用windown sdk封装的webkit浏览器。 3. demo出自 http://blog.csdn.net/x931100537/article/details/39320149 此demo直接调用...

    webkit内核wke.dll的易语言调用例程

    总结来说,易语言调用webkit内核的wke.dll需要对易语言的EPL机制有深入了解,同时还需要处理C++库的特性和可能的版本限制。虽然过程可能相对复杂,但一旦成功,就能在易语言环境中实现强大的网页浏览和处理功能。

    c# webkit 内核浏览器简例

    【C# WebKit 内核浏览器简例】 在IT领域,C#是一种广泛使用的编程语言,尤其在构建Windows应用程序和Web服务时。WebKit是开源的网页渲染引擎,它被许多知名浏览器如Safari和Chrome所采用,以提供高效且标准兼容的...

    webkit 内核介绍文档入门

    【Webkit内核探究】Webkit是开源的Web浏览器引擎,它的应用广泛,包括Apple的Safari、Google的Chrome、Nokia S60平台的默认浏览器以及Apple和Android手机的默认浏览器。作为三大主流浏览器内核之一,Webkit与Gecko...

    WebKit内核源代码分析(三)

    ### WebKit内核源代码分析(三):Android中的WebKit介绍 #### 一、WebKit概述与URL处理 本文档深入探讨了WebKit在Android环境下的实现原理,并特别关注了WebKit如何处理URL请求及其相关的CSS样式应用等内容。...

    Android_WebView、Webkit内核深入讲解

    一、WebKit 简介 WebKit 是一个开源的浏览器网页排版引擎,包含 WebCore 排版引擎和 JSCore 引擎。WebCore 和 JSCore 引擎来自于 KDE 项目的 KHTML 和 KJS 开源项目。Android 平台的 Web 引擎框架采用了 WebKit ...

    webKit等内核实现的webBrowser

    1. **WebKit的优势:** - **性能优化:** WebKit采用多线程架构,能够有效地分离渲染、网络、JavaScript执行等任务,提高浏览器的响应速度。 - **HTML5支持:** WebKit对HTML5、CSS3、SVG等现代Web技术有出色的...

Global site tag (gtag.js) - Google Analytics