如何编译 Chrome for Android

2014.5 更新


下载 depot_tools

下载 depot_tools(默认下载到当前用户主文件夹下的 chromium 子目录,自行根据需要修改,下载完毕后需要将 depot_tools 的目录添加到 PATH)

cd ~
mkdir chromium
cd chromium

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 

下载源代码和编译所需的第三方工具/库

fetch --nohooks android --nosvn=True
cd src
git checkout master

# if you are building for Android:
./build/install-build-deps-android.sh

gclient sync --nohooks

配置 GYP

~/chromium$ echo "{ 'GYP_DEFINES': 'OS=android', }" > chromium.gyp_env

~/chromium$ gclient runhooks

安装 Java JDK(如果已经安装可以跳过)

# 安装 Open JDK 1.7

~/chromium$ sudo apt-get install openjdk-7-jdk

# 配置为默认 JDK

sudo update-alternatives --config javac
sudo update-alternatives --config java
sudo update-alternatives --config javaws
sudo update-alternatives --config javap
sudo update-alternatives --config jar
sudo update-alternatives --config jarsigner

编译 Content shell

# 编译 Release 版本并安装到手机上

~/chromium/src$ ninja -C out/Release content_shell_apk

~/chromium/src$ build/android/adb_install_apk.py --apk ContentShell.apk --release

# 编译 Debug 版本并安装到手机上,Debug 版本可用于调试

~/chromium/src$ ninja -C out/Debug content_shell_apk

~/chromium/src$ build/android/adb_install_apk.py --apk ContentShell.apk --debug


如果是编译 WebView shell

~/chromium/src$ ninja -C out/Release android_webview_apk
~/chromium/src$ build/android/adb_install_apk.py --apk AndroidWebView.apk --apk_package org.chromium.android_webview.shell --release

运行 Content shell

~/chromium/src$ . build/android/envsetup.sh

~/chromium/src$ build/android/adb_run_content_shell  http://example.com

调试 Content shell

如果是中文 Ubuntu,需要先修改 src/build/android/adb_gdb,找到下面这个一段 -

if [ "$STATE" != "Running" ]; then
  echo "ERROR: GDBServer could not attach to PID $PID!"
  echo "Failure log (use --verbose for more information):"
  cat $GDBSERVER_LOG
  exit 1
fi

将第一行的"Running"修改为"运行中",然后运行 -

~/chromium/src$ build/android/adb_gdb_content_shell

# 默认调试主进程,如果要调试 sandboxed 进程(需要 adb root,使用参数 --help 查看更多选项)

~/chromium/src$ build/android/adb_gdb_content_shell --sanboxed

参考索引

Get the Code

Build instructions for Chromium for Android

你可能感兴趣的:(android,chrome)