jni环境的搭建及生成so库

我们知道jni是在java和c直接的桥梁,其发挥着不可思议的作用。这不遇见尴尬的一件事了,所以用来记录下第一次搭建jni环境(期间还是有很多弯路)

用as开发的话,在支持c的时候,是需要下载ndk,这就下载后,会配好环境,就不说了!很简单

首先:第一步,简简单单运行一个正常的项目,例如hello world
正式开始第一步:新建jni文件夹(main下),可以直接新建文件,并命名jni,或者在APP下New–>Folder–>JNI Folder就可以生成jni文件

第二步:运用javah命令生成native的头文件(例如生成某个activity的头文件)
利用as自带的terminal来生成头文件,命令如下:
cd app/src/main/java //定位到需要生成头文件的文件
javah -jni android.support.jnidemo.MainActivity
如图:
这里写图片描述

第三步:配置gradle中的ndk选项

ndk{
            moduleName "sqldate" //设置库(so)文件名称
            abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库,如果没有这句话,lib就没有so文件
            ldLibs "log" //增加log的lib库
        }

第四步:如果在编译的时候报错,需要在gradle.properties中配置如下
android.useDeprecatedNdk=true

第五步:编译生成so文件,如下:
这里写图片描述

然后将生成的so文件,拷贝到项目的lib目录下即可使用(或者是jniLibs目录下)

猜你喜欢

转载自blog.csdn.net/willba/article/details/79950254