[关闭]
@mwumli 2015-08-04T21:35:21.000000Z 字数 3517 阅读 6444

chromium for android 源码编译

Android chrome


先决条件

一个 Linux 系统(其他系统,如 Mac/Windows 不支持安卓版 chromum 构建)

首先,创建一个 chromium 目录:

    ~ $ mkdir chromium && cd chromium

下载和配置 depot_tools 工具

  1. 下载 depot_tools_package

    ~/chromium $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    
  2. 添加 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

GYP 是为多种平台产生 chromium 的 meta-makefile 系统

chromium 项目目录下的 .gclient 文件是 GYP 的配置文件

指定编译平台

要指定一下编译平台,需要创建一个 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

安装 java JDK

...

安装构建依赖

运行下面命令去更新系统所需要的包:

~/chromium $ src/build/install-build-deps-android.sh

这将提示你去接受 Android SDK 包的服务条款

安装 Google Play Services

下面这条命令在 glicent runhooks 之前时必要的:

~/chromium $ src/third_party/android_tools/sdk/tools/android update sdk --no-ui --filter 57

构建和安装 APK

确保安卓环境

如果 adb_install_apk.py 安装 apk 失败, 则 确保 aapt 在你的 PATH 路径下
因此,请确保安卓环境

下载的 chromium 源码中 third_party/ 目录下有第三方工具,包含 android sdk

  1. 如果之前已经安装过 Android SDK, 那么请确保把 build-tools/{latest_version}/platform-tools/tools 加入 PATH 环境变量

  2. 如果没有安装过, 直接添加 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

如果立即结束,则设备已经成功接入
如果还在悬停,则设备还没有接入

Build the full browser

~/chromium/src $ ninja -C out/Release chrome_public_apk
    ~/chromium/src $ build/android/adb_install_apk.py --apk ChromePublic.apk --release   # 安装已经生成的应用到手机上

Build Content shell

~/chromium/src $ ninja -C out/Release content_shell_apk
    ~/chromium/src $ build/android/adb_install_apk.py --apk ContentShell.apk --release

运行 chrome for android

通过命令行指定参数,使 chrome 在安卓手机上运行
1. 准备运行环境

    ~/chromium/src $ . build/android/envsetup.sh
  1. 不同的APK, 不同的运行操作:
    • For Content shell: ~/chromium/src$ build/android/adb_run_content_shell http://example.com
    • For Chrome public: ~/chromium/src$ build/android/adb_run_chrome_public http://example.com

调试 chrome for android

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注