1、下载depot_tools:
首先安装 git-core: sudo apt-get install git-core
执行命令: git
clonehttps://chromium.googlesource.com/chromium/tools/depot_tools.git
2、更新depot_tools:
直接在当前shell环境输入: export PATH="$
PATH:depot_tools_dir/depot_tools";
或加如系统环境变量: vim ~/.bashrc 文件,在最后加入export PATH="$
PATH:depot_tools_dir/depot_tools",
保存执行source ~/.bashrc
3、配置代码分支
进入自己本地要保存源码的目录,执行 gclient
confighttp://src.chromium.org/svn/releases/36.0.1985.135
可根据自己需要下载相应版本。如果不需要下载一些文件如LayoutTest修改目录下的.gclient :
1 solutions = [
2 { "name" : "36.0.1985.135",
3 "url" : "http://src.chromium.org/svn/releases/36.0.1985.135",
4 "deps_file" : "DEPS",
5 "managed" : True,
6 "custom_deps" : {
7 "src/content/test/data/layout_tests/LayoutTests": None,
8 "src/third_party/WebKit/LayoutTests": None,
9 "src/chrome/tools/test/reference_build/chrome_win": None,
10 "src/chrome_frame/tools/test/reference_build/chrome_win":None,
11 "src/chrome/tools/test/reference_build/chrome_mac": None,
12 "src/third_party/hunspell_dictionaries": None,
13 },
14 "safesync_url": "",
15 },
16 ]
17 cache_dir = None
18 target_os = ['android']
4、代码同步:
执行glient sync --force 同步一般时间比较长,
特别说明:
请使用vpn 我使用的VPN gate 一个开源的vpn 客户端(window平台) + ubuntu14.04虚拟机。
5、安装java sdk
sudo apt-get install openjdk-7-jdk
sudo upate-alternatives --config javac
sudo upate-alternatives --configjavaws
sudo upate-alternatives --configjavap
sudo upate-alternatives --configjar
sudo upate-alternatives --configjarsigner
sudo upate-alternatives --configjava
6、编译chromium
执行:
src/build/install-build-deps-android.sh (android)
ninja -C out/Release content_shell_apk
注意:
在ubuntu14.04 上编译(36.0.1985.135)的时候需要更改一下install-build-deps.sh 脚本中的
ubuntu_versions="12\.04|12\.10|13\.04|13\.10|14\.04"
添加14\.04这个才能执行
但是我们编译是为了调试学习chromium代码和框架,基于这点我们就必须弄个Debug调试版本在Ubuntu上运行调试。
编译步骤:
1)build/install-build-deps.sh
2)build/gyp_chromium-Dflag1=value1-Dflag2=value2
3)exportGYP_DEFINES="flag1=value1 flag2=value2"
4)ninja -v -C out/Debug chrome
编译成功后会在src/out/Debug 下生成300个左右文件其中有chrome可执行程序和库。
7、调试:
调试多进程最简单的方法是用 attach pid
shell下:gdb src/out/Debug/chrome 启动到gdb输入后用 r -no-sandbox (沙箱模式无法运行,有待研究)
ps -ax 查看进程id
或者用pstree -p|grep chrome
再新打开的shell输入sudo gdb (有权限限制必须用root权限)
我们调试RenderImage.cpp layout 函数在绘制进程中调用堆栈
Debug调试只能起到辅助作用,学习还是需要我们理解框架、大量阅读源码。
第一时间获得文章更新提醒,每天发布一篇技术大牛原创文章,更多技术信息分享,欢迎关注微信公众平台:程序员互动联盟(coder_online),搜索微信号coder_online即可关注,在线帮你解决技术难点,给大牛直接出难题!!!