cmake导入so库_通过CMake方式生成动态库so文件

JNITest

通过CMake方式生成动态库so文件

简介 Java JNI的本意是Java Native Interface(Java本地接口),它是为了方便Java调用C、C++等本地代码所封装的一层接口。通过Java JNI,用户可以调用用C、C++所编写的本地代码 NDK是Android所提供的一个工具集合,通过NDK可以在Android中更加方便地通过JNI来访问本地代码。

优势 1.提高代码的安全性。由于so库反编译比较困难,因为NDK提高了Android程序的安全性。

2.可以很方便地使用目前已有的C/C++开源库

3.便于平台间的移植。

4.提高程序在某些特定情形下的执行效率,但是并不能提升Android程序性能

注:JNI和NDK开发所用到的动态库的格式是以.so为后缀的文件,JNI和NDK主要用于底层和嵌入式开发,在Android应用层开发中使用比较少。

JNI开发流程

1.在Android Studio配置NDK环境

打开SDKManager-tools下载NDK插件,下载后到SDK Location里面检查里面的NDK路径

2.在Java中声明native方法 创建一个类,叫做JNITest.java

package com.qinkl;

public class JNITest{

static{

System.loadLibrary("jni-test");

}

public static void main(String args[]){

JNITest jniTest = new JNITest();

System.out.println(jniTest.jniGet());

jniTest.jniSet("hello world");

}

public native String jniGet();

public native void jniSet(String str);

}

可以看到上面的代码中,声明了两个native方法:get和set(String),这两个就是需要在JNI中实现的方法。在JniTest的头部有一个加载动态库的静态代码块,其中jni-test是so库的标识,so库完整的名称为libjni-test.so,这是加载so

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值