一、申请云服务器

在Windows或者Mac下编译Android客户端是不支持的,官方推荐的是使用Ubuntu来进行编译,因此我们的编译采用的是Ubuntu服务器,事实证明镜像必须是ubuntu,如果为centos则不支持,ubuntu支持一下版本:

我这边申请的是腾讯云服务器,如下:

至少为8核的,100G硬盘,我这边申请的高配版16核;32G;300G。

二、配置代理源

申请的腾讯云服务器,默认的源为mirrors.tencentyun.com对应的IP为内网的,访问不到,设置no_proxy可以取消,或者重新设置其他代理源,如下清华大学代理源,阿里云等,按照文档一步步的配置:

https://blog.huangz.me/2020/change-ubuntu-software-source.html

然后执行sudo apt-get。

可能会需要某些资源无法下载,参考:

https://blog.csdn.net/ak739105231/article/details/105513215/

切换到目录,删除不能下载的文件重新执行下。

接着可能出现:

dpkg: error processing package python3-scour (--configure)

参考:

https://www.cnblogs.com/live41/p/14237280.html

三、安装depot_tools

Chromium使用depot_tools的脚本包来管理checkout和审查代码,因此拉代码前需要安装好此工具。首先拉取代码:

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

四、添加路径到PATH环境变量中

1、打开~/.zshrc

vim  ~/.zshrc

2、输入

export PATH="$PATH:/path/to/depot_tools"

3、保存并使其生效

source ~/.zshrc

五、拉取Chromium源码

新建目录然后拉取代码,近30G的源码,这里过程非常长,看大家网速了。如果想快点拉完,可以在fetch的时候添加--no-history指令不拉取历史记录,这样会快很多。我这没加,申请的云服务器,在公司耗时40分钟下载完毕。

mkdir ~/chromium && cd ~/chromium
fetch --nohooks android

六、下载Android依赖

拉完源码后,执行以下指令安装编译Android APK所需的依赖及下载其他所需的二进制文件。

build/install-build-deps-android.sh
gclient runhooks

七、配置GN编译脚本

1、Chromium使用Ninja作为主要的构建工具,并通过GN来生成.ninja配置文件。

(1)通过gn args out/Default指令,会启动系统的默认编辑器进入配置文件编辑模式,并在out/Default目录下初始化此版本的编译,生成args.gn文件,这个时候输入以下的配置参数并保存,GN会帮我们初始化好所有的.ninja配置文件。

target_os = "android"
target_cpu = "arm"

(2)令快速完成配置文件的初始化

gn gen --args='target_os="android" target_cpu="arm" is_debug=false' out/Default

abi target_cpu
arm64-v8a arm64
armeabi-v7a     arm
x86 x86
x86_64 x64

is_debug: 设置true时编译debug版本,false时编译release版本。默认为true。这块设置为false。

这块执行会报如下错误:

一定要配置第二步代理源,默认的mirrors.tencentyun.com源访问不到。配置后,执行:

sudo apt-get install -y pkg-config

在重新输入上面(2)中的命令就可以了。

2、查看构建环境的默认参数

通过以下指令我们可以把参数输出到文件中进行查看:

gn args --list out/Default > env.txt

3、对历史构建进行清理

通过clean指令可以对编译环境进行清理,会删除所有编译的中间产物,仅保留args.gn、build.ninja等基础的配置文件,以便我们进行一次完整的重编译。

gn clean out/Default

4、查看给定target或config的详细信息

通过desc指令可以查看某个target的所有详细信息:

gn desc out/Default //net:net > desc.txt

八、源码结构

各个目录文件的含义:

https://daimajiaoliu.com/daima/4799de5c410041c

九、编译Chromium APK

通过以下命令我们可以编译Chromium的APK:

autoninja -C out/Default chrome_public_apk

这一过程非常慢,我执行了1小时50分钟才结束。看到下面的log,并且没有任何报错,就证明已经编译完成了:

APK产物ChromePublic.apk在out/Default/apks目录下面:

安装在手机里面如下图:

这样编译完毕,最后附上版本信息:

VersionName: 96.0.4657.0
Chrome: 465700000
ChromeModern: 465700010
Monochrome: 465700020
TrichromeChrome: 465700030
AndroidWebviewStable: 465700000
AndroidWebviewBeta: 465700010
AndroidWebviewDev: 465700020

