我們已經知道,Android瀏覽器的內核是Webkit引擎,Webkit的前身是KDE小組的KHTML。Apple將KHTML發揚光大,推出了裝備KHTML的改進型的Webkit引擎的瀏覽器Safari,獲得了非常好的反響。Webkit內核在手機上的應用十分廣泛,例如Google的手機Gphone,Apple的iPhone,Nokia的Series
60 browser等所有使用的Browser內核引擎,都是基於Webkit。隨着計算機、手機及連網裝置的普及,未來終端運算都會在雲端執行,目前雲計算技術在網絡服務中已經隨處可見,例如搜索引擎、網絡信箱等,使用者只要輸入簡單指令即能得到大量信息。未來的手機GPS等行動裝置都可以透過雲計算技術,發展出更多的應用服務。因此人們只要擁有一個功能強大的瀏覽器,就能滿足平時工作生活的需要。
Webkit是一個開源瀏覽器網頁排版引擎,與之相應的引擎有Gecko(Mozilla、firefox等使用的排版引擎)和Trident(也成爲MSHTML,是IE使用的排版引擎)。同時,Webkit也是蘋果Mac Os X系統引擎框架版本的名稱,主要用於Safari、Dashboard、Mail和其他一些Mac OS X程序。Webkit所包含的WebCore排版引擎和JSCore引擎來自於KDE的KHTML和KJS,當年蘋果比較了Gecko和KHTML後,仍然選擇了後者,就因爲它擁有清晰的源碼結構、極快的渲染速度。而今Android系統也毫不猶豫地選擇了Webkit。它具備觸摸屏、高級圖形顯示和上網功能,用戶能夠在手機上查看電子郵件、搜索網址和觀看視頻節目等。可以看出這是一個非常強大的Web應用平臺。
WebKit由3個模塊組成:JavaScriptCore、WebCore和WebKit:
- WebKit:整個項目名稱。
- JavaScriptCore:JavaScript解釋器。
- WebCore:整個項目的核心,用來實現Render引擎,解析Web頁面,生成一個DOM樹和一個Render樹。
- Page:與外框相關的內容(Frame,Page,History,Focus,Window)。
- Loader:加載資源及Cache。
- HTML:DOM HTML內容及解析。
- DOM:DOM CORE 內容。
- XML:XML內容及解析。
- Render:排版功能。
- CSS:DOM CSS內容。
- Binding:DOM與JavaScriptCore綁定的功能。
- Editing:所有與編輯相關的功能。
- API:基本JavaScript功能。
- Binding:與其他功能綁定的功能,如DOM、C,JNI。
- DerviedSource:自動產生的代碼。
- ForwordHeads:頭文件,無實際意義。
- PCRE:Perl-Compatible Regular Expressions(Perl兼容的規則表達式)。
- KJS:JavaScript內核。
- WTF:KDE的C++模板庫。
- CURL獲得網站的stream。
- 解析劃分字符串。
- 通過DOM Builder按合法的HTML規範生成DOM樹。
- 如果有JavaScript,JSEngine就通過ECMA-262標準完善DOM樹。
- 把DOM傳給LayoutEngine進行佈局,如果有CSS樣式,就通過CSSParser解析。
- 最後Rending渲染出來。