一.准备环境
- Java环境
- 开发环境(Android studio)
- NDK(NDK是本地开发的工具包)
ctrl+alt+shift+s 打开SDK Location,配置包的路径。
二.开发流程
- 新建一个JNIDemo的类,定义一个本地方法。
- 利用javah命令生成JNIDemo类对应的头文件Alt+F12打开AS中命令行窗口,第一步首先进入java目录下,第二步通过-d在java目录上一层创建一个jni目录,最后紧跟JNIDemo的地址。最后可以看到类对应的头文件已经生成。
- 编写C/C++实现代码
有了头文件,我们需要在JNI目录右键New->C/C++Source File建一个cpp文件,编写以下代码,返回一个字符串到Java层
- 生成配置文件
再jni目录下新建一个Android.mk和Application.mk.
//使用的时候需要把这些//注释去掉
//Adroid.mk
LOCAL_PATH :=$(call my-dir)//当前文件夹,一般不用修改
include $(CLEAR_VARS) //这个配置需要,但是不用做修改
LOCAL_MODULE :=JNIDemo//so的名称
LOCAL_SRC_FILES :=JNIDemo.cpp //指定需要编译的c++/c文件
include $(BUILD_SHARED_LIBRARY) //这个不用修改
//APPlication.mk
APP_ABI :=all //编译so的平台,根据你的需求选择这些'armeabi','x86', 'armeabi-v7a', 'x86_64'这里选择了全部平台
- 配置build.gradle
在src目录下的build.gradle配置一下我们刚才编写的脚本。
生成的so文件会在build/intermediates/ndkbuild下。
- 最后一步编译在模拟器中运行