美文网首页
JNI实现1+1

JNI实现1+1

作者: 刀放下好好说话 | 来源:发表于2021-05-14 10:44 被阅读0次

一、 jni环境搭建

借助Android Studio可以快速构建支持jni的项目。

New Project 选择 Native C++:

native-cxx-01.png

好了!看下项目的特殊之处,首先看下app目录下build.gradle文件的配置:

native-cxx-02.png

上面的配置指定了build出来的so包支持哪些cpu类型;下面的配置指定的是CMakeLists.txt的文件相对路径,以及CMake库的版本号。

二、 CMakeLists文件

系统生成的CMakeLists.txt文件内容如下:

native-cxx-03.png

cmake_minimum_required 指定了CMake的最低版本
add_library 第一个参数指定了编译生成的so的名字,第三个参数即编译的c文件,也即需要编写的源文件
find_library 引入系统的库,默认只引入了log库
target_link_libraries 只引入库还不行,还需要连接自己编写的库和系统的库

三、 编写c文件

3.1 编写native文件

    public class JNICompute {
        public native int add(int num1, int num2);
    }

在add方法上 alt + Enter键 会自动在native-lib.cpp下生成c代码:

native-cxx-04.png

四、 生成so

执行build命令,在app/build/intermediates/cmake/debug/obj/armeabi-v7a下已经可以看见lib-xxx.so格式的文件了,如果是本项目使用,不需要任何操作,但是如果是其他项目要用,需要拷贝so文件到其他项目的libs下,并且需要在完全相同的路径下拷贝过去声明Native方法的java文件。

build完就可以新建JNICompute实例调用native方法了。

相关文章

  • JNI实现1+1

    一、 jni环境搭建 借助Android Studio可以快速构建支持jni的项目。 New Project 选择...

  • JNI与NDK

    JNI 是什么 JNI作用是什么 为什么要有JNI 实现步骤 AS实现步骤 第一步 编写代码 第二步 进行编译 第...

  • JNI手动编译和自定义加载运行

    1、使用JNI 用JNI实现 实例: 创建HelloWorld.java class HelloWorld { p...

  • JNI

    JNI & NDK JNI(Java Native Interface),提供若干的API实现Java和其他语言的...

  • JNI

    JNI: Java Native Interface ;Java本地调用 JNI功能: 可以实现Java函数和Na...

  • JNI原理

    JNI实现原理 JNI系列:JavaVM和JNIEnv等原理http://blog4jimmy.com/2017/...

  • UVC系列5-编写Android jni代码实现控制PTZ

    在Android kernel层完成定制之后,需要写app实现对摄像头的控制,主要通过jni代码实现。在jni代码...

  • Android 添加JNI 开发能力

    JNI 与 NDK 区别JNI:JNI是一套编程接口,用来实现Java代码与本地的C/C++代码进行交互;NDK:...

  • jni使用语法

    概述jni(Java Native Interface)是什么? 最简单的jni使用 头文件: 实现: 注意的细节...

  • Android Studio jni 编写(看完不会你打我)

    JNI简述 JNI 全称 Java Native Interface , 它提供了若干的API 实现了Java和其...

网友评论

      本文标题:JNI实现1+1

      本文链接:https://www.haomeiwen.com/subject/jznfjltx.html