概要
- ブラウザというアプリがどんな作りになっているのか勉強したかったのでビルドしてみました。
- 公式にビルドドキュメントがありますが、ハマりどころが多かったのでこれから挑戦してみたい人の助けになれば幸いです。
- 全ての手順を書いてはいません、公式ドキュメントの補足的扱いとなります。
環境
- ホストOS:Windows10
- ゲストOS:Ubuntu
- 仮装アプリ:VirtualBox
VirtualBoxの設定
- とにかくソースコードがデカイのとビルド中にメモリを大量消費するので、
ストレージ64G/メモリ4G 位は割り振っておくと良いでしょう。 - ビルド後のディスク使用量が31Gにもなっていました。
Ubuntu
- ビルドするOSの選定ですが、install-build-deps.sh の中にあるように Ubuntu しかダメそうです。。。
- Ubuntu でも縛りがありますが、最新を使っていれば大丈夫でしょう。
install-build-deps.sh
if [[ ! $lsb_release =~ $ubuntu_codenames ]]; then
echo "ERROR: Only Ubuntu 12.04 (precise), 14.04 (trusty), " \
"14.10 (utopic), 15.04 (vivid), 15.10 (wily) and 16.04 (xenial) " \
"are currently supported" >&2
exit 1
fi
ソースコードの入手
- ソースコードの入手には公式ツールの depot_tools を利用します。
- depot_tools(公式Tutorial)
- ここはチュートリアル通りに、git clone してきてパスを通して fetch android するだけです。
- ダウンロード時間は環境によってまちまちで30分で終わるって書いている人もいましたが、
私は2~3時間かかりました… (;´Д`) - 出かける前や、寝る前に走らせるといいでしょう、ただ、コンソールに何も出ないのでリトライ処理が動いているとも知らず
ずっと待ってしまうこともあるので注意。
ビルド
- Build Instructions(Android)
- 上の章で Get the code までは終わっているので、設定ファイルの作成についてです。
-
gn args out/Default
で以下のように記述しました。
target_os = "android"
target_cpu = "x86"
# Build arguments go here. Examples:
is_component_build = true
is_debug = true
is_clang = true
# See "gn args <out_dir> --list" for available build arguments.
symbol_level = 1
enable_incremental_javac = true
- target_cup の設定を間違えると、せっかくビルドしたのに、アプリがクラッシュします。
- ninja というコマンドを利用してビルドするのですが、フルブラウザの場合は chrome_public_apk オプションを利用します。
$ ninja -C out/Default chrome_public_apk
// 1時間以上待つ
$ ls out/Default/apks/
ChromePublic.apk
// できあがり!
最後に
- ダウンロードやビルドなどかなり時間を使うのに、
OSが異なったり設定を間違えてまたやり直しなどを何度も繰り返しました… (´・ω・`)
この資料でそのような被害が少しでも減るとうれしいです。 - 次はレイアウトをいじるのに Android Studio 対応したいなーなんて思ってます。
それでは ノシ