前期准备
Visual Studio 2015 并且添加c++移动开发 勾选AndroidNDK,c++ Android 开发工具
Android Studio 创建app 用来测试so是否可用
创建Android动态库项目
添加JNI方法
在生成的SharedObject1.cpp文件中添加函数(遵循JNI语法)
extern "C" jstring Java_com_example_helloso_MainActivity_HelloWorld(JNIEnv* env, jclass jcls) { return env->NewStringUTF("Hello World!"); }
注意 函数名 要和在APP的native 函数路径相对应
例如jni函数名是Java_com_example_helloso_MainActivity_HelloWorld
对应java native函数位置就是com.example.helloso.MainActivity.HelloWorld()
编译so
编译出arm/arm64版本so文件导出
Android studio创建测试app项目
创建空app即可
添加lib目录,配置so路径
在app/build.gradle下 defaultConfig 添加
sourceSets.main.jniLibs.srcDirs = ['src/main/libs'] ndk { abiFilters 'arm64-v8a','armeabi-v7a'
对应的 创建src/main/libs目录 并且添加arm64-v8a和armeabi-v7a 目录分别放arm64和arm的so库
添加native方法
在com.example.helloso.MainActivity类中创建native函数 注意必须对应 so库导出函数名!!!
public static native String HelloWorld();
运行
app输出 显示hello world