官方文檔
https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md
準備
Ubuntu (其他linux也可以,但是官方推薦ubuntu,Windows和mac是不行的)
梯子
下載下傳depot_tools
depot_tools是Google提供的為chromium進行代碼管理的一套工具,包括gclient,gn,gyp等一系列腳本工具等,在以後和源碼打交道時會一直使用到它。
首先是下載下傳。
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
下載下傳後配置環境變量,在.bashrc或者.bash_profile或.zshrc等。
export PATH = [your_depot_tools dir]/bin:$PATH
下載下傳chromium源碼
首先是建立一個目錄存放源碼,然後進入這個源碼。
mkdir chromium && cd chromium
fetch --nohooks android
如果您不想要完整的回購曆史記錄,可以通過将–no-history标志添加到來節省大量時間fetch。
fetch --no-history android
這一過程可能需要較長時間.如果中途出了什麼問題,一定要進行以下步驟:
gclient sync
如果到這步沒有問題,那麼恭喜你,源代碼下載下傳成功了。
./build/install-build-deps.sh
以及安裝第三方庫(src目錄下)
./build/install-build-deps-android.sh
如果還不行,請檢查網絡代理後再sync。~
中途可能會出現某個py檔案執行錯誤或者exit ,請不要擔心,重新确認可以翻牆後再sync一次。
編譯源代碼
官方文檔解釋,已經放棄GYP了,現在推薦使用GN進行配置和build。
gn args out/Default
這裡的out/Default目錄就是以後編譯的apk的輸出的一層,apk會存放在apks中。
接着穩妥起見,可以再來一次sync.
gclient sync
接下來準備編譯環境:
. build/android/envsetup.sh
官方對編譯提供了3種編譯方案,分别是完整的浏覽器,content shell(提供了浏覽器基本功能的一個殼),webview。
編譯完整浏覽器:
ninja -C out/Default chrome_public_apk
可以在out/Default/apks中看到相應的apk.
編譯contentshell:
ninja -C out/Release content_shell_apk
編譯webview:
ninja -C out/Release android_webview_apk
這幾步都可以得到對應的apk。
可以将手機連接配接到電腦,然後可以push過去安裝,或者直接install,當然也可以用官方文檔提供的方法直接使用depot_tool進行安裝。
好了,到這裡就完成了chromium的編譯,可以修改代碼進行送出了。