Apk下载地址:https://download.csdn.net/download/yoonerloop/33159534

参考文章:

  • https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/android_build_instructions.md
  • https://codezjx.com/posts/build-chromium-for-android/

Android编译chromium相关推荐

  1. Chromium Android编译指南

    先决条件 需要有一台装有Linux操作系统环境的主机来做编译,这个环境的搭建配置方法可以参考Linux-specific build instructions.目前还不支持在其它(Mac/Window ...

  2. chromium android分析,Chromium Android工程迁移编译过程

    本文从Chromium编译的中间产物入手深入分析.学习Chromium Android版本的工程化定制流程.初始工作依赖于Chromium的ninja.GYP构建系统,在构建完成后基于编译中间产物,迁 ...

  3. 编译Chromium for Android

    编译Mingw-w64失利,打算编译一下Chromium玩一下 首先需要在Linux平台上编译 前置工具 git python2.7 **良好的网络条件** 一.安装depot_tools git c ...

  4. Chromium on Android: 认识Chromium WebView

    Android KitKat一项重要的更新就是WebView采用Chromium/Blink渲染引擎,本文简要的叙述了新版WebView的主要特性.需要进一步改进的地方以及WebView的代码结构等. ...

  5. Xamarin.Android编译CPU类型选择方式

    Xamarin.Android编译CPU类型选择方式 在Xamarin.Android编译的时候,默认提供了5种CPU类型供大家选择.它们分别为armeabi.armeabi-v7a.arm64-v8 ...

  6. Xamarin.Android编译提示找不到mscorlib.dll.so文件

    Xamarin.Android编译提示找不到mscorlib.dll.so文件 错误信息:AOT module 'mscorlib.dll.so' not found: Cannot load lib ...

  7. 【错误记录】Android 编译时技术报错 ( 注解处理器 process 方法多次调用问题 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 注解处理器 AbstractProcessor 中的 process 方法可能会调用多次 , 在生成代码时 , 一定要注意 , 检测到 注解节点 后 ...

  8. 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 在使用 Android 编译时技术 , 涉及 编译时注解 , 注解处理器 ; 开发注解处理器后 , 编译报如下警告 ; 该警告不会影响 ...

  9. android 模块不编译错误,Android 编译出错版本匹配问题解决办法

    Android 编译出错版本匹配问题解决办法 解决问题的关键在于版本匹配, compileSdkVersion compileSdkVersion targetSdkVersion 这三个参数的整数值 ...

最新文章

  1. 树莓派上 安装并 运行opencv
  2. git编辑器选哪个_[Git]Git创建和修改代码库
  3. s3c6410 jpeg编码 linux,S3C6410 裸机硬件JPEG解码
  4. c#中connect函数_Flink算子使用方法及实例演示:union和connect
  5. Python游戏编程入门,让你秒变电脑大神!
  6. vue-cli3.0(创建项目)如何引入element-ui(指令篇)
  7. 这才是牛逼程序员的标配!
  8. 【论文阅读】PrivPy: General and Scalable Privacy-Preserving Data Mining
  9. java基础----对象的创建过程(初始化、析构、清理)
  10. shell获取当前目录名的几种方法
  11. 2018DeeCamp笔试题目第二套B卷
  12. 转行学IT,你真的准备好了吗?
  13. 如何使用FonePaw Video Converter Ultimate将 2D 电影转换为 3D
  14. eNSP不同网段主机互联-DHCP
  15. 【企业管理】北邮国际学院大二上期末复习
  16. 获取商品ID下所有的sku精准库存api
  17. 图文详解!10大高性能开发核心技术+
  18. Git生成ssh ksy后进行项目管理
  19. “万金油”的String,为什么不好用了?
  20. maven的setting.xml文件配置

热门文章

  1. Python中矩阵运算中的norm范数、axis、ord参数
  2. 元宇宙务“虚”,网易智企务“实”
  3. (蓝桥杯第五届B组)史丰收速算 打印图形(代码填空)
  4. 互联网电影院黑科技,在家看大片
  5. 别具一格的Flash时钟
  6. HadoopWindows下客户端环境配置
  7. Ubuntu软件仓库源类型:官方源、第三方源、本地源
  8. Mac Spotlight无法直接打开文件
  9. 你听过最美的网名是什么?
  10. 【STM32】STM32之DRV8834电机驱动(IO方式)