資源描述:
《WebKit引擎介紹》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、WebKit引擎入門介紹1WebKit簡介31.1簡介31.2WebKit主要特點31.2.1引擎31.2.2開源31.2.3高性能41.2.4可移植性41.2.5兼容性41.2.6遵守標準41.2.7安全41.3WebKit主要組成41.3.1體系結(jié)構(gòu)52WebCore介紹52.1WebCore目錄結(jié)構(gòu)52.2Http請求在WebCore中的主要流程62.2.1工作流程62.2.2處理流程83WebKit的DOM分析103.1DOM原理103.1.1DocView模型103.2DOM解析基本算法113.2.1基本算法思
2、想114WebKit的Ports介紹154.1Port概述154.2WebKitPort移植實現(xiàn)分析164.2.1WebCore交互接口164.2.2連接模塊loader164.2.3顯示模塊WebView和WebFrame164.2.4Android中對Port移植方面的實現(xiàn)174.2.5小結(jié)175WebKit的JavascriptCore介紹185.1JavaScriptCore實現(xiàn)特點185.2JavaScriptCore目錄的內(nèi)容185.3JavaScriptCore與WebCore交互196WebKitForA
3、ndroid196.1WebKit模塊目錄結(jié)構(gòu)196.2Java層框架226.2.1主要類描述226.2.2數(shù)據(jù)載入器的設(shè)計236.3C層框架246.4WebView操作分析256.4.1WebKit模塊初始化256.4.2數(shù)據(jù)載入276.5刷新繪制281WebKit簡介1.1簡介WebKit的前身是KDE小組的KHTML。Apple將KHTML發(fā)揚光大,推出了裝備KHTML改進型的WebKit引擎的瀏覽器Safari,獲得了非常好的反響。WebKit引擎比Gecko引擎更受程序員歡迎的原因,除了其引擎的高效穩(wěn)定,兼容性
4、好外,其源碼結(jié)構(gòu)清晰,易于維護,是一個重要的原因。現(xiàn)在瀏覽器的內(nèi)核引擎,基本上是三分天下:Trident:IE以Trident作為內(nèi)核引擎。Gecko:Firefox是基于Gecko開發(fā)。WebKit:Safari,GoogleChrome基于Webkit開發(fā)。還有一個Presto:Opera,任天堂DS瀏覽器,發(fā)展也良好。WebKit內(nèi)核在手機上的應(yīng)用十分廣泛,例如Google的手機Gphone、Apple的iPhone,Nokia’sSeries60browser等所使用的Browser內(nèi)核引擎,都是基于WebKit
5、。1.2WebKit主要特點1.2.1引擎該項目的主要重點是內(nèi)容部署在萬維網(wǎng)上的,基于標準的技術(shù),如HTML,CSS,JavaScript和DOM中。并能夠嵌入WebKit在其他應(yīng)用程序中,并用它作為一般用途的顯示和交互引擎。1.2.2開源WebKit繼續(xù)自由使用的兩個開源協(xié)議LGPL和BSD,在Webkit中,WebCore和JavaScriptCore是LGPL,其余是BSD授權(quán)。1.2.3高性能維持和改善的速度和內(nèi)存使用是一個重要的目標。隨著網(wǎng)頁內(nèi)容越來越豐富,越來越復(fù)雜,作為網(wǎng)絡(luò)瀏覽器上運行的更有限的設(shè)備,需要提
6、升性能,加快瀏覽速度。1.2.4可移植性WebKit移植到各種各樣的臺式機、移動、嵌入式平臺和其他平臺。WebKit提供必要的基礎(chǔ)設(shè)施,并酌情提供友好嵌入的API。1.2.5兼容性用戶瀏覽網(wǎng)頁,兼容現(xiàn)有的網(wǎng)站是必不可少的。WebKit致力于維護和改善兼容現(xiàn)有的網(wǎng)絡(luò)內(nèi)容,利用回歸測試,以保持WebKit的兼容性。1.2.6遵守標準WebKit的目標是遵守有關(guān)的Web標準,并支持新的標準。1.2.7安全保護用戶安全的行為是至關(guān)重要的。迅速修復(fù)安全問題,以保護用戶系統(tǒng)和維護他們對WebKit的信任。1.3WebKit主要組成W
7、ebKit主要包括三個部分WebCore、JavascriptCore及Ports部分。WebKit專注的核心部分主要是:分析Html,Javascript的解析和布局渲染技術(shù)。分別在由WebCore/html,JavascriptCore和WebCore/rendering來完成。1.3.1體系結(jié)構(gòu)WebKit的體系結(jié)構(gòu)如下圖:2WebCore介紹2.1WebCore目錄結(jié)構(gòu)根據(jù)源代碼目錄結(jié)構(gòu),WebCore目錄主要包括如下:bindings:將DomBinding給JavascriptCore方面的代碼,同時包含依據(jù)
8、idl接口描述文件,自動生成對應(yīng)于JavascriptCore的Binding實現(xiàn)的腳本等內(nèi)容;bridge:主要包含NPPlugin方面的接口訪問等內(nèi)容;css:主要包括與css方面相關(guān)的內(nèi)容,如解析不同css規(guī)則的定義與實現(xiàn)、cssBinding給JS的接口定義等內(nèi)容;dom:主要包括dom方面相關(guān)的內(nèi)容,如不同