Aggiungi il codice C e C++ al tuo progetto Android inserendo il codice in una
Directory cpp
nel modulo di progetto. Quando crei il tuo progetto,
viene compilato in una libreria nativa che Gradle può pacchettizzare con la tua app.
Il codice Java o Kotlin può quindi chiamare le funzioni nella libreria nativa
attraverso la Java Native Interface (JNI). Per scoprire di più sull'uso di JNI,
consulta i suggerimenti di JNI per
Android.
Android Studio supporta CMake, utile per i progetti multipiattaforma.
Android Studio supporta anche ndk-build
, che
può essere più veloce di CMake ma supporta solo Android. Usare sia CMake sia
ndk-build
nello stesso modulo non è attualmente supportato.
Per importare una raccolta ndk-build
esistente in Android Studio
progetto, scopri come
collegare Gradle al tuo progetto nativo della libreria.
In questa pagina viene mostrato come configurare Android Studio con il gli strumenti di creazione necessari, crea un nuovo progetto con C/C++ e aggiungere nuovi file C/C++ al tuo progetto.
Se invece vuoi aggiungere codice nativo a un progetto esistente, segui questi passaggi:
-
Crea nuovi file di origine nativi e aggiungi il file
al tuo progetto Android Studio.
- Ignora questo passaggio se hai già del codice nativo o se vuoi importare una libreria nativa predefinita.
-
Configura CMake in
il tuo codice sorgente nativo in una libreria. Questo script di build è obbligatorio
se esegui l'importazione e il collegamento su una piattaforma
librerie.
- Se hai già una libreria nativa che include
CMakeLists.txt
di script di build o utilizzandk-build
e includeAndroid.mk
script di build, salta questo passaggio.
- Se hai già una libreria nativa che include
-
Configura
Gradle fornendo un percorso per CMake o
ndk-build
del file di script. Gradle utilizza lo script di build per importare il codice sorgente Progetto Android Studio e pacchettizza la tua libreria nativa nell'app.
Dopo aver configurato il progetto, accedi alle funzioni native codice Java o Kotlin utilizzando il framework JNI. Per creare ed eseguire la tua app, fai clic su Esegui .
Nota:se il progetto esistente utilizza il modello deprecato
strumento ndkCompile
, esegui la migrazione a CMake o
ndk-build
.
Scarica l'NDK e gli strumenti di creazione
Per compilare ed eseguire il debug di codice nativo per la tua app, devi avere quanto segue componenti:
- Il Native Development Kit (Kit di sviluppo nativo) di Android (NDK): un set di strumenti che consente di utilizzare il codice C e C++ con Android. NDK fornisce librerie di piattaforma che consentono di gestire attività e accedere a componenti fisici del dispositivo, come sensori e di testo.
-
CMake:
strumento di creazione esterno che si integra con Gradle per creare
libreria. Non hai bisogno di questo componente se prevedi di utilizzarlo
ndk-build
. - LLDB: il valore in Android Studio che esegue il debug del codice nativo.
Per informazioni sull'installazione di questi componenti, consulta l'articolo Installare e configurare NDK e CMake.
Crea un nuovo progetto con supporto C/C++
Per creare un nuovo progetto che supporti il codice nativo, la procedura è simile alla seguente: la creazione di altri modelli progetto Studio, ma con un passaggio aggiuntivo:
- Nella sezione Scegli il tuo progetto della procedura guidata, seleziona il tipo di progetto C++ nativo.
- Fai clic su Avanti.
- Compila tutti gli altri campi nella sezione successiva della procedura guidata.
- Fai clic su Avanti.
-
Nella sezione Personalizza il supporto C++ della procedura guidata, puoi personalizzare
del tuo progetto con il campo C++ Standard.
- Utilizza l'elenco a discesa per seleziona quale standardizzazione di C++ vuoi utilizzare. Selezione di Toolchain Valore predefinito utilizza l'impostazione CMake predefinita.
- Fai clic su Fine.
Dopo che Android Studio ha finito di creare il tuo nuovo progetto, apri lo Progetto sul lato sinistro dell'IDE e seleziona Android dal menu. Come mostrato nella figura 1, Android Studio aggiunge il gruppo cpp:
Nota:questa visualizzazione non riflette l'effettiva gerarchia dei file. su disco, ma raggruppa file simili per semplificare la navigazione nel progetto.
Nel gruppo cpp puoi trovare tutti gli asset nativi
file sorgente, intestazioni, script di build per CMake o ndk-build
e script predefiniti
le librerie che fanno parte del tuo progetto. Per i nuovi progetti, Android Studio
crea un file sorgente C++ di esempio, native-lib.cpp
, e lo inserisce
nella directory src/main/cpp/
del modulo dell'app. Questo esempio
fornisce una semplice funzione C++, stringFromJNI()
, che
restituisce la stringa "Hello from C++"
. Scopri come aggiungere altri
di origine al tuo progetto, nella sezione su come
creare nuovi file di origine nativi.
Simile a come i file build.gradle
indicano a Gradle come creare
CMake e ndk-build
richiedono uno script di build per sapere come creare
nella tua libreria nativa. Per i nuovi progetti, Android Studio crea una build CMake
script CMakeLists.txt
e lo inserisce nella directory radice del modulo.
Per scoprire di più sui contenuti di questo script di build, consulta
Configurare CMake.
Crea ed esegui l'app di esempio
Quando fai clic su Esegui , Android Studio crea e avvia un'app con il testo "Hello from C++" sul tuo emulatore o dispositivo Android. La seguente panoramica descrive gli eventi per creare ed eseguire l'app di esempio:
- su uno script di build esterno
CMakeLists.txt
. - CMake segue i comandi nello script di build per compilare un'origine C++
il file
native-lib.cpp
in una libreria di oggetti condivisa e i relativi nomilibnative-lib.so
. Gradle lo pacchettizza quindi nell'app. - Durante il runtime, l'elemento
MainActivity
dell'app carica lo stato nativo libreria utilizzandoSystem.loadLibrary()
. La funzione nativa della libreriastringFromJNI()
è ora disponibile per l'app. -
MainActivity.onCreate()
chiamastringFromJNI()
, che restituisce"Hello from C++"
e lo utilizza per aggiornareTextView
.
Per verificare che Gradle pacchettizzi la libreria nativa nell'app, utilizza la classe Strumento di analisi APK:
- Seleziona Crea > Creare bundle/APK > Creare APK.
- Seleziona Crea > Analizza l'APK.
- Seleziona l'APK o l'AAB dalla directory
app/build/outputs/
e fai clic su OK. - Come mostrato nella Figura 2, puoi vedere
libnative-lib.so
nella Finestra di analisi APK inlib/<ABI>/
.
Suggerimento:se vuoi provare altre app per Android che utilizzare il codice nativo, fai clic su File > Nuovo > Importa Sample e Seleziona un progetto di esempio dall'elenco Ndk.
Creare nuovi file di origine C/C++
Per aggiungere nuovi file di origine C/C++ a un progetto esistente, procedi come segue:
- Se non hai già una directory
cpp/
nell'origine principale della tua app, creane uno nel seguente modo: - Apri il riquadro Progetto a sinistra nell'IDE e seleziona la vista Progetto dal menu.
- Vai a your-module > src.
- Fai clic con il pulsante destro del mouse sulla directory principale e seleziona Nuovo > Google Cloud.
- Inserisci
cpp
come nome della directory e fai clic su OK. - Fai clic con il pulsante destro del mouse sulla directory
cpp/
e seleziona Nuovo > File di origine C/C++. - Inserisci un nome per il file di origine, ad esempio
native-lib
. - Dal menu Tipo, seleziona l'estensione del file.
per il file di origine, ad esempio
.cpp
.- Fai clic su Modifica tipi di file.
per aggiungere altri tipi di file al menu, ad esempio
.cxx
o.hxx
. Nella sezione Nuove estensioni file che viene visualizzata, seleziona un'altra estensione del file Menu Estensione di origine ed Estensione intestazione e fai clic su OK.
- Fai clic su Modifica tipi di file.
per aggiungere altri tipi di file al menu, ad esempio
- Per creare un file di intestazione, seleziona la casella Crea casella di controllo dell'intestazione associata.
- Fai clic su OK.
Dopo aver aggiunto nuovi file C/C++ al tuo progetto, devi ancora configurare CMake in modo che includa i file nella tua libreria nativa.
Risorse aggiuntive
Per ulteriori informazioni sul supporto del codice C/C++ nella tua app, prova quanto segue risorsa.
Codelab
- Creare Hello-CMake con Android Studio Questo codelab mostra come utilizzare il modello CMake di Android Studio per iniziare Sviluppo di un progetto Android NDK.