1、下载NDK配置环境变量
添加 NDK_HOME D:\android-ndk-r11b(根据实际路径)
Path中添加 %NDK_HOME%/;
cmd执行ndk-build查看是否成功
2、SDK Location中配置NDK

3、生成头文件
新建类定义native方法
public class Hello {
public native String helloC();
}
AndroidStudio命令行切换到debug目录执行
javah -jni cn.fbtrip.ndkdemo.Hello

4、创建c文件
拷贝上步生成的头文件
main文件下创建jni,新建c/c++源文件
拷贝mk文件,进行配置

5、mk文件修改

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := cn_fbtrip_ndkdemo_Hello.c
include $(BUILD_SHARED_LIBRARY)
我们只需要修改LOCAL_MODULE和LOCAL_SRC_FILES两个参数即可。
LOCAL_MODULE参数是指定编译后的目标文件的名称,其实编译好的目标文件名为libhello.so,
LOCAL_SRC_FILES指定了要编译的源文件。

APP_ABI := all
6、生成so文件


切换到main路径下执行ndk-build
修改jni库目录
将app->src->main->libs改成
app->src->main->jniLibs
7、旧版需要配置支持ndk
根目录gradle.properties
在文件的最末行添加:
android.useDeprecateNdk=true
8、so库的调用
public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("hello");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Hello h = new Hello();
System.out.println("------>"+h.helloC());
}
}
