Android wechselt zum Bazel-Build-System

Google-Entwickler Wer steckt hinter der Entwicklung von Android, gab durch eine Ankündigung zu wissen, dass sich das Projekt bewegt Android Open Source (AOSP), um das Bazel-Build-System zu verwenden anstelle des aktuellen Kompilierungssystems Soong, Ninja und Make.

Bazel-Unterstützung wurde bereits zum Android-Repository hinzugefügt, Aber der Übergang standardmäßig auf das neue Build-System se wird über mehrere Versionen verteilt Plattform, um die Migration so einfach und transparent wie möglich zu gestalten.

In den Jahren 2020 und 2021 werden keine wesentlichen Änderungen erwartet In den Workflows für den Plattformbau wird die Unterstützung für vorhandene Konstruktionssysteme beibehalten.

Um eine schrittweise Migration zu ermöglichen, einige Veränderungen um Android Builds zu vereinfachen sind bereits in Bazel enthalten, B. die Möglichkeit, Build-Dateien im Ninja-Format zu analysieren und auszuführen.

Es wird argumentiert, dass für die Android-PlattformWenn Sie zu Bazel wechseln, wird die Flexibilität bei der Konfiguration des Erstellungsprozesses erhöht. Es wird die Introspektion / Überwachung des Build-Fortschritts und die Verbindung von Abhängigkeiten verbessern, wiederholbare Builds implementieren, komplexe Build-Skripte vereinfachen, die Integration mit verschiedenen Build- und Test-Handlern verbessern und die Build-Zeit verkürzen.

Durch die Migration zu Bazel kann AOSP:

Bieten Sie mehr Flexibilität beim Konfigurieren der AOSP-Kompilierung (bessere Unterstützung für Bedingungen)
Ermöglichen Sie mehr Selbstbeobachtung des Fortschritts und der Abhängigkeiten von AOSP-Builds
Aktivieren Sie korrekte und spielbare (wasserdichte) AOSP-Builds
Führen Sie einen Konfigurationsmechanismus ein, der die Komplexität von AOSP-Builds verringert
Ermöglichen Sie die weitere Integration von Bau- und Testaktivitäten
Kombinieren Sie all dies, um eine signifikante Bauzeit zu erzielen und Verbesserungen zu erzielen
Die Vorteile dieser Migration in die Bazel-Community sind:

In Bazel laufen erhebliche Investitionen zur Unterstützung der Erstellung von Android-Plattformen
Die Erweiterung des Ökosystems und der Community von Bazel umfasst zunächst Zehntausende von Entwicklern von Android-Plattformen sowie Hersteller von Originalgeräten für Android-Telefone (OEMs) und Chiphersteller.
Die Bazel-Regeln von Google zum Erstellen von Android-Apps sind Open Source, werden in AOSP verwendet und von Google in Zusammenarbeit mit der Android / Bazel-Community verwaltet.
Bessere Bazel-Kompatibilität zum Erstellen von Android-Apps
Bessere Regelunterstützung für andere Sprachen, die zum Erstellen der Android-Plattform verwendet werden (Rust, Java, Python, Go usw.)
Starke Unterstützung für LTS-Versionen (Bazel Long Term Support), von denen die erweiterte Bazel-Community profitiert
Verbesserte Dokumentation (Tutorials und Referenz)

Das Ökosystem von Bazel auf Android wird die Anzahl der beteiligten Teilnehmer erhöhen in der Entwicklung, vereinfacht die App zum Erstellen von Android-Apps (einschließlich Google beabsichtigt, Code zum Erstellen von Skripten für seine Android-Anwendungen zu öffnen), wird die Unterstützung für verschiedene in Android verwendete Programmiersprachen (Rust, Java, Python, Go) verbessern, Ressourcen für die Erstellung langer Versionen bereitstellen und wird führen zu einer besseren und umfassenderen Dokumentation.

Bazel wird von Google-Ingenieuren entwickelt und wird verwendet, um die meisten internen Projekte des Unternehmens zu erstellen. Das Projekt zeichnet sich durch hohe Baugeschwindigkeit aus, für die Caching-Techniken und Parallelisierung des Konstruktionsprozesses verwendet werden.

Die Werkzeuge auch Wiederholbare Montage sicherstellenMit anderen Worten, das Ergebnis der Erstellung des Projekts auf dem Computer des Entwicklers entspricht genau dem Ergebnis der Erstellung auf Systemen von Drittanbietern, z. B. Servern für die kontinuierliche Integration. Zusätzliche Funktionen werden durch den Mechanismus zum Verbinden von Erweiterungen implementiert.

Im Gegensatz zu Make und Ninja verfolgt Bazel einen übergeordneten Ansatz Um Kompilierungsregeln zu erstellen, die anstelle der Definition von Befehlsbindungen für die zu kompilierenden Dateien abstraktere vorgefertigte Blöcke verwenden und Ziel- / Erstellungsplattformen definieren.

Die Komponenten des Projekts werden in der BUILD-Textdatei beschrieben in Form eines Pakets von Bibliotheken, ausführbaren Dateien und Tests, ohne auf der Ebene der einzelnen Dateien und Befehle zum Aufrufen des Compilers detailliert anzugeben.

In BUILD-Dateien Alle Abhängigkeiten müssen vollständig definiert sein. auf deren Grundlage Entscheidungen getroffen werden, Komponenten nach Änderungen neu zu erstellen (nur geänderte Dateien werden neu erstellt) und den Erstellungsprozess zu parallelisieren.

Quelle: https://developers.googleblog.com


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.