@mwumli
2015-08-05T05:35:21.000000Z
字数 3517
阅读 6648
Android
chrome
一个 Linux 系统(其他系统,如 Mac/Windows 不支持安卓版 chromum 构建)
首先,创建一个 chromium 目录:
~ $ mkdir chromium && cd chromium
~/chromium $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
添加 depots_tools 路径到环境变量 PATH
,当前 depots_tools 路径为 /path/to/depot_tools
,则
~/chromium $ echo 'export PATH=$PATH:/path/to/depot_tools' >> ~/.bashrc
两种方式,一是手动去源码地址下载,还有就是通过 fetch
工具下载
源码仓库地址为: https://chromium.googlesource.com/chromium/src
你可以通过 git 去下载
~/chromium $ git clone https://chromium.googlesource.com/chromium/src # 从git仓库把代码拉下来
~/chromium $ gclient sync --no-history --force # 同步
fetch
工具自动化下载 ~/chromium $ fetch --nohooks android
假如网络很快,这将花费 30 分钟
当命令结果出现 sync
字样后,可以终止命令,之后使用一下命令:
~/chromium $ gclient sync --no-history --force
如果网络断开了,重新执行 gclient 语句直到更新完毕
参考网址: https://chromium.googlesource.com/chromium/src.git
GYP 是为多种平台产生 chromium 的 meta-makefile 系统
chromium 项目目录下的 .gclient
文件是 GYP 的配置文件
在使用 fetch --nohooks android
命令下载源码的时候,会自动生成 .gclient
文件
如果使用 git 下载源码,则需要:
手动根据 git 地址生成
chromium $ gclient config https://chromium.googlesource.com/chromium/src
请确保 gclient config
后面跟的地址是刚才 git 仓库的地址
然后在 .gclient 中设置 custom_desps
的值:
"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,
},
最后一行添加 target_os= ['android']
要指定一下编译平台,需要创建一个 chromium.gyp_env
的文件:
~/chromium $ echo "{ 'GYP_DEFINES': 'OS=android', }" > chromium.gyp_env
假如你希望为 x86 目标构建:
~/chromium $ echo "{ 'GYP_DEFINES': 'OS=android target_arch=ia32', }" > chromium.gyp_env
假如你希望为 MIPS 目标构建:
~/chromium $ echo "{ 'GYP_DEFINES': 'OS=android target_arch=mipsel', }" > chromium.gyp_env
PS: 假如你正在使用环境变量 GYP_DEFINES
, 它将重写任何在 chromium.gyp_env 的设置。你或者取消这个环境变量或者在运行 gclient runhooks
之前设置新的值给此环境变量
一旦你的 chromium.gyp_env
准备好, 你需要紧跟下面命令从 gyp 文件去更新项目。
当你添加了新的文件, 更新了 gyp 文件 或者 同步了你的仓库,你也需要再次运行下面这条命令:
~/chromium $ gclient runhooks
...
运行下面命令去更新系统所需要的包:
~/chromium $ src/build/install-build-deps-android.sh
这将提示你去接受 Android SDK 包的服务条款
下面这条命令在 glicent runhooks
之前时必要的:
~/chromium $ src/third_party/android_tools/sdk/tools/android update sdk --no-ui --filter 57
如果 adb_install_apk.py
安装 apk 失败, 则 确保 aapt
在你的 PATH
路径下
因此,请确保安卓环境
下载的 chromium 源码中 third_party/
目录下有第三方工具,包含 android sdk
如果之前已经安装过 Android SDK, 那么请确保把 build-tools/{latest_version}/
、 platform-tools/
、tools
加入 PATH
环境变量
如果没有安装过, 直接添加 chromium 源码中 third_party/android_tools/sdk/build-tools/{latest_version}/
、third_party/android_tools/sdk/platform-tools/
、third_party/android_tools/sdk/tools/
到 PATH
环境变量
确保你的安卓设备已经插入,并且 手机处于开发者模式以及 USB 调式已经启用
你可以通过下面这条命另来确定设备已经连接:
~/chromium/src $ third_party/android_tools/sdk/platform-tools/adb wait-for-devices
如果立即结束,则设备已经成功接入
如果还在悬停,则设备还没有接入
~/chromium/src $ ninja -C out/Release chrome_public_apk
~/chromium/src $ build/android/adb_install_apk.py --apk ChromePublic.apk --release # 安装已经生成的应用到手机上
~/chromium/src $ ninja -C out/Release content_shell_apk
~/chromium/src $ build/android/adb_install_apk.py --apk ContentShell.apk --release
通过命令行指定参数,使 chrome 在安卓手机上运行
1. 准备运行环境
~/chromium/src $ . build/android/envsetup.sh
~/chromium/src$ build/android/adb_run_content_shell http://example.com
~/chromium/src$ build/android/adb_run_chrome_public http://example.com
~/chromium/src $ build/android/adb_gdb_content_shell
~/chromium/src $ build/android/adb_gdb_chrome_public