当前位置: 首页 > news >正文

Chromium 134 编译指南 - Android 篇(八):开始编译

1. 引言

欢迎来到《Chromium 134 编译指南》系列的第八篇文章!经过前面几篇文章的准备工作,我们已经完成了环境配置、源码获取和依赖项安装等关键步骤。现在,我们终于到达了这个旅程中最激动人心的阶段:正式开始编译Chromium for Android!

想象一下,前面的所有准备工作就像是为一场重要比赛做的训练和热身,而现在,我们即将踏上赛场,展现我们的成果。编译过程会将数千万行源代码转化为一个可以在Android设备上运行的应用程序,这是一个令人惊叹的技术壮举!

本篇文章将详细介绍编译的每一个步骤,从创建输出目录到配置编译参数,再到执行最终的构建命令。我们会用简单明了的语言解释每个命令的作用,帮助您顺利完成整个编译过程。即使您是第一次尝试编译如此大型的项目,按照本指南的步骤操作,也能取得成功。

让我们开始这个激动人心的编译之旅吧!

2. 开始编译

编译Chromium是一个多步骤的过程,需要正确配置并执行几个关键命令。我们将逐步详细介绍每个环节,确保您能顺利完成整个编译过程。

2.1 创建构建输出文件夹

首先,我们需要创建一个专门的目录来存放编译输出的文件。这个目录将包含所有编译产物,包括最终的APK文件。

确保您在Chromium的src目录下,然后执行以下命令:

# 确保在src目录中
cd ~/chromium/src# 创建输出目录
mkdir -p out/android

这个命令的含义:

  • mkdir:创建目录的命令
  • -p:如果父目录不存在,则创建它们(在这里确保out目录存在)
  • out/android:我们要创建的目录路径,所有编译文件将存放在这里
为什么使用out目录? Chromium的构建系统约定使用 out目录来存放所有编译输出文件。这个目录已经被配置为在代码版本控制中忽略,这样可以避免将编译产物意外提交到代码仓库中。

2.2 配置构建参数

接下来,我们需要创建一个配置文件,告诉编译系统我们想要构建什么类型的Chromium。这个配置文件名为args.gn,位于我们刚才创建的输出目录中。

# 创建args.gn配置文件
touch out/android/args.gn

现在,我们需要编辑这个文件,添加必要的配置参数。您可以使用任何文本编辑器,如nano、vim或gedit:

# 使用nano编辑器打开文件
nano out/android/args.gn

在文件中添加以下基本配置:

# 设置目标操作系统为Android
target_os = "android"# 设置目标CPU架构为arm64
target_cpu = "arm64"

保存并关闭文件(在nano中按Ctrl+O保存,然后按Ctrl+X退出)。

小贴士:这只是一个基本配置,您可以根据需要添加更多参数。完整的参数列表可以在Chromium源码的 build/args/目录下找到参考。

2.3 了解target_cpu参数选择

target_cpu参数指定了编译目标设备的处理器架构。选择正确的架构对于确保应用可以在您的设备上运行至关重要。

以下是常见的Android设备架构及对应的target_cpu参数值:

设备架构

target_cpu参数

典型设备类型

ARM 64位

arm64

大多数现代手机和平板(2015年后)

ARM 32位

arm

老款手机和平板

Intel 64位

x64

部分平板和模拟器

Intel 32位

x86

老款Intel平板和模拟器

如果您不确定您的设备使用哪种架构,可以通过以下命令查询(需要先连接设备并安装ADB工具):

# 查询设备CPU架构
adb shell getprop ro.product.cpu.abi

您会看到类似以下的输出之一:

  • arm64-v8a:对应target_cpu = "arm64"
  • armeabi-v7a:对应target_cpu = "arm"
  • x86_64:对应target_cpu = "x64"
  • x86:对应target_cpu = "x86"
建议:如果您不确定或者想要编译一个适用范围广的版本,建议选择 arm64,因为大多数现代Android设备都使用这种架构。

2.4 生成构建配置

配置参数设置好后,我们需要使用gn工具生成实际的构建文件。gn是Chromium使用的构建系统前端,它会根据我们的配置生成Ninja构建文件。

# 生成构建配置
gn gen out/android

如果一切正常,您会看到类似以下的输出:

Done. Made 12345 targets from 1234 files in 56.7s

这表示gn已成功生成了构建文件,包括了多少个构建目标以及花费了多少时间。

