NDK开发流程
- 创建java类X,申明native方法
- 使用javac编译为.class文件
- 使用javah生成头文件(在包文件夹上一目录路径下执行javah命令,且参数为完整的包名.类名)
- 新建.c或.cpp文件,包含上一步生成的.h文件,实现头文件中申明的方法
- 编译成动态库
- X中使用System.loadLibrary()装载动态库
- 使用X类
Android Studio NDK开发
- 创建java类X,申明native方法
- make project,切换到 工程名\app\build\intermediates\classes\debug目录,用javah 包名.类名生成.h头文件
- app\src\main目录下新建jni文件夹
- 拷贝.h到jni文件夹,编写.c或.cpp
- 工程设置中添加NDK路径
- gradle中添加
defaultConfig {
ndk {
moduleName "YanboberJniLibName" //生成的so名字
abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库。目前可有可无。
}
}
- 对应平台生成的.so文件在工程名\app\build\intermediates\ndk目录
- 可将各种平台.so拷到app\src\main\jniLibs目录