Ihrem Projekt C- und C++-Code hinzufügen

Fügen Sie Ihrem Android-Projekt C- und C++-Code hinzu, indem Sie den Code in eine cpp-Verzeichnis in Ihrem Projektmodul. Wenn Sie Ihr Projekt erstellen, wird in eine native Bibliothek kompiliert, die Gradle mit Ihrer App verpacken kann. Ihr Java- oder Kotlin-Code kann dann Funktionen in Ihrer nativen Bibliothek aufrufen. über die Java Native Interface (JNI) zu laden. Um mehr über die Verwendung der JNI zu erfahren erhalten Sie in den JNI-Tipps für Android-Geräte

Android Studio unterstützt CMake, das für plattformübergreifende Projekte nützlich ist. Android Studio unterstützt auch ndk-build, das kann schneller sein als CMake, unterstützt aber nur Android. Sowohl CMake als auch ndk-build im selben Modul wird derzeit nicht unterstützt.

So importieren Sie eine vorhandene ndk-build-Bibliothek in Android Studio: Projekt arbeiten, lernen Sie, Gradle mit deinem nativen Bibliotheksprojekt verknüpfen.

Auf dieser Seite erfahren Sie, wie Sie Android Studio mit der die erforderlichen Build-Tools, erstellen Sie ein neues Projekt mit C/C++ und fügen Sie neue C/C++ Dateien zu Ihrem Projekt hinzu.

Wenn Sie stattdessen nativen Code zu einem vorhandenen Projekt hinzufügen möchten, führen Sie folgende Schritte aus:

  1. Erstellen Sie neue native Quelldateien und fügen Sie die in Ihr Android Studio-Projekt hochladen.
    • Überspringen Sie diesen Schritt, wenn Sie bereits nativen Code haben oder eine vordefinierte native Bibliothek zu importieren.
  2. Konfigurieren Sie CMake, um um Ihren nativen Quellcode in einer Bibliothek zu erstellen. Dieses Build-Skript ist erforderlich wenn Sie vorgefertigte oder plattformbasierte Bibliotheken.
    • Wenn Sie bereits eine native Bibliothek haben, Build-Script für CMakeLists.txt oder verwendet ndk-build und enthält Android.mk erstellen, überspringen Sie diesen Schritt.
  3. Konfigurieren Gradle durch Angabe eines Pfads zu Ihrem CMake- oder ndk-build-Objekt Skriptdatei. Gradle verwendet das Build-Skript, um Quellcode in Ihren Android Studio-Projekt erstellen und Ihre native Bibliothek in die App verpacken.

Nachdem Sie Ihr Projekt konfiguriert haben, können Sie über Java- oder Kotlin-Code mit dem JNI-Framework Um Ihre App zu erstellen und auszuführen, Klicken Sie auf Ausführen App über die Menüleiste ausführen, dann ausführen.

Hinweis:Wenn in Ihrem vorhandenen Projekt das verworfene ndkCompile-Tool, migrieren Sie zu CMake- oder ndk-build.

NDK herunterladen und Build-Tools herunterladen

Zum Kompilieren und Debuggen von nativem Code für Ihre App benötigen Sie Folgendes: Komponenten:

  • Das Native Development Kit von Android (NDK): ein Toolset, mit dem Sie C- und C++-Code mit Android NDK bietet Plattformbibliotheken, mit denen Sie native sowie auf physische Gerätekomponenten wie Sensoren und Berührungen Eingabe.
  • CMake: ein externes Build-Tool, das zusammen mit Gradle zum Erstellen nativer Bibliothek. Sie benötigen diese Komponente nicht, wenn Sie ndk-build
  • LLDB: das Debugger in Android Studio, der nativen Code debuggt.

Informationen zur Installation dieser Komponenten finden Sie unter NDK und CMake installieren und konfigurieren.

Neues Projekt mit C/C++-Unterstützung erstellen

Der Prozess zum Erstellen eines neuen Projekts mit Unterstützung für nativen Code ähnelt dem das Erstellen anderer Android- Studio-Projekt, aber mit einem zusätzlichen Schritt:

  1. Gehen Sie im Abschnitt Projekt auswählen des Assistenten so vor: Wählen Sie als Projekttyp Native C++ aus.
  2. Klicken Sie auf Weiter.
  3. Füllen Sie alle anderen Felder im nächsten Abschnitt des Assistenten aus.
  4. Klicken Sie auf Weiter.
  5. Im Abschnitt Anpassen der C++-Unterstützung des Assistenten können Sie Ihr Projekt in das Feld C++ Standard ein.
    • Verwenden Sie die Drop-down-Liste, um wählen Sie die gewünschte C++-Standardisierung aus. Auswählen der Toolchain Standard: Die Standardeinstellung für CMake wird verwendet.
  6. Klicken Sie auf Fertig.

Nachdem Android Studio das neue Projekt erstellt hat, öffnen Sie das Project (Projekt) links in der IDE und wählen Sie Android-Ansicht aus. Wie in Abbildung 1 gezeigt, Studio fügt die Gruppe cpp hinzu:

Abbildung 1: Android-Ansichtsgruppen für Ihre nativen Quellen und externen Build-Skripts.

