Android entwickeln

Folgen Sie der Anleitung auf dieser Seite, um Android zu erstellen.

Build-Umgebung einrichten

Ermitteln Sie aus Ihrem Arbeitsverzeichnis das festzulegende Skript envsetup.sh. Ihre Build-Umgebung einrichten:

source build/envsetup.sh

Dieses Skript importiert mehrere Befehle, mit denen Sie mit der Android-App einschließlich der auf dieser Seite verwendeten Befehle. Um die Quelle der Skript erstellt haben, siehe 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. Ziel die Zielplattform widerspiegelt, für die Sie entwickeln. Zur Identifizierung Ihrer erstellen möchten, verwenden Sie den Befehl lunch, gefolgt von einem String, der das Ziel zu erreichen. 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 verwenden möchten. Build an, z. B. aosp_cf_x86_64_phone oder aosp_husky. Ihre spezifischen product_name kann dein eigenes Format für dein Gerät verwenden, Das Format, das Google für seine Geräte verwendet, hat jedoch folgende Komponenten:

    • aosp bezieht sich auf die Open-Source-Plattform von Android.
    • (optional) cf wird eingeschlossen, wenn das Ziel innerhalb des Bereichs ausgeführt werden soll, Tintenfisch-Emulator
    • Architektur und Hardware (Codename), z. B. x86_64_phone oder husky das ist der Codename für Pixel 8 Pro. Zur Liste der Codenamen für Google Geräte finden Sie unter Geräte-Codenamen:
  • release ist auf trunk_staging gesetzt.

  • Der build_variant-Teil des Strings kann einer der folgenden sein: die drei Werte in der folgenden Tabelle:

    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, 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 Ihre eigenen Zielstrings erstellen, indem Sie die Elemente eines Zielstring mit den Informationen auf dieser Seite und den Codenamen die für die spezifische Google-Hardware Geräte-Codenamen:

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 dauern, einige Stunden. Nachfolgende Builds nehmen deutlich weniger Zeit in Anspruch.

$ m

Die erste Ausgabe, die Sie sehen sollten, ist eine Zusammenfassung Ihres Ziels 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 unterschiedliche Ziele erstellen, wird jeder Build in $OUT_DIR

Der Befehl m wird oben in der Baumstruktur erstellt, sodass Sie m innerhalb von Unterverzeichnisse Wenn Sie die Umgebungsvariable TOP festgelegt haben, führt der Befehl m verwendet. Ist TOP nicht festgelegt, sucht der m-Befehl die Baumstruktur im im aktuellen Verzeichnis und versuchen, den Anfang der Baumstruktur zu finden.

Der Befehl m kann parallele Aufgaben mit einem -jN-Argument verarbeiten. Wenn Sie keine -j-Argument bereitstellen, wählt das Build-System automatisch eine parallele Aufgabe aus. die für Ihr System als optimal erachtet wird.

Du kannst statt des vollständigen Geräte-Images nur bestimmte Module erstellen, indem du Modulnamen in die m-Befehlszeile eingeben. Außerdem liefert der Befehl m einige Pseudoziele, sogenannte Ziele. Beispiel: m nothing erstellt keine die Build-Struktur parst und validiert. Eine Liste gültiger Zielvorhaben, geben Sie m help ein.

Build-Fehler beheben (8.0 oder früher)

Wenn Sie AOSP 8 oder eine frühere Version erstellen, wird m möglicherweise abgebrochen, wenn eine Probleme mit Ihrer Java-Version auftreten. 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 konnten das richtige JDK nicht installieren, wie in den JDK-Abschnitte von Für die AOSP-Entwicklung einrichten (2.3 bis 8.0)
  • In Ihrem Pfad erscheint ein anderes zuvor installiertes JDK. Stellen Sie dem Korrigieren Sie das JDK am Anfang des Pfads oder entfernen Sie das problematische JDK.