1. 先有Ubuntu。。。
2. 下载depot_tools工具:卤煮是在~/chromium/目录下执行下载的,执行: ~/chromium $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git; 如果在/bin目录下创建,还需要执行一步: ~/bin/depot_tools/ $sudo chmod 777 depot_tools ,因为下载源码的时候,也会在depot_tools工具下载一些东西
3. 将depot_tools工具加入环境变量: ~/chromium $ export PATH=$PATH:/home/www/chromium/depot_tools;
4. 下载代码: ~ $ cd ~/chromium; ~/chromium $ fetch --nohooks android --nosvn=True;下载代码失败了或者网络断开了,想再次下载代码,只需要同步即可,执行: ~/chromium $ gclient sync
同样的,可以使用 ~/chromium $ git clone https://chromium.googlesource.com/chromium/src 来下载代码,但这种不会自动生成.gclient文件,还需要手动创建,建议不这么做
.gclient文件内容大致是:
solutions = [
{
"managed": False,
"name": "src",
"url": "https://chromium.googlesource.com/chromium/src.git",
"custom_deps": {},
"deps_file": ".DEPS.git",
"safesync_url": "",
},
]
target_os = ["android"]
如果不想下载无用的代码,可以在custom_deps中增加如下代码
"src/content/test/data/layout_tests/LayoutTests": None,
"src/chrome/tools/test/reference_build/chrome_win": None,
"src/chrome_frame/tools/test/reference_build/chrome_win":None,
"src/chrome/tools/test/reference_build/chrome_linux":None,
"src/chrome/tools/test/reference_build/chrome_mac": None,
"src/third_party/hunspell_dictionaries": None,
5. 代码下载完成后,就需要安装一些编译所需的基本依赖: ~/chromium $ sudo src/build/install-build-deps-android.sh
6. 指定编译的平台,配置GYP: ~/chromium $ echo "{ 'GYP_DEFINES': 'OS=android', }" > chromium.gyp_env 这样就会生成一个chromium.gyp_env文件
然后在 ~/chromium $ gclient runhooks 下载一些编译的依赖
7. 配置openjdk 1.7
~/chromium $ sudo update-alternatives --config javac
~/chromium $ sudo update-alternatives --config java
~/chromium $ sudo update-alternatives --config javaws
~/chromium $ sudo update-alternatives --config javap
~/chromium $ sudo update-alternatives --config jar
~/chromium $ sudo update-alternatives --config jarsigner
老版本的ubuntu 可直接用 ~/chromium $ sudo apt-get install openjdk-7-jdk 来安装
新版本的话可能只能安装openjdk 1.8,如果不会安装,请参考我的另一篇博文第一步即安装openjdk7
8. 配置GN
~/chromium/src $ gn args out/Default
# Build arguments go here. Examples:
# is_component_build = true
# is_debug = false
# See "gn args <out_dir> --list" for available build arguments.
target_os = "android"
#target_cpu = "arm" # (default)
#is_debug = true # (default)
# Other args you may want to set:
is_component_build = true
is_clang = true
symbol_level = 1 # Faster build with fewer symbols. -g1 rather than -g2
enable_incremental_javac = true # Much faster; experimental
然后保存,GN就会自动配置,在配置完后,就可以进行编译了
9.编译:
~/chromium/src $ source build/android/envsetup.sh
~/chromium/src $ ninja -C out/Default chrome_public_apk (编译整个chromium)
~/chromium/src$ ninja -C out/Default android_webview_apk (只编译WebView)
编译好的apk目录: ~/chromium/src/out/Default/apks