上兩篇介紹了下載源碼和編譯源碼,此次主要介紹chromium的源碼目錄結構,我也是經過源碼和官網結合來跟你們說,若是有說的不許確的,歡迎交流。html
另外,官網的不必定準確,他們其實也很懶,因此最主要仍是靠本身。官網只能做爲一個參考。android
Chromium結構相對兩年前變化很大。目錄結構依然很清晰,主要有三個部分(不包括其餘的庫):瀏覽器,渲染器,webkit。瀏覽器是主要的進程,表明全部的UI和I / O。渲染一般是每一個tab頁的子過程,是由瀏覽器驅動。Webkit作佈局和渲染。程序員
簡單介紹解決方案文件:web
解決方案文件是src/chrome/chrome.sln。sql
1.啓動代碼是在chrome/chrome_initial項目chrome
2.常見的共享庫的代碼是在 base
項目。此代碼是全部項目之間共享,chromium團隊試着讓它儘量的小。windows
3.常見的瀏覽器特定的代碼在chrome/common項目,它由瀏覽器和渲染器之間共享。瀏覽器
4.Webkit內核代碼是在項目third_party/WebKit(只讀)。以前的src/webkit下爲chromium對webkit的一個封裝,如今已經刪除webkit_glue項目,把一些測試文件移植到content/下,一些文件已經刪除微信
5.chrome/browser項目提供了用戶界面,存儲,網絡請求等網絡
6.
頂級項目:
下載chromium源碼後,進入src目錄,你會發現一些目錄 ,以下:
下面着重講一下一些比較重要的目錄:
android_webview:提供適合集成到Android平臺的src /content的封裝接口。
注意:
apps:chrome應用相關。
base:全部子項目之間共享的通用代碼。它包含像字符串操做,通用程序等。只有當超過一個頂級項目之間共享的代碼才能放到這裏。
breakpad:谷歌的開源崩潰報告的項目。直接從谷歌代碼版本庫拉取。
build:構建相關的配置,由全部項目共享。
cc:chromium合成器實現。
chrome:chromium瀏覽器主程序模塊實現代碼,核心代碼。
chrome/test/data:運行某些測試的數據文件。
components:瀏覽器依賴的組件目錄。
content:一個多進程沙箱瀏覽器渲染頁面的核心代碼。
net:爲chromium開發的網絡功能庫。
sandbox:沙箱項目,阻止渲染器修改系統。
Skia的:爲Android開發谷歌的Skia的圖形庫。這是Android的樹副本。
SQL: sqlite的封裝。
testing:用來單元測試的代碼。
third_party:第三方庫,如圖像解碼器和壓縮庫等。
UI/GFX:共享圖形類。這些是Chromium的圖形用戶界面的基礎。
UI/view:UI開發的簡單框架,提供渲染,佈局和事件處理一個簡單的框架。大部分的瀏覽器的用戶界面的在該系統中實現。該目錄包含了基本對象。
url:谷歌的開源URL解析和標準化庫。
V8:V8 JavaScript庫。
webkit(小寫):如今只有一小部分留在這裏了。common/gpu/
依賴關係圖:
一個低層模塊不能直接include更高的模塊的代碼(例如:content不能include chrome中的頭文件),但可使用嵌入的API和它通訊。
今天就先寫到這裏,但願你們能一塊學習。
講了源碼下載,編譯,目錄結構,那麼接下來會講一下如何在windows下調試chromium。但願你們繼續關注。
另外附上官網地址:
http://dev.chromium.org/developers/how-tos/getting-around-the-chrome-source-code
第一時間得到博客更新提醒,天天一篇技術原創,以及更多技術信息分享,歡迎關注我的微信公衆平臺:程序員互動聯盟(coder_online),掃一掃下方二維碼或搜索微信號coder_online便可關注,咱們能夠在線交流。