JNI实现1+1

一、 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方法了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容