chromium瀏覽器開發系列第三篇:chromium源碼目錄說明

上兩篇介紹了下載源碼和編譯源碼,這次主要介紹chromium的源碼目錄結構,我也是通過源碼和官網結合來跟大家說,如果有說的不準確的,歡迎交流。

另外,官網的不一定準確,他們其實也很懶,所以最主要還是靠自己。官網只能作爲一個參考。

Chromium結構相對兩年前變化很大。目錄結構依然很清晰,主要有三個部分(不包括其他的庫):瀏覽器,渲染器,webkit。瀏覽器是主要的進程,代表所有的UII / O。渲染通常是每個tab頁的子過程,是由瀏覽器驅動。Webkit做佈局和渲染。

簡單介紹解決方案文件:

解決方案文件是src/chrome/chrome.sln

  • 啓動代碼是在chrome/chrome_initial項目。

205359_auLs_2335664.png

  • 常見的共享庫的代碼是在 base 項目。此代碼是所有項目之間共享,chromium團隊試着讓它儘可能的小。

205421_TUMZ_2335664.png

  • 常見的瀏覽器特定的代碼在chrome/common項目,它由瀏覽器和渲染器之間共享。

205441_I9qb_2335664.png

  • Webkit內核代碼是在項目third_party/WebKit(只讀)。之前的src/webkit下chromiumwebkit的一個封裝,現在已經刪除webkit_glue項目,把一些測試文件移植到content/下,一些文件已經刪除。

205516_iQVh_2335664.png

  • chrome/browser項目提供了用戶界面,存儲,網絡請求等

205603_ncRS_2335664.png

頂級項目:

下載chromium源碼後,進入src目錄,你會發現一些目錄 ,如下:

205630_86sr_2335664.png

 

下面着重講一下一些比較重要的目錄:

  • android_webview提供適合集成到Android平臺的src /content的封裝接口。

注意:

205649_xsfW_2335664.png

  • appschrome應用相關

  • base:所有子項目之間共享的通用代碼。它包含像字符串操作,通用程序等。只有當超過一個頂級項目之間共享的代碼才能放到這裏。 

  • breakpad:谷歌的開源崩潰報告的項目。直接從谷歌代碼版本庫拉取。

  • build:構建相關的配置,由所有項目共享。

  • ccchromium合成器實現。

  • chromechromium瀏覽器主程序模塊實現代碼,核心代碼

  • chrome/test/data:運行某些測試的數據文件。

  • components:瀏覽器依賴的組件目錄。

  • content一個多進程沙箱瀏覽器渲染頁面的核心代碼。

  • net:爲chromium開發的網絡功能庫。

  • sandbox:沙箱項目,阻止渲染器修改系統。

  • Skia:爲Android開發谷歌的Skia的圖形庫。這是Android的樹副本。

  • SQL sqlite的封裝。

  • testing:用來單元測試的代碼。

  • third_party:第三方庫,如圖像解碼器和壓縮庫等。

  • UI/GFX:共享圖形類。這些是Chromium的圖形用戶界面的基礎。

  • UI/viewUI開發的簡單框架,提供渲染,佈局和事件處理一個簡單的框架。大部分的瀏覽器的用戶界面的在該系統中實現。該目錄包含了基本對象。

  • url:谷歌的開源URL解析和標準化庫。

  • V8V8 JavaScript庫。

  • webkit(小寫):現在只有一小部分留在這裏了。common/gpu/


依賴關係圖:

一個低層模塊不能直接include更高的模塊的代碼(例如:content不能include chrome中的頭文件),但可以使用嵌入的API和它通信。

210709_ATpm_2335664.png

 

今天就先寫到這裏,希望大家能一塊學習。

講了源碼下載,編譯,目錄結構,那麼接下來會講一下如何在windows下調試chromium。希望大家繼續關注。

另外附上官網地址:

http://dev.chromium.org/developers/how-tos/getting-around-the-chrome-source-code


如果大家對本系列文章有疑問,可以直接在公衆號留言,小編第一時間聯繫原創作者幫你耐心解答。

技術人員都有自己的情懷,深陷其中而不被理解,歡迎關注個人微信公衆平臺:程序員互動聯盟(coder_online),一個開發人員的家,來訴說自己的故事。

27225517_4bEO.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章