首页 > 编程知识 正文

webkit内核源码,下载Webkit内核

时间:2023-05-03 23:25:22 阅读:178541 作者:3803

注【转载请注明文章出处,保持原样】

资料来源: http://www.cn blogs.com/jyli/archive/2010/01/31/1660355.html

作者: gtdxg

研究Webkit内核已经有一段时间了,在此期间,我研究了Webkit代码,并在网上查阅了很多资料。 之后,我开始修剪Webkit内核,以便得到自己需要的部分。

俗语说:“一个人学习没有朋友就孤独寡闻。” 然后以交流的态度和大家分享,顺便回顾一下自己迄今为止走过的路吧。 到目前为止,我还不能说我熟悉Webkit内核,但是我在Webkit内核上旅行,获得了很多Webkit内核代码的直接经验。

本节以Webkit内核代码为基础,详细介绍了Webkit内核的组成及其各个模块的功能和实现。 文章无论写到哪里,只要有新的认识就会更新,所以要补充。

什么是Webkit

Wekbit是开源Web浏览器引擎,也就是浏览器的内核。 苹果的Safari、谷歌的Chrome、诺基亚s60平台的默认浏览器、苹果手机的默认浏览器、安卓手机的默认浏览器都采用Webkit作为浏览器内核Webkit的采用度由此可见一斑,理所当然地成为目前主流的三大浏览器核心之一。 另外两个分别是Gecko和Trident,著名的Firefox使用的是Gecko内核,微软的IE系列使用的是Trident内核。 目前,市场上IE内核浏览器仍然占据着很大的市场份额,而其他内核浏览器也是后来的大势所趋。 其中,Webkit作为一种优秀的浏览器内核,其许多优秀的特性引起了业界的广泛关注。 特别是最近,谷歌的加入进一步加热了Webkit,从谷歌Chrome OS浏览器、谷歌An roid手机的OS内置浏览器中采用了Webkit作为内核,最近发售的Chrome OS更加令人期待。 从实现的角度来说,据说比Gecko代码更干净、更清晰,但因为我目前还没有研究过Gecko的代码,所以还不能比较。

Wekbit做了什么?

作为浏览器的内核,Webkit做了什么工作? 为了理解这些,我们先看看下面的Web浏览器做了什么。 可以从输入输出的角度看到Web浏览器做了什么。 我们先来看一个简单的例子。 Web浏览器的输入是HTML文档,输出是我们看到的网页。 对于一般用户来说,其输入和输出如下图所示很简单。

Webkit的输入和输出是什么呢? 如果知道了这个,我们就可以清楚地知道Webkit在做什么。 但是,要澄清这一点还很难。 Webkit的输出更复杂。 因为那个输出本来就没有直接面向用户。 现在简单地说,Webkit的输入是web文档,输出是看不见的模型,浏览器的上层使用这些模型描绘了我们看到的实际页面。 必要时,将更具体地考虑这些模式。

维基百科配置

Webkit实际上包括三大部分。 至少在代码结构上是这样的。 当然,细分后可以划分更多的模块。 如下图所示

其中,WebCore是Webkit的核心部分,实现了文档的建模,包括CSS、DOM、Render等实现。 JavaSript Core显然是JavaSript支持的实现。 橙色标记的Webkit部分包含各种平台的Webkit包的实现,这些平台抽象了浏览器可以直接支持的概念的实现,例如WebView、WebPage和WebFrame。 这三个部分一起构成了Webkit,在源代码中分别对应于这三个目录。 这意味着Webkit的三大部分是WebCore、JavaSript Core和Webkit。

APP应用程序在Webkit上的

从下图可以看出,利用Webkit的APP位置在Webkit模块之上,APP应用不需要直接与WebCore或JavaScript Core进行交互,也不需要与上述Webkit模块进行交互Webkit模块实际上抽象了大多数APP应用程序所需的部分。 这里的大多数APP应用程序实际上是指浏览器,通过Webkit模块提供的界面实现浏览器就足够了。 但是,对于一些APP应用,可能需要进行一定的改造,言归正传,Webkit原本是作为Browser的内核来设计实现的。

我已经看到这里了。 这意味着,如果要使用Webkit来完善浏览器和其他类浏览器APP应用程序的功能,了解Webkit模块部分就足够了。 更准确地说,理解所提供的接口就足够了。 事实上,在大多数平台上,如果使用Webkit内核作为浏览器内核组件,则提供的相应文档部分是对Webkit模块提供的接口的描述。 许多平台都提供了Browser组件,与其他可视组件一样,它在APP应用程序中的使用非常方便。 例如,如果某个平台提供了一个称为WebView的可视组件,则可以在以下代码行中显示web页: 使用的代码只有三行。

WebView *view=new WebView (;

view-load (URL (http://www.Google.cn ) );

view-show (;

以Webkit为浏览器组件的平台有Symbian S60、Android、Qt、GTK等很多,前几天看了信息后,黑莓似乎也打算在家里的手机上使用Webkit。

等待手续.

转载于:3359 www.cn blogs.com/jyli/archive/2010/01/31/1660355.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。