Android移至Bazel构建系统

谷歌开发者 谁开发了Android, 通过公告得知该项目正在进行中 Android开源 (AOSP)以使用Bazel构建系统 而不是当前的Soong,Ninja和Make编译系统。

Bazel支持已添加到Android存储库,但 过渡 默认情况下到新的构建系统e将跨多个版本 平台,以使迁移尽可能简单和透明。

在2020年和2021年,预计不会有重大变化 在平台建设工作流程中,将维持对现有建设系统的支持。

为了允许逐步迁移, 一些变化 简化Android版本 已包含在Bazel中, 例如解析和运行Ninja格式的构建文件的功能。

有人认为,对于Android平台,切换到Bazel将增加配置构建过程的灵活性, 它将改善自省/监视构建进度和依赖关系的连接,实现可重复的构建,简化复杂的构建脚本,改善与各种构建和测试处理程序的集成,并减少构建时间。

迁移到Bazel将使AOSP能够:

提供更大的灵活性来配置AOSP编译(更好地支持条件)
允许对AOSP构建进度和依赖项进行更多的内省
启用正确且可播放(防水)的AOSP构建
介绍一种配置机制,该机制将降低AOSP构建的复杂性
实现施工和测试活动的进一步整合
结合所有这些因素,可以缩短构建时间并改善体验
迁移到Bazel社区的好处是:

Bazel正在进行大量投资以支持Android平台构建
Bazel生态系统和社区扩展最初包括成千上万的Android平台开发人员以及Android手机原始设备制造商(OEM)和芯片供应商。
Google创建Android应用程序的Bazel规则将是开源的,用于AOSP中,并由Google与Android / Bazel社区合作维护。
更好的Bazel兼容性,可用于创建Android应用
更好的规则支持,用于构建Android平台的其他语言(Rust,Java,Python,Go等)
对Bazel长期支持(LTS)版本的强大支持,使扩展的Bazel社区受益
改进的文档(教程和参考)

的生态系统 Android上的Bazel将扩大参与人数 在开发中 将简化应用程序以构建Android应用程序 (包括Google打算开放代码为其Android应用程序构建脚本),它将改善对Android中使用的各种编程语言(Rust,Java,Python,Go)的支持,它将提供创建长版本持续时间的资源,并将导致更好和更广泛的文档。

Bazel由Google工程师开发 并用于构建公司的大多数内部项目。 该项目 因其高建造速度而引人注目, 为此使用了缓存技术和构造过程的并行化。

工具也一样 确保可重复组装换句话说,在开发人员的机器上构建项目的结果将与在第三方系统(例如连续集成服务器)上构建的结果完全相同。 通过用于连接扩展的机制可以实现其他功能。

与Make和Ninja不同,Bazel采用了更高层次的方法 创建编译规则,而不是为正在编译的文件定义命令绑定,而是使用更多抽象的预构建块并定义目标/构建平台。

项目组成 在BUILD文本文件中描述 以库,可执行文件和测试包的形式存在,而没有在单个文件和调用编译器的命令级别上进行详细说明。

在BUILD文件中, 必须完全定义所有依赖项, 根据做出更改后决定重建组件的决定(仅重建修改的文件)并并行化构建过程。

数据来源: https://developers.googleblog.com


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。