一:环境配置
Android 开发环境 和Ndk版本
二: 创建项目
1.创建Android项目,创建本地引用工具类
public class JniUtils {
static {
System.loadLibrary("jnidemo-jni");
}
public static native String getStringFromNative();
public static native int getintFromNative();
}
然后点击:--build--make project 编译一下
2:获取JniUtils 的头 (.h)文件
在这里获取.h文件通过tool 来进行获取,我们先进行配置tool工具
点击File
(第一张图片)
注意: 标注红色箭头是需要填写的
Name:javah(任意填写)
Program:javah(java的一个命令)
arguments:-v -jni -d $ModuleFileDir$/src/main/jni $FileClass$
working directory:$SourcepathEntry$
配置完成后点击保存
(第二张图片)
执行鼠标右键(选中创建的tool)
(第三张图片)
(图一说的说的)javah命令
(第四张图片)
执行完tool后,得到头文件
三:创建C文件
1.创建jni文件, main目录下
2.将创建的.h文件复制到jni文件下面
3.创建c++/c
4.创建mk文件(语法详解:https://blog.youkuaiyun.com/u014644594/article/details/90695201)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := jnidemo-jni
LOCAL_SRC_FILES := jnidemo.c
include $(BUILD_SHARED_LIBRARY)
*5.创建Application.mk
创建这个文件的目的是用来生成.so文件的,
APP_ABI := armeabi-v7a APP_ABI:cpu平台名称
APP_PLATFORM := android-10
在Android Studio命令行中进入到jni目录中,执行ndk-build命令,就会在main文件夹中生成Libs/xx(cpu平台名称)/xx.so
6.build添加
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
}
到此jni的基本配置就结束了,可以去调用定义的native 的方法了
万事开头难,向jni高级进阶已经迈出了第一步...