Chromium for Android 编译过程和踩坑说明

最近试着玩Android上的chrome,并没有开源,试试去接触Chromium,官方的文档也写的很清楚了,
要做这些事情,免不了就是下载源码,进行编译,然后修改代码,进行提交。
官方文档在这里: Chromium Projects.

必备工具

  • Ubuntu 14.04 64bit
  • 梯子

踩坑纪要:

一开始就踩坑了,其实Google官方是推荐使用Ubuntu的,只有一处提到了说认为在这个平台有着最大的好运。但是其他地方都是使用Linux进行描述。
手里正好有Deepin15的系统,就装了这个进行,结果各种坑,因为从15以来deepin已经不再使用ubuntu了,而是基于debian…各种源不一样就不说了,
还提议编译Shadowsocks Qt for debian.。。
下载源码的过程都能出错,缺各种依赖,跑一些脚本也会报错,最后好不容易我装完了各种缺的文件,发现gclient sync死活成功不了。不能忍,果断换成Ubuntu14.04。

所以建议就老老实实的看完官方的所有说明,使用ubuntu吧。

JDK

openJdk和oracle的都可以,我试了都没问题,第一次成功时使用的openjdk1.7,后来换成了oracle 也可以。这一步应该很简单,大家可以apt-get,也可以自己下载了配置环境变量。

下载源码

完整过程可以参考 官方说明.

下载depot_tools

depot_tools是Google提供的为chromium进行代码管理的一套工具,包括gclient,gn,gyp等一系列脚本工具等,在以后和源码打交道时会一直使用到它。
首先是下载。

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

下载后记得要配置环境变量,在.bashrc或者.bash_profile等。

1
export PATH = [your_depot_tools dir]/bin:$PATH

下载chromium源码

首先是创建一个目录存放源码,然后进入这个源码。

1
fetch --nohooks android

这一过程可能需要较长时间.如果中途出了什么问题,一定要进行以下步骤:

1
gclient sync

如果到这步没有问题,那么恭喜你,源代码下载成功了。

不过我是没这么幸运了,中间出了很多问题,fetch过程和sync过程都出过错,缺依赖,请走以下步骤:

1
./build/install-build-deps.sh

以及安装第三方库(src目录下)

1
./build/install-build-deps-android.sh

如果还不行,请检查网络代理后再sync。~

中途可能会出现某个py文件执行错误或者exit ,请不要担心,重新确认可以翻墙后再sync一次。

编译源代码

官方文档解释,已经放弃GYP了,现在推荐使用GN进行配置和build。

1
gn args out/Default

这里的out/Default目录就是以后编译的apk的输出的一层,apk会存放在apks中。

接着稳妥起见,可以再来一次sync.

1
gclient sync

接下来准备编译环境:

1
. build/android/envsetup.sh

官方对编译提供了3种编译方案,分别是完整的浏览器,content shell(提供了浏览器基本功能的一个壳),webview。

编译完整浏览器:

1
ninja -C out/Default chrome_public_apk

可以在out/Default/apks中看到相应的apk.
编译contentshell:

1
ninja -C out/Release content_shell_apk

编译webview:

1
ninja -C out/Release android_webview_apk

这几步都可以得到对应的apk。

可以将手机连接到电脑,然后可以push过去安装,或者直接install,当然也可以用官方文档提供的方法直接使用depot_tool进行安装。

好了,到这里就完成了chromium的编译,可以修改代码进行提交了。