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. Beim Erstellen Ihres Projekts wird dieser Code in eine native Bibliothek kompiliert, die Gradle mit Ihrer App verpacken kann. Ihr Java- oder Kotlin-Code kann dann Funktionen in Ihrer nativen Bibliothek über das Java Native Interface (JNI) aufrufen. Weitere Informationen zur Verwendung des JNI-Frameworks finden Sie unter JNI-Tipps für Android.

Android Studio unterstützt CMake, das für plattformübergreifende Projekte nützlich ist. Android Studio unterstützt auch ndk-build, das schneller als CMake sein kann, aber nur Android unterstützt. Die Verwendung von CMake und 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 Ihren nativen Quellcode in eine Bibliothek zu kompilieren. 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 Sie Gradle, indem Sie einen Pfad zu Ihrer CMake- oder ndk-build-Scriptdatei angeben. 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 Klicken Sie auf Ausführen App über die Menüleiste ausführen, dann ausführen, um Ihre App zu erstellen und auszuführen.

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

NDK und Build-Tools herunterladen

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

  • Android Native Development Kit (NDK): Ein Toolset, mit dem Sie C- und C++-Code mit Android verwenden können. Das NDK bietet Plattformbibliotheken, mit denen Sie native Aktivitäten verwalten und auf physische Gerätekomponenten wie Sensoren und Touchbedienung zugreifen können.
  • CMake: ein externes Build-Tool, das zusammen mit Gradle zum Erstellen nativer Bibliothek. Sie benötigen diese Komponente nicht, wenn Sie nur ndk-build verwenden möchten.
  • 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. Wenn Sie Toolchain-Standard auswählen, wird die Standardeinstellung von CMake 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 dargestellt, fügt Android Studio 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 erstellt Android Studio eine Beispiel-C++-Quelldatei namens native-lib.cpp und platziert sie im Verzeichnis src/main/cpp/ Ihres App-Moduls. Dieses Beispiel bietet die einfache C++-Funktion stringFromJNI(), die gibt den String "Hello from C++" zurück. Informationen zum Hinzufügen weiterer Quelldateien zu Ihrem Projekt finden Sie im Abschnitt Neue native Quelldateien erstellen.

Ähnlich wie build.gradle-Dateien Gradle anweisen, wie Ihre App erstellt werden soll, benötigen CMake und ndk-build ein Build-Script, um zu wissen, wie Ihre native Bibliothek erstellt werden soll. 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-Scripts 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 führt die Befehle im Build-Script aus, um eine C++-Quelldatei namens native-lib.cpp in eine freigegebene Objektbibliothek zu kompilieren und sie libnative-lib.so zu nennen. Gradle verpackt sie 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 Build > APK analysieren aus.
  3. Wähle das APK oder AAB aus dem Verzeichnis app/build/outputs/ aus und klicken Sie auf OK.
  4. Wie in Abbildung 2 dargestellt, sehen Sie libnative-lib.so im APK Analyzer-Fenster unter lib/<ABI>/.

    Abbildung 2: Suchen Sie mit dem APK Analyzer nach einer nativen Bibliothek.

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 links in der IDE den Bereich Projekt und wählen Sie im Menü die Ansicht Projekt aus.
    2. Gehen Sie zu your-module > src.
    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 Neu > C/C++-Quelldatei aus.
  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ü weitere Dateitypen hinzuzufügen, z. B. .cxx oder .hxx. Klicken Sie auf der Seite 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. Wenn Sie eine Kopfdatei erstellen möchten, aktivieren Sie das Kästchen Zugehörigen Header erstellen.
  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