揭祕chromium內部目錄結構

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

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

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

簡單介紹解決方案文件:

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

1.啓動代碼是在chrome/chrome_initial項目


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


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


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


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


6.

頂級項目:

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


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

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

注意:

  • 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和它通信。

 

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

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

另外附上官網地址:

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

第一時間獲得博客更新提醒,每天一篇技術原創,以及更多技術信息分享,歡迎關注個人微信公衆平臺:程序員互動聯盟(coder_online),掃一掃下方二維碼或搜索微信號coder_online即可關注,我們可以在線交流。

                                                                
摘自 :http://my.oschina.net/u/2335664/blog/397663
發佈了60 篇原創文章 · 獲贊 13 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章