Android gaat over naar het Bazel-buildsysteem

Google-ontwikkelaars die achter de ontwikkeling van Android staan, gaf door middel van een aankondiging weten dat het project in beweging is Android open source (AOSP) om het Bazel-buildsysteem te gebruiken in plaats van het huidige Soong, Ninja en Make compilatiesysteem.

Bazel-ondersteuning is al toegevoegd aan de Android-repositoryMaar de overgang naar het nieuwbouwsysteem standaard se zal over meerdere versies worden verspreid platform om migratie zo eenvoudig en transparant mogelijk te maken.

In 2020 en 2021 worden geen significante veranderingen verwacht in workflows voor platformconstructie en de ondersteuning voor bestaande constructiesystemen zal worden gehandhaafd.

Om geleidelijke migratie mogelijk te maken, enkele veranderingen om Android-builds te vereenvoudigen zijn al opgenomen in Bazel, zoals de mogelijkheid om build-bestanden in Ninja-formaat te parseren en uit te voeren.

Er wordt beweerd dat voor het Android-platformoverschakelen naar Bazel zal de flexibiliteit van het configureren van het bouwproces vergroten, Het verbetert de introspectie / monitoring van de voortgang van de build en de verbinding van afhankelijkheden, implementeert herhaalbare builds, vereenvoudigt complexe build-scripts, verbetert de integratie met verschillende build- en testhandlers en verkort de build-tijd.

Door migratie naar Bazel kan AOSP:

Bied meer flexibiliteit om AOSP-compilatie te configureren (betere ondersteuning voor voorwaarden)
Sta meer introspectie toe op de voortgang en afhankelijkheden van AOSP-build
Schakel correcte en speelbare (waterdichte) AOSP-builds in
Introduceer een configuratiemechanisme dat de complexiteit van AOSP-builds zal verminderen
Verdere integratie van bouw- en testactiviteiten mogelijk maken
Combineer deze allemaal om aanzienlijke bouwtijd en ervaringsverbeteringen te stimuleren
De voordelen van deze migratie naar de Bazel-gemeenschap zijn:

Er wordt aanzienlijk geïnvesteerd in Bazel om het bouwen van Android-platforms te ondersteunen
Bazel's ecosysteem en gemeenschapsuitbreiding met aanvankelijk tienduizenden Android-platformontwikkelaars en originele fabrikanten van Android-telefoons (OEM's) en chipverkopers.
De Bazel-regels van Google voor het maken van Android-apps zijn open source, worden gebruikt in AOSP en worden onderhouden door Google in samenwerking met de Android / Bazel-community.
Betere Bazel-compatibiliteit voor het maken van Android-apps
Betere regelondersteuning voor andere talen die worden gebruikt om het Android-platform te bouwen (Rust, Java, Python, Go, enz.)
Sterke ondersteuning voor Bazel Long Term Support (LTS) -versies, wat ten goede komt aan de uitgebreide Bazel-gemeenschap
Verbeterde documentatie (tutorials en referentie)

Het ecosysteem van Bazel op Android zal het aantal betrokken deelnemers uitbreiden in de ontwikkeling, vereenvoudigt de app om Android-apps te bouwen (inclusief Google is van plan code te openen om scripts te bouwen voor zijn Android-applicaties), het zal de ondersteuning verbeteren voor verschillende programmeertalen die worden gebruikt in Android (Rust, Java, Python, Go), het zal bronnen bieden voor het maken van lange versies en zal leiden tot betere en uitgebreidere documentatie.

Bazel is ontwikkeld door Google-ingenieurs en wordt gebruikt om de meeste interne projecten van het bedrijf op te bouwen. Het project onderscheidt zich door zijn hoge bouwsnelheid, waarvoor caching-technieken en parallellisatie van het bouwproces worden gebruikt.

De tools ook verzeker herhaalbare montage, dat wil zeggen, het resultaat van het bouwen van het project op de machine van de ontwikkelaar zal precies hetzelfde zijn als het bouwen op systemen van derden, zoals continue integratieservers. Extra functionaliteit wordt geïmplementeerd via het mechanisme voor het aansluiten van extensies.

In tegenstelling tot Make en Ninja kiest Bazel voor een hoger niveau om compilatieregels te maken die in plaats van opdrachtbindingen te definiëren voor de bestanden die worden gecompileerd, meer abstracte vooraf gebouwde blokken gebruiken en doel- / bouwplatforms definiëren.

De componenten van het project worden beschreven in het BUILD-tekstbestand in de vorm van een pakket van bibliotheken, uitvoerbare bestanden en tests, zonder detaillering op het individuele bestandsniveau en opdrachten om de compiler aan te roepen.

In BUILD-bestanden, alle afhankelijkheden moeten volledig worden gedefinieerd, op basis waarvan beslissingen worden genomen om componenten opnieuw op te bouwen na het aanbrengen van wijzigingen (alleen gewijzigde bestanden worden opnieuw opgebouwd) en parallellisatie van het bouwproces.

bron: https://developers.googleblog.com


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.