天天看點

chromium 初識簡介

 1.浏覽器主要工作:

       浏覽器要處理的兩個核心對象是HTML和JavaScript。HTML用來實作網頁UI,涉及到的最核心技術是UI渲染技術。JavaScript用來實作網頁功能,涉及到的最核心技術JavaScript引擎技術。

     浏覽器工作的總重要的部分是UI 渲染子產品,其中又以動畫的流暢與否,來衡量使用者體驗好壞,這就需要加快UI渲染速度(一般是是60fps),優化這些通常采取通常都會使用諸如縱向分層、橫向分塊的渲染政策。所謂縱向分層,就是在Z軸方向上按層來劃分UI;所謂橫向分塊,就是對于UI的每一個層。

   智能裝置的多核特性,可以使得在執行第N幀的UI繪制指令的同時,收集第N+1幀的UI繪制指令。此外,對于第一步收集到的UI繪制指令,還可以做一些額外的優化。當我們收集到一幀UI的所有繪制指令的時候,我們就相當于是知悉了這一幀UI的全貌。知悉了一個UI幀的全貌之後,就可以進行一些優化,例如對某些UI繪制指令進行重排和合并,以及丢棄那些被遮擋的UI相關的繪制指令。這些優化同樣是可以減少渲染操作,進而獲得更流暢的UI體驗。此外還有很多裝置配備了GPU(硬體加速渲染技術),進而可以進一步提高UI的渲染速度。UI層和塊,可以直接以GPU的紋理或者FBO來進行繪制和合成。GPU具有成熟和專業的UI渲染技術,是以通過它來渲染UI,可以獲得更流暢的UI體驗。

       在移動端上,近兩三年出現了不少專門針對手機的Web OS,例如Firefox OS、Ubuntu Mobile OS、Tizen OS以及阿裡的雲OS,都支援運作Web應用,這意味在這些系統上可以使用JavaScript來開發應用。當然,在Android和iOS上也可以開發Web應用,不過它們都是要運作在WebView之上,不是直接在OS層面上得到支援。在服務端上,Node.js就是一個有代表性的架構,它使得我們可以使用JavaScript來開發Web伺服器。一個本來隻是設計用在網頁開發的語言,由于它的簡潔和易用性,現在不僅滲透到移動端、伺服器端開發上,還滲透到了MCU領域上。JavaScript是一種動态語言,但與當下流行的的java ,c++靜态語言一樣,在實作上都是涉及到了編譯相關的知識,例如文法解析、生成文法樹、生成位元組碼指令、生成本地指令和指令優化等。隻不過對于動态語言來說,這些操作發生在應用程式運作時,隻對于靜态語言來說,這些操作發生應用程式運作前。此外,運作JavaScript的引擎與運作Java位元組碼的虛拟機一樣,在運作時都提供了記憶體自動管理技術,也就是會執行GC。由此可見,學習JavaScript可以獲得很多編譯語言相關的知識。這也是學習浏覽器技術可以得到的第二點核心技術。此外,運作JavaScript的引擎與運作Java位元組碼的虛拟機一樣(c不會),在運作時都提供了記憶體自動管理技術,也就是會執行GC(Garbage Collection,垃圾收集,垃圾回收)。由此可見,學習JavaScript可以獲得很多編譯語言相關的知識。這也是學習浏覽器技術可以得到的第二點核心技術。