成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Webkit內核探究——Webkit簡介

開發 前端
研究Webkit內核已經有一段時間了,在這期間我花了很多時間去研讀webkit代碼,并在網上查閱了不少的資料。在這之后,我開始嘗試對Webkit內核進行剪裁,以便得到自己所需的部分。

研究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 文檔,輸出是一些看不見的模型,瀏覽器上層借助于這些模型來繪制出我們所看到的實際頁面。后面適當的時候會更具體的探討這些模型。

Webkit實際上包含三大部分,至少從代碼結構上來說是這樣的,當然,如果細分的話還能夠劃分出更多的模塊。如下圖所示

 

其中,WebCore是Webkit的核心部分,它實現了對文檔的模型化,包括了CSS, DOM, Render等的實現, JavaSript Core顯然是對JavaSript支持的實現。而橘黃色標注的Webkit部分包含了很多不同平臺對Webkit封裝的實現,即抽象出了與瀏覽器所能直 接對應的一些概念的實現,如,WebView,WebPage, WebFrame等。這三部分共同構成了Webkit, 在源碼中,它們分別對應這個這三個目錄, 即Webkit三大部分為WebCore, JavaSript Core,Webkit。

應用程序如何利用Webkit

Wekbit組成

從下圖可以看出,利用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了。

原文鏈接:http://www.cnblogs.com/jyli/archive/2010/01/31/1660355.html

責任編輯:陳四芳 來源: cnblogs.com
相關推薦

2013-09-16 09:14:31

WebKit內核瀏覽器

2011-09-01 15:22:16

Qt WebKitWebKit

2011-08-08 09:25:55

2013-10-31 14:31:09

2013-03-19 13:57:01

WebKit前端

2013-05-22 10:37:37

OperaWebkit瀏覽器

2011-08-29 14:27:33

QTWebkit瀏覽器

2011-09-09 16:19:40

Android Web

2009-11-11 13:00:05

GNOME瀏覽器Webkit內核

2011-09-09 16:00:02

Android Web實例

2011-09-09 16:23:16

Android Web測試

2011-10-13 14:26:12

Qt WebKitWebKit

2013-10-29 17:21:33

OperaWebKit

2013-03-04 10:10:36

WebKit瀏覽器

2010-07-21 15:06:33

2011-06-14 11:48:38

Webkit QT

2011-09-09 15:31:04

Android Web插件

2011-09-09 15:51:58

Android Web應用

2011-08-29 10:22:48

QtWebkit 模塊HTML文檔

2013-03-07 09:21:58

Webkit
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲乱码国产乱码精品精的特点 | 黄色国产区 | av大全在线观看 | 午夜影视在线观看 | 亚洲精品一区二区三区中文字幕 | 亚洲高清一区二区三区 | 国产成人精品一区二区三区在线 | 久色| 久久久亚洲成人 | 成人一区二区视频 | 久久久婷婷| 午夜精品福利视频 | av在线一区二区三区 | 亚洲成人精品在线观看 | 久久草视频 | 日韩精彩视频 | 亚洲一一在线 | 国产精品国产精品国产专区不蜜 | 国产精品自产拍 | 成人精品国产一区二区4080 | 国产精品久久久久久久一区二区 | 亚洲视频免费在线看 | 日本精品久久久一区二区三区 | 日韩在线小视频 | 中文字幕一区二区三区精彩视频 | 久久亚洲国产精品 | 久产久精国产品 | 好好的日在线视频 | 全免费a级毛片免费看视频免费下 | 欧美一区日韩一区 | 欧美国产日韩一区二区三区 | 国产在线aa| 颜色网站在线观看 | 国产在线观看福利 | 日韩激情一区 | 91在线精品视频 | 91免费在线 | 美女福利视频网站 | 国产精品视频一区二区三 | 欧美日韩一区二区电影 | 久久久久久成人 |