最近试着玩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的编译,可以修改代码进行提交了。