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:
-
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
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 verwendetndk-build
und enthältAndroid.mk
erstellen, überspringen Sie diesen Schritt.
- Wenn Sie bereits eine native Bibliothek haben,
Build-Script für
-
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 .
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:
- 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. Auswählen der Toolchain Standard: Die Standardeinstellung für CMake wird 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 gezeigt, Studio fügt die Gruppe cpp hinzu:
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 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 folgt den Befehlen im Build-Skript, um eine C++-Quelle zu kompilieren.
native-lib.cpp
in eine gemeinsam genutzte Objektbibliothek und benennen diese eslibnative-lib.so
. Gradle verpackt es 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 Erstellen > APK analysieren
- Wähle das APK oder AAB aus dem Verzeichnis
app/build/outputs/
aus und klicken Sie auf OK. - Wie in Abbildung 2 gezeigt, sehen Sie
libnative-lib.so
im APK Analyzer-Fenster unterlib/<ABI>/
.
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 den Bereich Project (Projekt) links in der IDE und Wählen Sie im Menü die Ansicht Projekt aus.
- Gehen Sie zu your-module > src gesetzt ist.
- 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 New > C/C++-Quelldatei. - 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ü 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.
- Klicken Sie auf Dateitypen bearbeiten.
, um dem Menü andere Dateitypen hinzuzufügen, z. B.
- Um eine Headerdatei zu erstellen, wählen Sie die Option Eine zugehörigen Header.
- 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 erfährst du, wie du mit der Vorlage „CMake“ Android NDK-Projektentwicklung