介绍以.jar/.aar包形式制作自己的SDK,并实现调用的过程。
将使用OpenCV实现图片灰度化的方式打包为.jar/.aar包,并实现调用,OpenCV使用JNI实现本地方法调用。创建一个module用于制作SDK,OpenCV环境搭建和代码编写部分参考一下博客:
博客中的介绍了在APP模块搭建环境的方式,改为module中差距不大,照步骤配置即可。
在module中实现了代码函数之后,对工程进行编译, 可以得到.jar包和.aar包;
.jar包的调用较为简单,基本步骤为将.jar包复制到所需要导入工程的Libs文件夹下,右键.jar包选择add as library就完事了,之后就可以调用了,但是在此处这样的做法还不够,因为opencv的调用涉及到了.so库的编译链接,所以我们需要将编译得到的.so库一起放入工程文件中,才能实现.jar包的调用;
相比.jar包,.aar包的调用只需要一个文件(.aar文件),我们同样将.aar文件放入Libs目录中,与.jar文件不同的是这里无法一键实现导入,需要手动编写配置文件,在对于的build.gradle中添加如下代码:
repositories {
flatDir {
dirs 'libs'
}
}
}
dependencies {
compile(name: 'facelibrary-debug', ext: 'aar')
}
重新编译之后会显示编译成功,即可实现.aar包的调用,可以看到已经可以使用之前通过JNI实现的NATIVE函数了。