Android移至Bazel構建系統

谷歌開發者 Android 開發的幕後推手 通過公告得知正在轉移該項目 開源安卓 (AOSP) 使用 Bazel 構建系統 而不是當前的 Soong、Ninja 和 Make 構建系統。

Bazel 支持已添加到 Android 存儲庫中過渡 默認情況下到新的構建系統並將跨越多個版本 平台使遷移盡可能簡單和透明。

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 文本文件中描述 以庫、可執行文件和測試包的形式,沒有詳細說明單個文件和調用編譯器的命令的級別。

在構建文件中, 所有依賴項都必須完全定義, 在此基礎上做出在更改後重建組件的決策(僅重建更改的文件)並並行化構建過程。

來源: https://developers.googleblog.com


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。