(三)NDK 开发之生成并调用 so库

1、生成so 库。

新建一个项目,勾选 Include C++ support.然后一直next。

在配置好NDK 的情况下,系统会直接生成一个调用C++ 的 例子,直接运行就可以。

配置NDK:https://blog.csdn.net/lijia1201900857/article/details/83576840

 

下面我们要生成 so 库。详细请看:https://blog.csdn.net/lijia1201900857/article/details/83615409

在CMakeList.txt 中添加如下代码:

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI})

 

编译运行后,会在jniLibs 中生成相应 abi 的so 库

到此我们就可以使用这些库,供其他项目调用了。

二、调用so 库

新建任意一个项目,Include c++ support  勾不勾无所谓。这里我不勾选

 

分4步:

1、复制so库拷贝到新项目的libs 目录下

2、app 下的 build.gradle 中添加 链接so库的配置

3、创建和 so中 代码相同包名+ 类名 的类

4、调用

1、将上个项目中生成的 so库 复制到 libs 目录下:

 

 

2、app 下的 build.gradle 中添加配置 

    sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
        }

总体结构如下:

3、创建和so中的代码相同包名+类名的类

我们上个项目native 方法 所属的包名 为  com.example.com.jni  , 类名为 MainActivity

所以我们需要在新项目中也添加这样一个 类:

新建的MainActivity 类中 添加如下代码(和so库中的调用代码一致):

   static {
        System.loadLibrary("native-lib");
    }

    public native String stringFromJNI();

4、调用

然后在新项目的MainActivity.class 中调用

运行结果如下:

over!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值