1. 程式人生 > >Chromium原始碼拉取&編譯

Chromium原始碼拉取&編譯

作為一個喜歡折騰的程式設計師,在多次折騰下終於在Linux系統下編譯出“ChromePublic.apk”,併成功安裝到真機上,以下是一個簡單的記錄。

系統要求

  1. 執行Linux且至少具有8GB RAM的64位Intel計算機。強烈推薦超過16GB。 [尤為重要,有可能就是這個問題導致編譯失敗,本人用的是Ubuntu -16.04,算是比較穩定的系統]

  2. 至少100GB的可用磁碟空間。

  3. 你必須已經安裝了Git和Python。

  4. 科學上網

安裝 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.具體其他可以參照其官網