Android 浏览器内核浅谈[通俗易懂](Project)
目前,移動設備瀏覽器上常用的內核有Webkit,Blink,Trident,Gecko等,其中iPhone和iPad等蘋果iOS平臺主要是WebKit,Android4.4之前的android系統瀏覽器內核是WebKit,Android4.4系統瀏覽器切換到了Chromium(內核是Webkit的分支Blink),Windows Phone 8系統瀏覽器內核是Trident。
1.WebKit項目
(1)項目簡介:WebKit項目是蘋果公司在2005年發起的一個新的開源項目,是Safari瀏覽器的內核,是目前的主流瀏覽器渲染引擎。WebKit項目具有結構清晰、易于維護等優點,WebKit簡單靈活和便于引入新移植的特性,使其迅速稱為主流的渲染引擎。
(2)WebKit架構
WebCore部分:包含了目前被各個瀏覽器所使用的WebKit共享部分,是加載和渲染網頁的基礎部分,具體包括HTML解釋器、CSS解釋器等。
JavaScriptCore引擎:是WebKit中的默認JavaScript引擎。在Google的Chromium項目中,它被替換為V8引擎。
WebKit Ports部分:是WebKit紅的非共享部分,屬于WebKit被移植的模塊。由于不同瀏覽器使得平臺差異、依賴的第三方庫和需求不同,從而導致多種WebKit版本。
WebKit嵌入式接口:指在WebCore和javascript引擎之上的一層綁定和嵌入式編程接口,可以被各種瀏覽器調用。
2.Chromuim項目
(1)項目簡介
Chromuim項目是Google公司以蘋果開源項目WebKit作為內核,創建的一個新的項目,該項目的目標是創建一個快速的、支持眾多操作系統的瀏覽器。在Chromium項目基礎上,Google發布了自己的瀏覽器產品Chrome。與使用WebKit作為內核的Safari瀏覽器不同,Chromium本身就是一個瀏覽器,而不是Chrome瀏覽器的內核,再未從WebKit項目分離之前,Chrome瀏覽器使用的是WebKit內核。2013年4月,Google宣布從Webkit復制出來并獨立運作Blink項目,該項目也就是目前Android4.4及以上系統瀏覽器采用的內核。
(2)Blink內核
Blink項目從WebKit分離出來后,其本身也是源于WebKit項目,只是Google將除Chromium瀏覽器需要之外的其他移植的代碼都刪除了,并且在Blink項目中加入了很多新的技術,部分技術如下: 實現跨進程的iframe。iframe允許網頁中嵌入其他頁面,為了解決潛在的安全問題,為iframe創建一個單獨的沙箱進程。 重新整理和修改WebKit關于網絡方面的架構和接口。
將DOM樹引入JavaScript引擎中。
針對各種技術的性能優化,包括圖形、JavaScript引擎、內存使用、編譯的二進制文件大小等。
(3)基于Blink引擎的Chromium瀏覽器結構
下圖描述了Chromium的架構和主要模塊,可知Blink只是其中的一個模塊,和它并列的還有眾多的Chromium模塊,包括GPU/CommandBuffer(硬件加速架構)、V8 JavaScript引擎、沙箱模型、CC(Chromium合成器)、IPC、UI等。”Content模塊”和”Content API(接口)”
“Content模塊”和”Content API”將下面的渲染機制、安全機制和插件機制等隱藏起來,提供一個接口層,是Chromium對渲染網頁功能的抽象,被內部的Chromium瀏覽器、Content Shell調用,是用來渲染網頁內容的模塊。
“Chromium瀏覽和”Content Shell”
“Chromium瀏覽和”Content Shell”是構建在Content API之上的兩個”瀏覽器”,Chromium具有瀏覽器的完成功能。
“Content Shell”是使用Content API包裝的一層簡單的”殼”,用戶可以使用Content模塊來渲染和顯示網頁內容。Android WebView模塊
Android WebView模塊是希望利用Chromiuim的實現來替換原來的Android系統默認的WebView.
3.瀏覽器內核
(1)內核介紹
在瀏覽器中,有一個最重要的模塊,它主要的作用是將頁面轉變成可視化的圖像結果,這就是瀏覽器內核,也被稱為渲染引擎。所謂渲染,就是根據描述或者定義構建數學模型,通過模型生成圖像的過程。瀏覽器的渲染引擎就是能夠將HTML/CSS/JavaScript文本及其相應的資源文件轉換成圖像結果的模塊。
(2)內核特征
一個渲染引擎主要包括HTML解釋器、CSS解釋器、布局和JavaScript引擎、繪圖等。 HTML解釋器:解釋HTML文本的解釋器,主要作用是將HTML文本解釋成DOM(文檔對象模型)樹,DOM是一種文檔的表示方法.
CSS解釋器:級聯樣式表的解釋器,主要作用是為DOM中各個元素對象計算出樣式信息,從而為計算最后網頁的布局提供基礎設施。
布局:在DOM創建之后,WebKit需要將其中的元素對象同樣式信息結合起來,計算他們的大小位置等布局信息,形成一個能夠表示這所有信息的內部表示模型。
JavaScript引擎:使用JavaScript代碼可以修改網頁的內容,也能修改CSS的信息,JS引擎能夠解釋JS代碼并通過DOM接口和CSSOM接口來修改網頁內容和樣式信息,從而改變渲染的結果。
繪圖:使用圖形庫將布局計算后的各個網頁的節點繪制成圖形結果。
總結
以上是生活随笔為你收集整理的Android 浏览器内核浅谈[通俗易懂](Project)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 总结了200道经典的机器学习面试题 (附
- 下一篇: 这6种性格的人不适合做数据分析