Erstellen Sie Android

Befolgen Sie die Anweisungen auf dieser Seite, um Android zu erstellen.

Richten Sie Ihre Build-Umgebung ein

Rufen Sie aus Ihrem Arbeitsverzeichnis das Skript envsetup.sh auf, um Ihre Build-Umgebung einzurichten:

$ source build/envsetup.sh

Dieses Skript importiert mehrere Befehle, mit denen Sie mit dem Android-Quellcode arbeiten können, einschließlich der auf dieser Seite verwendeten Befehle. Informationen zum Anzeigen der Quelle des Skripts finden Sie unter platform/build/envsetup.sh . Geben Sie hmm ein, um die integrierte Hilfe anzuzeigen.

Wählen Sie ein Ziel

Bevor Sie Android erstellen, müssen Sie ein Ziel für die Erstellung identifizieren. Um Ihr zu erstellendes Ziel zu identifizieren, verwenden Sie den Befehl lunch gefolgt von einem Ziel , das Ihr Zielprodukt und Ihren Build identifiziert:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Aktuelles Ziel anzeigen

Führen Sie Folgendes aus, um die aktuellen Mittagseinstellungen anzuzeigen:

$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

Die Zeichenfolge, die das Ziel darstellt, hat das folgende Format:

lunch product_name-release-build_variant

Die Komponenten dieser Zeichenfolge sind:

  • Der product_name ist der Name des Produkts, das Sie erstellen möchten, z. B. aosp_cf_x86_64_phone oder aosp_husky . Ihr spezifischer product_name kann Ihrem eigenen Format folgen, aber das von Google verwendete Format enthält folgende Komponenten:

    • aosp bezieht sich auf die Android Open Source Platform.
    • (optional) cf ist enthalten, wenn das Ziel im Cuttlefish-Emulator ausgeführt werden soll.
    • Architektur und Hardware, wie z. B. x86_64_phone oder husky (Pixel 8 pro).
  • Die release ist auf trunk-staging eingestellt.

  • Der build_variant Teil der Zeichenfolge kann einer der drei Werte in der folgenden Tabelle sein:

    build_variant Beschreibung
    user Diese Build-Variante bietet eingeschränkten Sicherheitszugriff und ist für die Produktion geeignet.
    userdebug Diese Build-Variante hilft den Geräteentwicklern, die Leistung und Leistungsfähigkeit von in der Entwicklung befindlichen Versionen zu verstehen. Befolgen Sie beim Entwickeln mit einem userdebug Build die Richtlinien für Userdebug .
    eng Diese Build-Variante hat eine schnellere Build-Zeit und eignet sich am besten für die tägliche Entwicklung, wenn Ihnen Leistung und Leistung egal sind.

Erstellen Sie den Code

Führen Sie den folgenden Befehl aus, um Ihr Ziel zu erstellen. Abhängig von der Spezifikation Ihrer Workstation kann der erste Build weniger als eine Stunde und bis zu einige Stunden dauern. Nachfolgende Builds nehmen deutlich weniger Zeit in Anspruch.

$ m

Die erste Ausgabe, die Sie sehen sollten, ist eine Zusammenfassung Ihrer Ziel- und Build-Umgebung:

============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================

Der m Befehl wird von der Spitze des Baums aus erstellt, sodass Sie m aus Unterverzeichnissen ausführen können. Wenn Sie die Umgebungsvariable TOP festgelegt haben, wird sie vom Befehl m verwendet. Wenn TOP nicht festgelegt ist, durchsucht der Befehl m den Baum im aktuellen Verzeichnis und versucht, die Spitze des Baums zu finden.

Der m Befehl kann parallele Aufgaben mit einem -jN Argument verarbeiten. Wenn Sie kein -j Argument angeben, wählt das Build-System automatisch eine Anzahl paralleler Aufgaben aus, die seiner Meinung nach für Ihr System optimal ist.

Sie können anstelle des vollständigen Geräte-Images bestimmte Module erstellen, indem Sie Modulnamen in Ihrer m Befehlszeile auflisten. Darüber hinaus stellt der Befehl m einige Pseudoziele bereit, die als Ziele bezeichnet werden. Beispielsweise erstellt m nothing nichts, sondern analysiert und validiert die Build-Struktur. Geben Sie m help ein, um eine Liste gültiger Ziele anzuzeigen.

Fehlerbehebung bei Buildfehlern (8.0 oder früher)

Wenn Sie AOSP 8 oder früher erstellen, bricht m möglicherweise ab, wenn ein Problem mit Ihrer Java-Version auftritt. Beispielsweise erhalten Sie möglicherweise diese Meldung:

************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.

Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
************************************************************

Hier sind die wahrscheinlichen Ursachen und Lösungen:

  • Sie haben es nicht geschafft, das richtige JDK zu installieren, wie in den JDK-Abschnitten von Einrichten der AOSP-Entwicklung (2.3–8.0) angegeben.
  • In Ihrem Pfad wird ein weiteres zuvor installiertes JDK angezeigt. Stellen Sie das richtige JDK am Anfang Ihres Pfads voran oder entfernen Sie das problematische JDK.