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:
-
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.
-
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 verwendetndk-build
und enthältAndroid.mk
erstellen, überspringen Sie diesen Schritt.
- Wenn Sie bereits eine native Bibliothek haben,
Build-Script für
-
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 , 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:
- Gehen Sie im Abschnitt Projekt auswählen des Assistenten so vor: Wählen Sie als Projekttyp Native C++ aus.
- Klicken Sie auf Weiter.
- Füllen Sie alle anderen Felder im nächsten Abschnitt des Assistenten aus.
- Klicken Sie auf Weiter.
-
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.
- 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 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:
- Gradle ruft Ihr externes Build-Skript auf,
CMakeLists.txt
- CMake führt die Befehle im Build-Script aus, um eine C++-Quelldatei namens
native-lib.cpp
in eine freigegebene Objektbibliothek zu kompilieren und sielibnative-lib.so
zu nennen. Gradle verpackt sie dann in der App. - Während der Laufzeit lädt das
MainActivity
der App die native Bibliothek mitSystem.loadLibrary()
Die native Funktion der Bibliothek,stringFromJNI()
, ist jetzt für die App verfügbar. -
MainActivity.onCreate()
ruftstringFromJNI()
an, das"Hello from C++"
zurückgibt und damitTextView
aktualisiert.
Um zu prüfen, ob Gradle die native Bibliothek in der App verpackt, verwenden Sie den APK Analyzer:
- Wählen Sie Erstellen > Build-Bundles/APKs > Build-APKs
- Wählen Sie Build > APK analysieren aus.
- Wähle das APK oder AAB aus dem Verzeichnis
app/build/outputs/
aus und klicken Sie auf OK. - Wie in Abbildung 2 dargestellt, sehen Sie
libnative-lib.so
im APK Analyzer-Fenster unterlib/<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:
- Wenn Sie noch kein
cpp/
-Verzeichnis in der Hauptquelle haben Ihrer App erstellen möchten, gehen Sie so vor: - Öffnen Sie links in der IDE den Bereich Projekt und wählen Sie im Menü die Ansicht Projekt aus.
- Gehen Sie zu your-module > src.
- Klicken Sie mit der rechten Maustaste auf das Verzeichnis main und wählen Sie New > Verzeichnis.
- Geben Sie
cpp
als Verzeichnisnamen ein und klicken Sie auf OK. - Klicken Sie mit der rechten Maustaste auf das Verzeichnis
cpp/
und wählen Sie Neu > C/C++-Quelldatei aus. - Geben Sie einen Namen für die Quelldatei ein, z. B.
native-lib
. - 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.
- Klicken Sie auf Dateitypen bearbeiten
- Wenn Sie eine Kopfdatei erstellen möchten, aktivieren Sie das Kästchen Zugehörigen Header erstellen.
- 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
- Hello-CMake mit Android Studio erstellen In diesem Codelab erfahren Sie, wie Sie mit der CMake-Vorlage von Android Studio die Entwicklung eines Android-NDK-Projekts starten.