有人自己下過Chrome瀏覽器源碼自己編譯過嗎,為什麼整個工程項目那麼大有好幾個G,如何進行裁剪


謝邀。我就略略地回答一下。歡迎大神們指出錯誤!

鑒於 @依雲 的評論,我就先理清一下。一般來說,Chrome是Google公司的瀏覽器產品,是閉源的,開源的是Chromium這個項目。為了一些組件像flash有更好的穩定性或是運行效率或是用戶體驗,Google公司就直接基於Chromium加上定製一些閉源的組件( 不知這樣說對不對),從而發布了廣受好評的Chrome瀏覽器。而Chromium這個開源項目其實具體有兩個部分,一個是Chromium OS,而另一個就是Google Chrome瀏覽器部分(這裡的Google Chrome就指瀏覽器部分的target的名字,Chromium里指瀏覽器的app都是用Chrome這個名字),題主說的應該就是這個部分了。

本人在實習的時候剛開始就要下Chromium的源碼然後編譯,期間當然也有很多蛋疼的事情了。至於為什麼整個工程的源碼這麼大,需要從很多方面去看吧,最突出的就是引用第三方的package非常多,而且有些package本身就非常大(在下源碼的時候就會發現了,當然網路要足夠好,大家都懂的),例如就一個WebKit已經3、4G(實際的忘記了),還有其他js的V8引擎、圖形庫Skia等等,直接導致了Chromium整個項目佔用空間很大。

除開第三方的package剩下來的也不算太大,這裡就要說說Chromium吸引的地方了,裡面的多進程架構、IPC、消息循環系統、plugin、NaCl、Sandbox、跨平台、自動化測試等等,每一項內容深入下去也是有很多知識可以學的。這個不多說了,看Chromium的主頁(http://www.chromium.org)就能獲得並學習所有的信息了。

不太懂裁剪是指哪方面,如果說想了解source code裡面的內容然後一開始不想看那麼大的東東可以去找一些開源的基於Chromium的Web Runtime看看。一般就是經過剪裁的,可能只剩下單個webview那塊,這樣就比較容易著手。

歡迎補充!


跟著這個教程,選擇你想編譯的平台。基本上可以完成chromium的編譯。

https://www.chromium.org/developers/how-tos/get-the-code

如果你想看看怎麼裁剪可以關注掃地僧的專欄。https://zhuanlan.zhihu.com/chrome


一般不需要裁剪,事實上項目過於複雜直接修改代碼更容易出錯。編譯選項有很多, 通過配置選項就能夠禁用或開啟很多功能了。

而且很多組件也是可以單獨編譯的,比如 blink , v8 等。


http://www.jianshu.com/p/7b95f179dfaa 可以參考博客【Chrome源碼學習(一)】源代碼編譯


才幾個 GB 的代碼而已,一個人去裁剪沒有意義而且工程量太大,如果是根據需要對於編譯的結果進行裁剪可以用編譯配置開關來選擇需要加入的可選功能(比如一些 HTML5 的功能)


freebsd ports chromium?


推薦閱讀:

如何使自己 App 的卡片在多任務中像 Chrome 一樣「匯聚」在一起(Android 5.0+)?
如何評價 Windows 10 詢問用戶是否會推薦 Google Chrome?

TAG:GoogleChrome | 源代碼 | 編譯 |