简介:在Android开发中,有时我们需要编写JNI(Java Native Interface)代码来调用C/C++代码。在Android Studio中,可以快速生成JNI的头文件(.h)和方法签名。以下是详细的步骤:
New -> File。在弹出的窗口中,选择C/C++ Class,然后命名你的类。确保选择.cpp作为文件扩展名,因为这将用于生成JNI的.h文件。
add_library(native-lib SHARED IMPORTED)set_target_properties(native-lib PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/src/main/cpp/lib/[YourLibraryName].so)find_library(log-liblog)target_link_libraries(native-lib${log-lib})
native-lib的库,你可以这样写:
#include <jni.h>extern "C" JNIEXPORT jstring JNICALLJava_[package_name_]_[class_name_]_(JNIEnv* env, jobject thiz){return (*env)->NewStringUTF(env, "Hello from C++");}
请注意,你需要将[package_name_]和[class_name_]替换为实际的Java包名和类名。另外,返回类型和函数名也会因你的需求而异。
app/build/generated/source/cpp/include/[your_module_name]目录下,其中[your_module_name]是你的模块名称。你可以直接使用这个.h文件在你的Java代码中声明本地方法。
public native String nativeMethod(String param);
onCreate方法中添加以下代码:
System.loadLibrary("native-lib");
请注意,库名(在此例中为“native-lib”)应该与你在CMakeLists.txt文件中设置的库名相匹配。
String result = nativeMethod("Hello from Java");
这就是在Android Studio中快速生成JNI .h文件和方法签名的整个过程。通过遵循这些步骤,你可以轻松地调用C/C++代码并与Java代码进行交互。