Fügen Sie Ihrem Android-Projekt C- und C++-Code hinzu, indem Sie den Code in ein cpp
-Verzeichnis in Ihrem Projektmodul einfügen. 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, was 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 gleichzeitige Verwendung von CMake und ndk-build
im selben Modul wird derzeit nicht unterstützt.
Wenn Sie eine vorhandene ndk-build
-Bibliothek in Ihr Android Studio-Projekt importieren möchten, lesen Sie den Hilfeartikel Gradle mit Ihrem Native Library-Projekt verknüpfen.
Auf dieser Seite erfahren Sie, wie Sie Android Studio mit den erforderlichen Build-Tools einrichten, ein neues Projekt mit C/C++-Unterstützung erstellen und Ihrem Projekt neue C/C++-Dateien hinzufügen.
Wenn Sie einem vorhandenen Projekt stattdessen nativen Code hinzufügen möchten, gehen Sie so vor:
-
Erstellen Sie neue native Quelldateien und fügen Sie sie Ihrem Android Studio-Projekt hinzu.
- Überspringen Sie diesen Schritt, wenn Sie bereits nativen Code haben oder eine vorkonfigurierte native Bibliothek importieren möchten.
-
Konfigurieren Sie CMake, um Ihren nativen Quellcode in eine Bibliothek zu kompilieren. Dieses Build-Script ist erforderlich, wenn Sie vorgefertigte oder Plattformbibliotheken importieren und verknüpfen.
- Wenn Sie eine vorhandene native Bibliothek haben, die bereits ein
CMakeLists.txt
-Build-Script hat oderndk-build
verwendet und einAndroid.mk
-Build-Script enthält, überspringen Sie diesen Schritt.
- Wenn Sie eine vorhandene native Bibliothek haben, die bereits ein
-
Konfigurieren Sie Gradle, indem Sie einen Pfad zu Ihrer CMake- oder
ndk-build
-Scriptdatei angeben. Gradle verwendet das Build-Script, um den Quellcode in Ihr Android Studio-Projekt zu importieren und Ihre native Bibliothek in die App zu verpacken.
Nachdem Sie Ihr Projekt konfiguriert haben, können Sie über das JNI-Framework über Java- oder Kotlin-Code auf Ihre nativen Funktionen zugreifen. 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. NDK bietet Plattformbibliotheken, mit denen Sie native Aktivitäten verwalten und auf physische Gerätekomponenten wie Sensoren und Berührungseingabe zugreifen können.
-
CMake: Ein externes Build-Tool, das zusammen mit Gradle zum Erstellen Ihrer nativen Bibliothek verwendet wird. Sie benötigen diese Komponente nicht, wenn Sie nur
ndk-build
verwenden möchten. - LLDB: Der Debugger in Android Studio, mit dem nativer Code debuggt wird.
Informationen zum Installieren dieser Komponenten finden Sie unter NDK und CMake installieren und konfigurieren.
Neues Projekt mit C/C++-Unterstützung erstellen
Zum Erstellen eines neuen Projekts mit Unterstützung für nativen Code ist der Vorgang ähnlich wie beim Erstellen eines anderen Android Studio-Projekts, allerdings mit einem zusätzlichen Schritt:
- Wählen Sie im Bereich Projekt auswählen des Assistenten den 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 Bereich C++-Support anpassen des Assistenten können Sie Ihr Projekt mit dem Feld C++-Standard anpassen.
- Wählen Sie in der Drop-down-Liste die C++-Standardisierung aus, die Sie verwenden möchten. 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 auf der linken Seite der IDE den Bereich Project (Projekt) und wählen Sie im Menü die Ansicht Android aus. Wie in Abbildung 1 gezeigt, fügt Android Studio die Gruppe cpp hinzu:
Hinweis:Diese Ansicht spiegelt nicht die tatsächliche Dateihierarchie auf dem Laufwerk wider, sondern gruppiert ähnliche Dateien, um die Navigation im Projekt zu vereinfachen.
In der Gruppe cpp finden Sie alle nativen Quelldateien, Header, Build-Scripts für CMake oder ndk-build
und vorkonfigurierte 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 enthält eine einfache C++-Funktion, stringFromJNI()
, die den String "Hello from C++"
zurückgibt. Im Abschnitt zum Erstellen neuer nativer Quelldateien erfahren Sie, wie Sie Ihrem Projekt zusätzliche Quelldateien hinzufügen.
Ä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 ein CMake-Build-ScriptCMakeLists.txt
und platziert es im Stammverzeichnis des Moduls.
Weitere Informationen zum Inhalt dieses Build-Scripts finden Sie unter CMake konfigurieren.
Beispielanwendung erstellen und ausführen
Wenn Sie auf Ausführen klicken, erstellt und startet Android Studio eine App, die auf Ihrem Android-Gerät oder Emulator den Text „Hallo aus C++“ anzeigt. In der folgenden Übersicht werden die Ereignisse beschrieben, die beim Erstellen und Ausführen der Beispiel-App auftreten:
- Gradle ruft Ihr externes Build-Script
CMakeLists.txt
auf. - CMake folgt den Befehlen im Build-Skript, um die C++-Quelldatei
native-lib.cpp
in eine gemeinsam genutzte Objektbibliothek zu kompilieren und ihr den Namenlibnative-lib.so
zu geben. Gradle verpackt es dann in der App. - Während der Laufzeit lädt die
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()
auf, das"Hello from C++"
zurückgibt und damitTextView
aktualisiert.
Mit dem APK Analyzer können Sie überprüfen, ob Gradle die native Bibliothek in der App verpackt.
- Wähle Build > Build-Bundles/APKs > Build-APKs aus.
- Wählen Sie Build > APK analysieren aus.
- Wähle im Verzeichnis
app/build/outputs/
das APK oder AAB aus und klicke auf OK. - Wie in Abbildung 2 dargestellt, sehen Sie
libnative-lib.so
im APK Analyzer-Fenster unterlib/<ABI>/
.
Tipp:Wenn Sie mit anderen Android-Apps experimentieren möchten, die nativen Code verwenden, klicken Sie auf Datei > Neu > Beispiel importieren und wählen Sie ein Beispielprojekt aus der Liste Ndk aus.
Neue C/C++-Quelldateien erstellen
So fügen Sie einem vorhandenen Projekt neue C/C++-Quelldateien hinzu:
- Wenn Sie im Haupt-Quellsatz Ihrer App noch kein
cpp/
-Verzeichnis haben, erstellen Sie eines. Gehen Sie dazu so vor: - Öffnen Sie den Bereich Project (Projekt) auf der linken Seite der IDE und wählen Sie aus dem Menü die Projektansicht aus.
- Gehen Sie zu your-module > src.
- Klicken Sie mit der rechten Maustaste auf das Verzeichnis main und wählen Sie Neu > Verzeichnis aus.
- 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 für die Quelldatei aus, z. B.
.cpp
.- Klicken Sie auf Dateitypen bearbeiten
, um dem Menü weitere Dateitypen hinzuzufügen, z. B.
.cxx
oder.hxx
. Wählen Sie im Dialogfeld Neue Dateiendungen in den Menüs Quellerweiterung und Headererweiterung eine andere Dateiendung aus und klicken Sie auf OK.
- Klicken Sie auf Dateitypen bearbeiten
, um dem Menü weitere Dateitypen hinzuzufügen, z. B.
- Klicken Sie zum Erstellen einer Headerdatei das Kästchen Verknüpften Header erstellen an.
- Klicken Sie auf OK.
Nachdem Sie Ihrem Projekt neue C/C++-Dateien hinzugefügt haben, müssen Sie CMake konfigurieren, um die Dateien in Ihre native Bibliothek aufzunehmen.
Weitere Informationen
Weitere Informationen zur Unterstützung von C/C++-Code in Ihrer App finden Sie in der folgenden Ressource.
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.