Chromium for Android のビルド方法

Android用のChromiumをビルドしたくなったのでしてみました。
基本的に本家に書かれていることをやるだけです。
http://code.google.com/p/chromium/wiki/AndroidBuildInstructions

環境

ubuntu 12.04.3 64bit Desktop
国内ミラーだと例えば理研などがあります。
http://ftp.riken.jp/Linux/ubuntu-iso/CDs/precise/

Java6のインストール

あらかじめOracle Java6をインストールしておく。
こちらのサイトを参考にさせて頂きました。
http://qiita.com/ka_/items/dbeca6fac63a6e8ec9a6
以下のごとくppaを追加してインストールしてください。

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer

depot_toolsのインストール

chromiumのソースコード取得やビルドに必要なツール群です。
今回直接関係しているのはソース取得のgclient、コンフィグのgyp、ビルドシステムのninjaだけ(たぶん)ですが他にもいろいろあるようです。
http://dev.chromium.org/developers/how-tos/depottools
今回は~/にchromiumというディレクトリを作成し、depot_toolsやchromiumのソースはその中におとすことにします。

$ mkdir ~/chromium && cd ~/chromium
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH="$PATH":`pwd`/depot_tools

ソースコードとビルドに必要なモジュールの取得

https://sites.google.com/a/chromium.org/dev/developers/how-tos/get-the-code

$ fetch --nohooks android --nosvn=True # コミッタでない場合は --nosvn=True
$ cd src
$ ./build/install-build-deps.sh
$ gclient sync --nohooks

Android用のビルドに必要なその他のツールをインストールするスクリプトです。
ubuntuのバージョンによって必要なライブラリなどをインストールするものですが、ここで引っかかる場合は少々美しくないですが、スクリプトの中身を見て手動で apt-get install を実行してみてください。

$ sudo ./build/install-build-deps-android.sh

ビルド

これでビルドの準備ができましたので、ビルドします。 ビルドにはninjaというビルドシステムを使用します。
ninjaとはgoogleが開発したビルドシry。要するにmakeのすごい版ですかね(汗
http://code.google.com/p/chromium/wiki/NinjaBuild

$ export GYP_GENERATORS=ninja
$ . build/android/envsetup.sh
$ android_gyp
$ ninja -C out/Release -j8 chromium_testshell 

src/でninjaしてください。
Cオプションは、バイナリなどの出力先です。apkはこのなかのapksというディレクトリに生成されます。
jオプションはmakeと同じで並列job数です。指定しない場合はcpuのコア数から算出した妥当な値が設定されるようです。
最後のchromium_testshellはビルドターゲットです。指定しない場合はすべてビルドされます。わりと時間がかかるので必要なものを指定してビルドすることをオヌヌメします。

ターゲットの例。他にunit testなどがあるようですが、未調査。

  • chromium_testshell
  • content_shell_apk
  • android_webview_apk

ビルド時間

気になるビルド時間ですが、i5の2500/メモリ16GBのマシンで-j8してフルビルド1時間程度だと思います。timeし忘れかつ他の作業をしていたので正確ではないですが。 結構かかりますよね。Kitkatのフルビルドくらいかかります。

できたapkの確認

$ ls out/Release/apks

その他

以上でまっさらのubuntu上でのビルドは特に滞りなくビルドできると思います。
もしかして他になにか依存関係解決したり足りないモジュールをインストールしたような気もします。
思い出しながら書いたので間違いやうまくいかないところなどあればご指摘ください。

Tags// ,