JNI(二) - 如何生成so并暴露给第三方使用

本文详细介绍了在Android项目中如何生成SO动态库,并将其打包到jar或aar中供第三方使用。首先,通过CMakeLists配置文件编译C/C++源码生成SO库。然后,可以通过两种方式提供给第三方:一是创建jar包,将SO和对应的java类打包,删除已有的jar,从特定目录复制classes.jar并重命名;二是生成aar包,aar中已包含SO和java类,直接拷贝aar到第三方项目依赖。最后,介绍了如何在第三方项目中引入和使用这些库。

如何生成so并暴露给第三方使用

一般情况下我们直接生成一个支持 native 开发的项目, 在java文件中声明native方法在c,c++文件中实现native方法,通过cmake 配置c,c++文件,在java中调用声明的native方法即可

当我们生成so时 ,调用native方法时,方法路径必须与原包名相同,在这种情况下一般我们有几种方式来处理

  1. 通过jar
    • 生成so 后生成jar包 jar中存在声明native函数的 java 类 将so和jar导入到项目中即可
  2. 通过aar
    • 直接生成aar文件,aar中就包含so 和 声明native函数的java类

通过jar的形式

生成so

  • 将cmake配置好名称 和 要编译的c,c++文件

    • cmake_minimum_required(VERSION 3.10.2)
      # 设置项目名字
      project("checkroot")
      #设置输出名字以及指定生成是静态库还是动态库 动态库为shared 静态库为 static 设置要编译的native文件
      add_library( # Sets the name of the library.
              checkroot
      
              # Sets the library as a shared library.
              SHARED
      
              # Provides a relative path to your source file(s).
              native-lib.cpp)
      
      
      f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值