Hinweis: Diese Ansicht entspricht nicht der tatsächlichen Dateihierarchie. auf dem Laufwerk gespeichert, ähnliche Dateien gruppiert werden, um die Navigation im Projekt zu vereinfachen.

In der Gruppe cpp finden Sie alle nativen Quelldateien, Header, Build-Skripts für CMake oder ndk-build sowie vordefinierte Bibliotheken, die Teil Ihres Projekts sind. Für neue Projekte: Android Studio erstellt die C++-Beispieldatei native-lib.cpp und platziert sie im Verzeichnis src/main/cpp/ Ihres Anwendungsmoduls. Dieses Beispiel bietet die einfache C++-Funktion stringFromJNI(), die gibt den String "Hello from C++" zurück. Weitere Informationen Quelldateien zu Ihrem Projekt hinzufügen. Erstellen Sie neue native Quelldateien.

Ähnlich wie in build.gradle-Dateien Gradle mit Anweisungen zum Erstellen Ihre App, CMake und ndk-build benötigen ein Build-Skript, um zu wissen, wie Ihrer nativen Bibliothek. Für neue Projekte erstellt Android Studio einen CMake-Build CMakeLists.txt und speichert sie im Stammverzeichnis deines Moduls. Weitere Informationen zum Inhalt dieses Build-Skripts finden Sie unter CMake konfigurieren

Beispielanwendung erstellen und ausführen

Wenn Sie auf Ausführen App über die Menüleiste ausführen, dann ausführen klicken, wird Android Studio Erstellt und startet eine App, die den Text „Hello from C++“ anzeigt. auf deinem Android-Gerät oder Emulator In der folgenden Übersicht werden die Ereignisse beschrieben, um die Beispiel-App zu erstellen und auszuführen:

  1. Gradle ruft Ihr externes Build-Skript auf, CMakeLists.txt
  2. CMake folgt den Befehlen im Build-Skript, um eine C++-Quelle zu kompilieren. native-lib.cpp in eine gemeinsam genutzte Objektbibliothek und benennen diese es libnative-lib.so. Gradle verpackt es dann in der App.
  3. Während der Laufzeit lädt das MainActivity der App die native Bibliothek mit System.loadLibrary() die native Funktion der Bibliothek, „stringFromJNI()“ ist jetzt für die App verfügbar.
  4. MainActivity.onCreate() ruft stringFromJNI() an, das "Hello from C++" zurückgibt und damit TextView aktualisiert.

Um zu prüfen, ob Gradle die native Bibliothek in der App verpackt, verwenden Sie den APK Analyzer:

  1. Wählen Sie Erstellen > Build-Bundles/APKs > Build-APKs
  2. Wählen Sie Erstellen > APK analysieren
  3. Wähle das APK oder AAB aus dem Verzeichnis app/build/outputs/ aus und klicken Sie auf OK.
  4. Wie in Abbildung 2 gezeigt, sehen Sie libnative-lib.so im APK Analyzer-Fenster unter lib/<ABI>/.

    Abbildung 2: Native Bibliothek mithilfe des APK suchen Analysator.

Tipp:Wenn Sie mit anderen Android-Apps experimentieren möchten, nativen Code verwenden, klicken Sie auf Datei > Neu > Import Sample (Beispiel importieren) und Wählen Sie ein Beispielprojekt aus der Ndk-Liste aus.

Neue C/C++-Quelldateien erstellen

Gehen Sie wie folgt vor, um neue C/C++-Quelldateien zu einem vorhandenen Projekt hinzuzufügen:

  1. Wenn Sie noch kein cpp/-Verzeichnis in der Hauptquelle haben Ihrer App erstellen möchten, gehen Sie so vor:
    1. Öffnen Sie den Bereich Project (Projekt) links in der IDE und Wählen Sie im Menü die Ansicht Projekt aus.
    2. Gehen Sie zu your-module > src gesetzt ist.
    3. Klicken Sie mit der rechten Maustaste auf das Verzeichnis main und wählen Sie New > Verzeichnis.
    4. Geben Sie cpp als Verzeichnisnamen ein und klicken Sie auf OK.

  2. Klicken Sie mit der rechten Maustaste auf das Verzeichnis cpp/ und wählen Sie New > C/C++-Quelldatei.
  3. Geben Sie einen Namen für die Quelldatei ein, z. B. native-lib.
  4. Wählen Sie im Menü Typ die Dateiendung aus. für Ihre Quelldatei, z. B. .cpp.
    • Klicken Sie auf Dateitypen bearbeiten. , um dem Menü andere Dateitypen hinzuzufügen, z. B. .cxx oder .hxx. Klicken Sie auf Neue Dateierweiterungen die sich öffnet, können Sie eine andere Dateiendung aus dem Die Menüs Source Extension und Header Extension sowie Klicken Sie auf OK.
  5. Um eine Headerdatei zu erstellen, wählen Sie die Option Eine zugehörigen Header.
  6. Klicken Sie auf OK.

Nachdem Sie Ihrem Projekt neue C/C++ Dateien hinzugefügt haben, müssen Sie noch konfigurieren Sie CMake so, dass die Dateien Ihrer nativen Bibliothek.

Weitere Informationen

Weitere Informationen zur Unterstützung von C/C++ Code in Ihrer App finden Sie unter .

Codelabs