一、需求描述
在我的博客
【我的Android进阶之旅】如何通过JNI来封装已有的C源码算法,然后让Java层调用C语言写的算法https://ouyangpeng.blog.csdn.net/article/details/109299224
中有介绍,我通过写好Java类,然后生成JNI头文件,再让写算法的同事实现这个JNI头文件,再去调用他已经写好的算法。
但是有两个问题得考虑:
- 如果这个C程序员同事就是不配合你咋办?就丢一个已经写好算法的so库给你,其余的你自己去玩。
- 如果你是从其他地方看到一个不错的so文件,但是你没有源码,无法修改,你怎么调用他呢?
所以我们得想一想,如果已有的so库文件不会再重新修改源代码重新生成so库文件的情况下,我们如何调用这些so库文件呢?
下面我们通过一个案例来实现这个需求。
二、模拟C程序员生成指定不改变的so库
假如我们有一个算法,就是计算两个数的和并返回。下面是整个生成so库所需要的文件,
这几个文件我放在本地的D:\GitLab Source\