1. Seleccione Native C++ en el nuevo proyecto y luego el siguiente paso
2. Personalice el nombre y guarde la ubicación, seleccione Java como idioma, seleccione la versión correspondiente del SDK según la plataforma donde está instalada la aplicación y luego continúe con el siguiente paso.
3. El estándar C++ se puede seleccionar de forma predeterminada, haga clic en Finalizar
4. Una vez completada la carga, cambie el título del proyecto Android a Proyecto.
Lista después del reemplazo
El código C/C++ está en la carpeta cpp y hay algunos ejemplos de uso en el archivo MainActivity.java.
5. Haga clic en Ejecutar para ver el efecto de ejecución.
Instrucciones simples para usar el código:
Android Studio utiliza código C/C++ para desarrollar aplicaciones. Utiliza código C/C++ como biblioteca. La biblioteca de códigos C/C++ debe cargarse en el archivo MainActivity.java.
// Used to load the 'myapplication' library on application startup.
static {
System.loadLibrary("myapplication");
}
Cómo utilizar la biblioteca:
1. El código C/C++ debe utilizar funciones en el formato especificado (si es un archivo C, elimine la "C" externa)
#include <jni.h>
#include <string>
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(
JNIEnv* env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
2. Agregue archivos C/C++ al archivo CMakeLists.txt
add_library( # Sets the name of the library.
myapplication
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
native-lib.cpp )
3. Primero defina el uso en el archivo MainActivity.java:
public native String stringFromJNI();
4. Llame al código en C/C++ en la función onCreate
// Example of a call to a native method
TextView tv = binding.sampleText;
tv.setText(stringFromJNI());
Si tiene sus propios archivos C/C++ nuevos y archivos de encabezado .h, debe agregarlos al archivo CMakeLists.txt.
# 头文件位置
include_directories(src/main/cpp/)
Los archivos C/C++ llaman a Java
#include <jni.h>
JNIEnv* env=NULL;
jobject obj = NULL;
Java_com_example_myapplication_MainActivity_stringFromJNI(env,obj);