Chromium原始碼拉取&編譯
作為一個喜歡折騰的程式設計師,在多次折騰下終於在Linux系統下編譯出“ChromePublic.apk”,併成功安裝到真機上,以下是一個簡單的記錄。
系統要求
執行Linux且至少具有8GB RAM的64位Intel計算機。強烈推薦超過16GB。 [尤為重要,有可能就是這個問題導致編譯失敗,本人用的是Ubuntu -16.04,算是比較穩定的系統]
至少100GB的可用磁碟空間。
你必須已經安裝了Git和Python。
科學上網
安裝 depot_tools
在linux下克隆安裝該軟體:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
配置環境
export PATH="$PATH:/path/to/depot_tools"
以上命令是環境只在該終端下生效,關於如何全域性生效,自行百度。
獲取程式碼
為chromium建立一個目錄並更改為它(可以隨意呼叫它並將其放在任何您喜歡的位置,只要完整路徑沒有空格):
mkdir ~ / chromium && cd~ / chromium fetch - nohooks android
gclient檔案和一個名為目錄src在工作目錄。切換到src目錄:
cd src
通過附加target_os = ['android']到.gclient檔案(在上面的目錄中src)新增Android支援
echo “target_os = ['android']” >> ../.gclient
然後執行gclient sync以獲取新的Android依賴項:
gclient sync
安裝其他構建依賴項
build/install-build-deps-android.sh
執行 runhooks
gclient runhooks
設定構建
Chromium使用Ninja作為其主要構建工具以及一個名為GN的工具來生成.ninja檔案。您可以使用不同的配置建立任意數量的構建目錄。要建立構建Chrome for Android的構建目錄,請執行:
gn gen --args='target_os="android"' out/Default
編譯Chormium
autoninja -C out/Default chrome_public_apk
編譯進行中,等待編譯完成,在“/chromium/src/out/Default/apks”目錄下既可以看到成品apk,即可以安裝到真機上。整個編譯過程比較慢,需要多多關注編譯過程中編譯失敗爆出的log。
疑問解決
1.編譯過程中提示缺少python相關庫,需要先安裝該庫。
2.編譯過程中可能會提示缺少一些c或者c++相關的庫的資訊,同樣也需要去查詢安裝。在我編譯過程中出現過去少“clang”相關庫。後續安裝
sudo apt-get install clang-tools-6.0
該庫我也不知道幹什麼的,就傻瓜安裝吧,“sudo apt-get install clang”按上“tab”鍵可以檢視具有哪些庫。
整個過程提示過幾個庫不存在,奈何在編譯過程中沒做好記錄,不過不要怕,缺什麼裝什麼就行了。
補充
1.模組編譯
$ ninja -C out/Default/ net $ ninja -C out/Default/ url $ ninja -C out/Default/ zlib
這將在chromium/src/out/Default下產生這些模組的BUILD.gn檔案中定義得targets,比如net和url的共享庫,zlib得靜態庫等。
2.具體其他可以參照其官網