|Android Adopts Bazel For Build System
|Written by Kay Ewbank
|Thursday, 19 November 2020
The Android Platform is migrating from its current build systems (Soong and Make) to Bazel. While components of Bazel have been already checked into the Android Open Source Project (AOSP) source tree, this will be a phased migration over the next few Android releases.
Bazel, which originated at Google, is an open source tool that automates software building and testing. Google developed, and uses, the build tool Blaze internally and released an open-sourced part of Blaze as Bazel, named as an anagram of Blaze. The developers describe Bazel as similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language to describe the build properties of your project at a high semantical level. Bazel uses the concepts of libraries, binaries, scripts, and data sets to avoid the need for developers to write individual calls to tools such as compilers and linkers.
The developers say the migration will include
"many concrete and digestible milestones to make the transformation as seamless and easy as possible."
Migrating to Bazel will enable AOSP to provide more flexibility for configuring the AOSP build through better support for conditionals. It will also give the AOSP developers more insight into the AOSP build progress and dependencies. The AOSP builds will be reproducible and hermetic, and the Bazel configuration mechanism will reduce build complexity. The AOSP team says the new system will also allow for greater integration of build and test activities.
The migration will also benefit Bazel through significant ongoing investment in Bazel to support the Android Platform builds, and an expansion of the Bazel ecosystem and community to include, initially, tens of thousands of Android Platform developers and Android handset OEMs and chipset vendors.
Googleâ€™s Bazel rules for building Android apps will be open sourced, used in AOSP, and maintained by Google in partnership with the Android / Bazel community. The team says this will lead to better rules support for other languages used to build Android platform, including Rust, Java, Python and Go.
or email your comment to: firstname.lastname@example.org