遇到错误? 如果 gn gen命令报错,通常是配置参数有问题。仔细阅读错误信息,它通常会指出具体的问题所在。最常见的错误是参数语法错误或值不合法。

2.5 开始构建Chromium

现在我们已经准备好开始实际的构建过程。Chromium使用autoninja工具(实际上是ninja的一个包装器)来执行构建。

# 构建Chromium for Android
autoninja -C out/android chrome_public_apk

这个命令的含义:

  • autoninja:Chromium推荐的构建工具,它会自动设置合适的并行度
  • -C out/android:指定构建目录
  • chrome_public_apk:构建目标,表示要构建公开版本的Chrome APK

构建过程将会开始,您会看到类似以下的输出:

ninja: Entering directory `out/android'
[1/12345] ACTION //some/path:some_action
[2/12345] CXX //some/path:some_file.cc
...
耐心等待:构建过程可能需要很长时间,从几十分钟到几个小时不等,取决于您的计算机性能。这是正常的,因为Chromium是一个非常庞大的项目。

2.7 构建完成与验证

构建成功完成后,您会看到类似以下的输出:

[56789/56789] STAMP obj/chrome_public_apk.stamp

这表示所有构建步骤已经完成。现在,您可以验证APK文件是否已经成功生成:

# 查看生成的APK文件
ls -l out/android/apks/

您应该能看到一个名为ChromePublic.apk或类似名称的文件。这就是我们成功构建的Chromium浏览器APK!

小贴士:构建完成后,APK通常位于 out/android/apks/目录下。如果使用不同的构建目标,文件名和位置可能会有所不同。

3. 总结

恭喜您!通过本篇文章的指导,您已经成功完成了Chromium 134 for Android的编译工作。这是一个重大成就,因为Chromium是一个非常庞大和复杂的项目,能够从源代码成功编译出可用的APK是值得庆祝的里程碑。

让我们回顾一下我们完成的关键步骤:

  1. 创建了专门的输出目录,用于存放编译产物
  2. 配置了构建参数,指定目标平台和CPU架构
  3. 使用gn工具生成了构建配置
  4. 通过autoninja执行了实际的构建过程
  5. 成功生成了可安装的APK文件

这些步骤构成了编译Chromium的核心流程。虽然编译过程可能耗时较长,但结果是值得的——您现在拥有了一个完全符合您配置的Chromium浏览器。

在下一篇文章《Chromium 134 编译指南 - Android 篇:安装与运行(九)》中,我们将详细介绍如何将编译好的APK安装到Android设备上,并运行测试,验证我们的构建成果。我们还将探讨如何进行基本的调试和性能分析,帮助您更好地理解Chromium的运行机制。

感谢您的耐心阅读和实践,我们的Chromium编译之旅即将迎来最后的收获时刻!

相关文章:

  • 【RabbitMQ】 RabbitMQ快速上手
  • java面向对象编程【高级篇】之特殊类
  • 大数据技术:从趋势到变革的全景探索
  • #Paper Reading# DeepSeek Math
  • 摩尔缠论课程合集完整版核心课程前置课程圈子问答星球圈子摩尔缠论三个阶段
  • Mysql的范式都有哪些?
  • C++负载均衡远程调用学习之异步消息任务功能与连接属性
  • AI优化SEO关键词实践路径
  • 扩散模型:了解ai生图的原理
  • (38)VTK C++开发示例 ---纹理裁剪
  • 如何提升个人的理解能力?
  • 【中间件】brpc_基础_execution_queue
  • HuggingFace常用加载模型方法
  • RabbitMQ 中的六大工作模式介绍与使用
  • Spring IoC 注解式开发全解析
  • linux netlink实现用户态和内核态数据交互
  • 什么是多租户系统
  • 实战探讨:为什么 Redis Zset 选择跳表?
  • UDP / TCP 协议
  • 机器学习入门-线性回归模型/损失函数/梯度下降
  • 外交部发言人就当前印巴局势答记者问
  • 多个“网约摩托车”平台上线,工人日报:安全与监管不能掉队
  • 商务部新闻发言人就中美经贸高层会谈答记者问
  • 五一车市消费观察:政策赋能、企业发力,汽车消费火热
  • 视频丨054B型护卫舰钦州舰南海实战化训练
  • 五年来首次!香港金管局斥资465.39亿港元购买美元