Folgen Sie der Anleitung auf dieser Seite, um Android zu erstellen.
Build-Umgebung einrichten
Erstellen Sie aus Ihrem Arbeitsverzeichnis das Skript envsetup.sh
, 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 zur Quelle des Skripts finden Sie unter platform/build/envsetup.sh
.
Geben Sie hmm
ein, um die integrierte Hilfe aufzurufen.
Ziel auswählen
Bevor Sie Android entwickeln, müssen Sie ein Ziel für die Entwicklung identifizieren. Ein Ziel gibt die Zielplattform wieder, für die Sie den Entwurf erstellen. Um das zu erstellende Ziel zu identifizieren, verwenden Sie den Befehl lunch
gefolgt von einem String, der das Ziel darstellt. Beispiel:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Aktuelles Ziel ansehen
Führen Sie folgenden Befehl aus, um die aktuellen Einstellungen für das Mittagessen aufzurufen:
$ echo "$TARGET_PRODUCT-$TARGET_RELEASE-$TARGET_BUILD_VARIANT"
Der String, der das Ziel darstellt, hat folgendes Format:
lunch product_name-release-build_variant
Die Komponenten dieses Strings sind:
product_name ist der Name des Produkts, das Sie erstellen möchten, z. B.
aosp_cf_x86_64_phone
oderaosp_husky
. Dein spezifisches product_name kann deinem eigenen Format für dein Gerät folgen. Das Format, das Google für seine Geräte verwendet, enthält jedoch die folgenden Komponenten:aosp
bezieht sich auf die Open-Source-Plattform von Android.- (Optional)
cf
ist enthalten, wenn das Ziel im Cuttlefish-Emulator ausgeführt werden soll. - Architektur und Hardware (Codename), z. B.
x86_64_phone
oderhusky
– der Codename für Pixel 8 Pro. Eine Liste der Codenamen für Google-Geräte findest du unter Geräte-Codenamen.
release ist auf
trunk_staging
gesetzt.Der build_variant-Teil des Strings kann einer der drei Werte in der folgenden Tabelle sein:
build_variant Beschreibung user
Diese Build-Variante bietet eingeschränkten Sicherheitszugriff und eignet sich für die Produktion. userdebug
Diese Build-Variante hilft Geräteentwicklern dabei, die Leistung und Leistungsfähigkeit von Releases in der Entwicklungsphase zu verstehen. Halten Sie sich bei der Entwicklung mit einem userdebug
-Build an die Richtlinien für die Fehlerbehebung von Nutzern.eng Diese Build-Variante hat eine schnellere Build-Dauer und eignet sich am besten für die tägliche Entwicklung, wenn Leistung und Leistung keine Rolle spielen.
Wenn Sie lunch
ohne Argumente ausführen, wird eine Liste gemeinsamer Ziele bereitgestellt.
Sie können auch eigene Zielstrings erstellen, indem Sie die Elemente des Zielstrings unter Verwendung der Informationen auf dieser Seite und der Codenamen für die jeweilige Google-Hardware unter Geräte-Codenamen zusammensetzen.
Code erstellen
Führen Sie den folgenden Befehl aus, um das Ziel zu erstellen. Je nach Spezifikation Ihrer Workstation kann der erste Build weniger als eine Stunde, aber auch 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
============================================
Die Ausgabe Ihres Builds wird in $OUT_DIR
angezeigt. Wenn Sie verschiedene Ziele erstellen, wird jeder Ziel-Build in $OUT_DIR
angezeigt.
Der Befehl m
wird oben in der Baumstruktur erstellt, sodass Sie m
in Unterverzeichnissen ausführen können. Wenn Sie die Umgebungsvariable TOP
festgelegt haben, wird sie vom Befehl m
verwendet. Wenn TOP
nicht festgelegt ist, sucht der Befehl m
die Baumstruktur aus dem aktuellen Verzeichnis und versucht, den Anfang der Baumstruktur zu finden.
Der Befehl m
kann parallele Aufgaben mit einem -jN
-Argument verarbeiten. Wenn Sie kein -j
-Argument angeben, wählt das Build-System automatisch eine parallele Aufgabenanzahl aus, die für Ihr System als optimal einstuft.
Sie können anstelle des vollständigen Geräte-Images bestimmte Module erstellen, indem Sie die Modulnamen in der m
-Befehlszeile auflisten. Darüber hinaus stellt der Befehl m
einige Pseudoziele bereit, die als Zielvorhaben bezeichnet werden. Beispielsweise erstellt m nothing
nichts, sondern parst und validiert die Build-Struktur. Geben Sie m help
ein, um eine Liste gültiger Zielvorhaben aufzurufen.
Build-Fehler beheben (8.0 oder früher)
Wenn Sie AOSP 8 oder eine frühere Version erstellen, wird m
möglicherweise abgebrochen, wenn ein Problem mit Ihrer Java-Version auftritt. Sie erhalten beispielsweise folgende 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
************************************************************
Mögliche Ursachen und Lösungen:
- Sie haben nicht das richtige JDK installiert, wie in den JDK-Abschnitten unter Für die AOSP-Entwicklung einrichten (2.3–8.0) angegeben.
- In Ihrem Pfad erscheint ein anderes zuvor installiertes JDK. Stellen Sie das richtige JDK am Anfang Ihres Pfads voran oder entfernen Sie das problematische JDK.