一般我们开发主要是使用Java,但项目中有些涉及到复杂的算法或耗时操作时,通常使用C/C++完成算法实现并提供给java层(通过JNI)调用,以此提高运行的效率。这种情况下,C/C++所实现的代码以及JNI调用相关的代码被打包为.so库。
笔者在项目中遇到了需要使用JNI调用c++算法的情况,之前也没有相关的经验,折腾了一番之后终于跑通,故整理一下整个过程。
本文以一个加法运算的简单功能为例,说明如何使用JNI开发。
环境、工具的准备
1、系统环境:windows x10
2、工具:1)android studio 或者 eclipse;2)android-ndk-r10b
3、搭建:笔者因为已有android studio开发的环境,所以只需要搭建NDK环境。
1)Android官网下载NDK;
2)解压缩下载的ziP包到某个目录,例如 D:\android-ndk-r10b;
3)配置添加环境变量 NDK_ROOT 为: D:\android-ndk-r10b, 在环境变量 PATH 下追加 :%NDK_ROOT%;
4)验证ndk安装是否成功:cmd进入安装ndk的目录,找到D:\android-ndk-r10b\samples\hello-jni目录,运行ndk-build 命令,出现以下结果就表明环境安装成功
SO库编写
先看一下整个工程的目录,先说明