AOSP verwendet das Soong-Build-System zum Erstellen von Android. Soong verwendet das kati-Tool, einen GNU Make-Klon, und die Ninja-Build-Systemkomponente, um Builds von Android zu beschleunigen.
Soong-Build-Dateien werden als Blueprint-Dateien bezeichnet und haben den Namen Android.bp. Diese Dateien ähneln in Syntax und Semantik Bazel-BUILD-Dateien.
Weitere Informationen zum Android.bp-Dateiformat finden Sie unter Android.bp-Dateiformat.
Weitere Informationen zum Konvertieren von Makefiles in Android.bp-Dateien finden Sie unter Vergleich von Make und Soong.
Flags für die Einführung von Funktionen und Build-Flags
Flags für die Einführung von Funktionen sind binäre Flags, mit denen nicht getesteter Code von getestetem Code isoliert wird. Wenn Sie einen eigenen Spiegel des externen Entwicklungszweigs von AOSP verwalten, können Sie mit diesen Flags dafür sorgen, dass Ihr gespiegelter Code stabil bleibt. Wenn Sie Code für den öffentlichen externen Entwicklungszweig beitragen, kann der Prüfer Sie bitten, ein Flag für Ihren Code zu implementieren.
Build-Flags sind Stringkonstanten, die zur Build-Zeit verwendet werden, um den Build zu ändern, z. B. um optional eine Codebibliothek einzubinden.
Weitere Informationen zu den verschiedenen Code-Branches finden Sie unter Release-Lebenszyklus.
Für Flags für die Einführung von Funktionen und Build-Flags sind Änderungen an Build-Dateien erforderlich. Weitere Informationen zu diesen Flags und ihrer Verwendung in einem Build finden Sie unter Übersicht über Flags für die Einführung von Funktionen.
Code- und Ressourcenkomprimierung mit R8
Soong verwendet den R8-Compiler, um Java- und Kotlin-Ziele zu verkleinern und zu optimieren, die DEX-Bytecode kompilieren, z. B. android_app, android_test und installierbare java_library-Module. Bei statischen Bibliotheken wie android_library und statischen java_library werden mit dem optimize-Block Regeln zum Beibehalten von Nutzerdaten angehängt und exportiert.
Weitere Informationen zum Konfigurieren der R8-Optimierung und der Keep-Regeln finden Sie unter Plattformcode und ‑ressourcen mit R8 optimieren.