创建项目,创建项目所依赖的mudulelib
在lib中创建java文件 :如JniUtil
编写文件,这个圈出来的就是你要引入的so库名将来就生成它
在文件tack中右键open in terminal打开sudio中终端,默认在当前文件下
生成“.h”文件,输入 javac Test.java -h ../../../../jni 将生成文件在src/main/jni目录下,和java文件同级
文件将包名和类名拼接而成生成.h文件,默认引入了<jni.h>,方法名会和JniUtil.java中相对应
编写c或者c++代码JniUtil.c,倒入.h文件方法对应生成的.h文件
编写Android.mk和Application.mk文件,主要改动两个,其他就默认吧~然后右键jni打开终端
ndk-build
(可能没有ndk的环境变量,如果不会配置环境就去死吧~)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := native-lib //将要生成的文件名
LOCAL_SRC_FILES := JniUtil.c //生成so的c文件
include $(BUILD_SHARED_LIBRARY)
生成所有类型的so这个会缺少armeabi的so,直接从v7a中考一份就行了
生成的so在src/main/lib文件下,和jni目录同级
生成俩,不知道为啥,反正用libs里的就ok,默认如果so不是以lib开头默认拼接了,不用管他,
如果要生成aar的话就删掉没用的,编辑gradle文件将lib引进去,然后
生成的aar在这里
拿去用就可以了java文件不删除,直接通过它就可以调用了
网友评论