Android flytter til Bazel build-systemet

Google-udviklere der står bag udviklingen af ​​Android, gav at vide gennem en meddelelse, at det flytter projektet open source android (AOSP) for at bruge Bazel-byggesystemet i stedet for det nuværende Soong, Ninja og Make byggesystem.

Bazel-understøttelse er allerede blevet tilføjet til Android-lageretMen overgangen til det nye byggesystem som standard sog vil strække sig over flere versioner platform for at gøre migreringen så let og gennemsigtig som muligt.

I 2020 og 2021 forventes der ingen væsentlige ændringer i platformsopbygningsarbejdsgange, og understøttelse af eksisterende byggesystemer vil blive opretholdt.

For at muliggøre gradvis migration, nogle ændringer for at forenkle Android-builds er allerede inkluderet i Bazel, såsom evnen til at parse og køre Ninja-formaterede build-filer.

Det hævdes, at for Android-platformen, vil skift til Bazel øge fleksibiliteten til at konfigurere byggeprocessen, det vil forbedre introspektion/overvågning af build-fremskridt og afhængighedsforbindelse, implementere gentagelige builds, forenkle komplekse build-scripts, forbedre integrationen med forskellige build- og testhandlere og reducere byggetiden.

Migrering til Bazel giver AOSP mulighed for at:

Giv mere fleksibilitet til at konfigurere AOSP-kompilering (bedre understøttelse af betingelser)
Tillad mere indsigt i AOSP build fremskridt og afhængigheder
Aktiver korrekte og reproducerbare (lufttætte) AOSP-bygninger
Introducer en konfigurationsmekanisme, der vil reducere kompleksiteten af ​​AOSP-builds
Giver mulighed for større integration af bygge- og testaktiviteter
Kombiner alle disse for at opnå betydelige forbedringer i byggetid og erfaring
Fordelene ved denne migration til Bazel-samfundet er:

Betydelig løbende investering i Bazel for at understøtte Android-platformbygninger
Udvidelse af Bazel-økosystemet og fællesskabet til i første omgang at omfatte titusindvis af Android-platformudviklere og Android-telefonproducenter (Original Equipment Manufacturers) og chipleverandører.
Googles Bazel-regler for opbygning af Android-apps vil være open source, bruges i AOSP og vedligeholdes af Google i samarbejde med Android/Bazel-fællesskabet.
Bedre Bazel-understøttelse til at bygge Android-apps
Bedre regelunderstøttelse for andre sprog, der bruges til at bygge Android-platformen (Rust, Java, Python, Go osv.)
Stærk støtte til Bazel Long Term Support (LTS) udgivelser, hvilket gavner det udvidede Bazel-fællesskab
Forbedret dokumentation (tutorials og reference)

Økosystemet i Bazel på Android vil udvide antallet af involverede deltagere i udviklingen, vil forenkle applikationen til at bygge Android-applikationer (herunder Google har til hensigt at åbne kildekode for at bygge scripts til sine Android-apps), forbedre understøttelsen af ​​forskellige programmeringssprog, der bruges i Android (Rust, Java, Python, Go), levere ressourcer til at skabe langsigtet build-varighed og vil føre til bedre og mere omfattende dokumentation.

Bazel er udviklet af Googles ingeniører og bruges til at bygge de fleste af virksomhedens interne projekter. Projektet skiller sig ud for sin høje byggehastighed, hvortil der anvendes caching-teknikker og parallelisering af byggeprocessen.

værktøjerne også sikre gentagelig samling, det vil sige, at resultatet af at bygge projektet på udviklerens maskine vil være nøjagtigt det samme som at bygge på tredjepartssystemer, såsom kontinuerlige integrationsservere. Yderligere funktionalitet er implementeret gennem mekanismen til tilslutning af udvidelser.

I modsætning til Make og Ninja har Bazel en tilgang på et højere niveau. at skabe byggeregler, der i stedet for at definere kommandobindinger for de filer, der bygges, bruger mere abstrakte præ-byggede blokke og definerer build/target rammer.

projektkomponenter er beskrevet i BUILD-tekstfilen i form af en pakke med biblioteker, eksekverbare filer og test, uden detaljering på niveau med individuelle filer og kommandoer til at kalde compileren.

I BUILD-filerne, alle afhængigheder skal være fuldt definerede, på baggrund af hvilke beslutninger træffes om at genopbygge komponenter efter ændringer (kun ændrede filer genopbygges) og parallelisere byggeprocessen.

kilde: https://developers.googleblog.com


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.